Button->Caption von LZ-erzeugten Buttons auslesen???
-
Hi,
ich erzeuge in meiner Form zur Laufzeit verschiedene Buttons. Diese haben unterschiedliche Caption-Eigenschaften. Ich möchte diese Caption-Eigenschaft beim klick auf diese Buttons jetzt auslesen. Ich habe folgenden Lösungsansatz:1. Button zur LZ erzeugen
PC1->ActivePageIndex = 0; TButton *Button; Button = new TButton(this); Button->Parent = PC1->ActivePage; Button->Caption = Button + var_1; Button->Left = x; Button->Top = y; Button->Width = Buttonbreite; Button->OnClick = Buttontext_to_ClipBoard;
Wie man sieht, gebe ich diesem Button gleich die Funktion "Buttontext_to_ClipBoard" im Ereignis "OnClick" mit.
2.Diese Funktion sieht jetzt wie folgt aus:
void __fastcall TFTerminal::Buttontext_to_ClipBoard(TObject *Sender) { Edit1->Text = ??? Edit1->SelectAll(); Edit1->CopyToClipboard(); MessageDlg("Text wurde in die Zwischenablage kopiert.",mtInformation ,TMsgDlgButtons() << mbOK ,0); }
Nur wie schreibe ich jetzt die Caption-Eigenschaft des Buttons ins Edit1->Text???
Da komme ich einfach nicht weiter...
mfg
Torsten
-
ich dachte mittlerweile wüßtest du wo die FAQ sind
siehe Komponenten - "Sendernamen bei einer OnClick-Prozedur identifizieren"
das geht so natürlich auch für die Caption
-
Hallo,
Das:
Button->Caption = Button + var_1;
... wird wohl die Fehlermeldung: "Cannot convert 'TButton*' to 'AnsiString'" erzeugen!
LG, Micha
-
Hi,
das casten wird er ja packen.
Er sollte den Buttons noch einen Namen geben, sonst wird der Zugriff unnötig erschwert.
Und besser ist die Organisation der Buttons in einem vector alastd::vector<TButton*> LZButton;
Noch ein Tipp:
Der MessageDlg ist mit nur einem Button eher nicht angebracht. Den nimmt man mehr, um dem Anwender eine Auswahlmöglichkeit zu geben: OK, Abbrechen, etc.
Ein ShowMessage reicht da völlig aus.mfg
kpeter
-
Aber dann hat man keine Info-Icon.
-
Hallo zusammen,
Linnea schrieb:
ich dachte mittlerweile wüßtest du wo die FAQ sind
...Sorry, hast ja recht. Meine Ausrede: war schon spät
Aber danke...
RandomAccess85 schrieb:
... wird wohl die Fehlermeldung: "Cannot convert 'TButton*' to 'AnsiString'" erzeugen!
LG, Micha
War ja auch nur ein Beispiel...
kpeter schrieb:
Noch ein Tipp:
...Ein ShowMessage reicht da völlig aus.mfg
kpeterWie Th69 geschrieben hat, fehlen da die Icons. Und diese finde ich für die verschiedenen Hinweisarten von nöten.
Aber allen vielen Dank für die Antworten. Werde jetzt mal die FAQ lesen, wie Linnea es geschrieben hat...
Gruß
Torsten
-
Application->MessageBox("Text wurde in die Zwischenablage kopiert.","Information",MB_ICONINFORMATION);