[MEGOLDVA] borland c, nem értem a problémát

Fórumok

Sziasztok!

A helyzet a következő.
van egy gomb amit ha megnyomok végrehalytódik egy eljárás. ez a következő képp néz ki.

void __fastcall TForm1::Button13Click(TObject *Sender)
{
detect2();
}

a detect függvény (helyesebben eljárás mert void):
void detect2 ()
{
..............
} szóval nem komplikált.

a detect2-nek szüksége van 2 további eljárásra amyalek a következő módon vannak létrehozva.

void alak (Graphics::TBitmap* bm)
{
........
}
//a b egy Tbitmap, mert képanalízist csinálok. nincs kedven folyton hurcolni mindenhova ezért globárisra deklarálom. lehet nem a leg legánsabb, de praktikus.Így:
Graphics::TBitmap* b = new Graphics::TBitmap(); ezt kaja meg a bm.

void ujfiuk ()
{
........
}

ha a bármely függvényt gombnyomásra hívok akkor frankón lefutnak. ha a függvény hívja a második függvényt ami neki kell akkor azt a hibaüzit kapom, hogy nem deklarált függvényhívás. Na ez a hívogatás ANSI-cben simán működik. Itt is biztosan van rá megoldás, hogy ne kelljen egy hatalmas mamutot csinálnom copy-paste-vel (bemásolom a függvények tartalmát a hívás helyéra akkor is megy, de akkor lesz vagy 2000000-soros a kód).

Ötlet valakinek?

Ui: Ja ha bent vannak a headerben, ha nem, ha public, ha private, ugyanez a helyze.
UI2: Gondoltam, hogy én rontottam el, és így is volt. Mindegyiket az újfiú, és az alak, is jól volt deklarálva, a detect2 viszont nem ugyanis 2 ablakom van a detect2 az a 2.-formhoz volt hozzácsapva. Mindenkinek nagyon köszönöm.

Hozzászólások

ha beteszed a detect2 függvény deklarációját a TForm1::Button13Click elé?
void detect2 ();
szerk: az őt hívó függvény elé

Először: ez nem C, hanem a C++.
Másodszor: A borland gyárt C++ fordítót? :) (na jó csak viccelek)

Ha azt írja, hogy nem deklarált fv hívás, akkor valami nem stimmel. Vagy a láthatóság nem jó, vagy elírtál valamit, esetleg nincs fv deklaráció a hívás előtt. (Nem az egész fv (definíció), csak a deklaráció.)

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

Ugyanabban a class-ban vannak.

Részlet a headerből (FrameCapture.h):

class TForm1 : public TForm
{
__published: // IDE-managed Components
TImage *Image1;
TGroupBox *GroupBox2;
TButton *Button6;
.....
.....
.....
TShiftState Shift, int X, int Y);
void __fastcall Button13Click(TObject *Sender);
private:
public:
__fastcall TForm1(TComponent* Owner);
void __fastcall alak (Graphics::TBitmap* bm);
void __fastcall ujfiuk ();
void __fastcall detect2 ();
};

Egész pontosan így:

void __fastcall TForm1::ujfiuk ()
{
double ccc=0.0;
for (int i=0 ; i
{
Alak2[11][i]=Alak2[8][i];
Alak2[12][i]=Alak2[9][i];
Alak2[13][i]=100.0;
Alak2[14][i]=0.0;
}
int e_global_klaszterszam=global_klaszterszam;
...............
...............
...............
Alak2[14][newboy]=1.0; //megjelölése ök az újfiúk.
k++;
}
}

nem tudok pontosan vbeilleszteni mert úgy látszik akad a html-kódolással bocsi szóva a for ciklus feltételének van vége is.

"nem tudok pontosan vbeilleszteni mert úgy látszik akad a html-kódolással bocsi szóva a for ciklus feltételének van vége is."

Rakd [code] [/code] közé...

Most akkor megoldódott vagy sem?

Egyébként miért használsz te Borlandot? Mert ezekből a kódrészletekből látszik, hogy elég undorító megoldásokkal operál, ami főleg egy kezdő számára rossz példa, és kb lehetetlenné teszi a mélyebb megértést...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

Eddig azt használtam én is (ha gui kellet akkor ultimate++, mert nagyon pöpec kis cucc, kár hogy nem igazán közkedvelt, és gtk-s, de remek), de van egy videocapture-komponens ami cask borland-al működőképes. Nekem meg se kedvem, se tudásom videograbber komponenst írni, pláne win alá, ahol azt sem tudom, hogy mi a fene a hardverelérés, mert lin esetében /dev/videoX, és kész.

Most akkor működik vagy sem?

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o