Opakující se kod, C++ Builder – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Opakující se kod, C++ Builder – C / C++ – Fórum – Programujte.comOpakující se kod, C++ Builder – C / C++ – Fórum – Programujte.com

 

Harys0
Duch
24. 2. 2010   #1
-
0
-

Dobrý den,
Jsem dá se říct úplný začátečník (takže se předem omlouvám jestli použiji nesprávné výrazy nebo něco nedává smysl), v jazyce C++ se učím cca půl roku a v C++Builderu jen pár měsíců. Zajímalo by mě jak lze v C++ Builderu volat nějaký opakující se kod. Prostě mám stejný kod, který chci "zavolat" z určitých části programu, aby sem ho nemusel všude vypisovat. Na radu jsem zkusil něco vy smyslu void nazev() {kod...} a pak se to jen volalo nazev(); , ale v kodu který byl pod tím void mi to nebralo komponenty a psalo např. "Undefined symbol 'Image1' ". (Ještě mě napadlo, ale to asi není nejideálnější řešení, že by dal ten kod do komponenty TTimer a volal by ten kod spuštěním Timeru (Enabled=true) a na konci kodu by se zase vypl (false). Tak jak se to dá udělat ? Předem díky za odpověď.

Nahlásit jako SPAM
IP: 217.66.185.–
yaqwsx+9
Posthunter
24. 2. 2010   #2
-
0
-

Buď si definuješ funkci a budeš jí předávat argumenty a nebo můžeš zkusit nekošer řešení pomocí #include.

Nahlásit jako SPAM
IP: 85.160.84.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Wizard0
Stálý člen
24. 2. 2010   #3
-
0
-

Asi to bude kvoli tomu, ze z danej funckie nemas pristup k urcitym objektom - kod by pomohol aby sme mohli lepsie poradit :). Ale tipujem, ze tvoja funkcia nieje clenska triede a pritom z nej chces volat clenske objekty triedy.

Nahlásit jako SPAM
IP: 85.216.193.–
Harys0
Duch
25. 2. 2010   #4
-
0
-

Stačí kdyby jste mi vysvětlili princip jak udělat aby jsem mohl zavolat z nějaké části programu kod, který by jsem jinak nejednou musel zkopírovat. Kod, který chci volat je složitější, ale v principu si myslím pořád stejný jako např:
void cara()
{
Image1->Canvas->MoveTo(100,100);
Image1->Canvas->LineTo(300,300);
}
a když ji pak chci zavolat cara(); tak to napíše chybu "Undefined symbol 'Image1' ". Opravdu by mi pomohlo kdyby to nějak šlo udělat..

Nahlásit jako SPAM
IP: 217.66.185.–
Náhodný kolemjdoucí
~ Anonymní uživatel
15 příspěvků
25. 2. 2010   #5
-
0
-

Musíš ten Image1 tý funkci předat jako parametr tzn
void cara(image obr)
{
obr->Canvas...
obr->Canvas..
}
a pak už jen cara(Image1)
Teda pokud je Image 1 datoveho typu image

Nahlásit jako SPAM
IP: 78.102.40.–
Harys0
Duch
25. 2. 2010   #6
-
0
-

No když to napíšu takto:
void cara (TImage ahoj)
{
ahoj->Canvas->LineTo(100,100);
ahoj->Canvas->MoveTo(300,300);
}
tak to jde, ale zas to píše jinou chybu (něco s tou šipečkou) "Pointer to structure required on left side of -> or ->* ". Jo a jestli to teda chápu dobře tak za ty parametry mam vypsat všechny komponenty, které v té funkci použiji a třeba i globální proměnné?

Nahlásit jako SPAM
IP: 217.66.185.–
Wizard0
Stálý člen
25. 2. 2010   #7
-
0
-

Ach jo. Myslim si, ze nema vyznam babrat sa s objektami, ked nevies o co ide. Byt tebou tak si prejdem zaklady C++ a OOP. A k tej chybe, samozrejme ze 'ahoj' musis definovat ako pointer.

Nahlásit jako SPAM
IP: 85.216.193.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 18 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý