Noobfrage die 2.: Methode einer Klasse aufrufen
-
Hi,
Ich will grad n kleinen Filebrowser erstellen, der soll n bisl Norton Commander Style sein, soll heißen man kann in einem Editfeld Kommandos eingeben und dann wird zb eine Datei aufgerufen, oder das Verzeichnis gewechselt.
Ich will jetzt also wen cd .. in das Feld eingegeben und die ENTER Taste gedrückt wird die Funktion GoUp(void) aufrufen. Ic check das aber nicht, was ich versucht habe sieht so aus:TForm1::Filelist.GoUp
und
TForm1::Filelist->GoUp
Funtzt aber nicht, wie mach ich das denn richtig?
-
FileList->GoUp();
Vielleicht solltest du dir erstmal ein C++ Tutorial anschauen, bevor du dich an den großen Builder ranwagst!
-
Also wenn du in der Klasse drin bist in der die Komponente FileList drin ist kannst du ganz normal mit FileList->TuWas() aufrufen...
Ansonsten musst du über die Klasseninstanz gehen in der die Kompo vorhanden ist.
(Bsp. Form1->FileList1->TuWas())PS: Fehlermeldungen sind immer Trumpf wenn du Hilfe willst!
-
Im Normalen C++ kenn ich mich aus, mein Problem ist ja auch nur wie ich an die blöden Objekte ran komm, oder anders gesagt: sind die Instanzen dieser Klassen inerhalb der Form KLasse/Instanz oder nicht.
-
So krieg ich aber zwei Linkererrors:
[Linker Fehler] Unresolved external '__fastcall TForm1::EingabeEnter(System::TObject *)' referenced from Unit1.o
[Linker Fehler] Unresolved external '__fastcall TForm1::EingabeChange(System::TObject *)' referenced from Unit1.o
-
Öhhhm wir reden vom Builder, oder?
Ist doch ziemlich genau C++.Die Kompos die du reinziehst kannst du als Eigenschaften der Form ansprechen.. das sollte keine Probleme verursachen.
(sind Instanzen)
-
Eigentlich nicht direkt Buildier sondern Kylix3/CLX
-
Wo hast du deine Funktionen deklariert?
Stehen ja hoffentlich in der Klasse drin.. und am besten nicht im published-Bereich.Ops stimmt.. deine anderen Threads waren ja auch für Kylix... aber ich kann mir nicht vorstellen dass da die Grundbausteine umgestossen wurden.
-
3xtr3m3 N00b5tyl0r:
Wie wär's, wenn du erstmal zB. das Texteditor-Tutorial in der Hilfe durcharbeitest, um ein "Gefühl" für die Arbeitsweise des BCB/Kylix zu bekommen? Das erspart dir (und uns) sicher eine ganze Menge vergleichbarer Fragen.PS. Und wie wär's, wenn du dich nochmal unter einem etwas weniger peinlichen Namen anmeldest?
-
Ich weis nich wie ich das erklären soll, ich geb euch einfach mal den quellcode von der Funktion.
void __fastcall TForm1::EingabeReturnPressed(TObject *Sender) { eingabe = Eingabe -> Text; if(eingabe == "cd ..") Filelist->GoUp(); }
-
@Jansen
Hab schon angefangen mit dem Kram, hatte aber grad keine Lust weiterzumachen, bin aber noch dran diese ganzen Fragen werden auch bestimmt bald aufhören, ich versprechs ganz dolle
-
Hi,
es sieht so aus als ob du die Funktionen in den Fehlermeldungen un der *.h deklariert hast, aber nirgends definiert hast! Also alles nochmal überprüfen!Alexander Sulfrian
-
Also, die Funktion GoUp(void) ist ein Member von TFileListView und das hab ich nicht definiert/deklariert, und Die OnEnter Funktion wurde per Doppelklick erzeugt.
-
Hallo,
Kann das sein, dass du deine Funktionen für OnEnter und OnChange
__fastcall TForm1::EingabeEnter(System::TObject
__fastcall TForm1::EingabeChange(System::TObjectin der Unit1.cpp umbenannt hast ?
Diese EingabeReturnPressed ist ja keine von beiden (sieht nach OnKeyPressed aus).
-
Könnte sein, ich schau mal nach
-
Hab den Fehler, ich hatte mit onchange und onenter experimentiert, und danach nur die definition gelöscht, nicht die Deklaration in der .h, thx