![]() |
(dumme Frage) String => TForm?
Ja die Frage ist echt sehr dumm aber ich habe schon oft gesehen, dass es gute Lösungen für komische Problemstellungen gab.
Ist es möglich von einem String das passende TForm zu bekommen ohne nebenbei eine Liste der TForms (array) zu führen? |
AW: (dumme Frage) String => TForm?
Existiert das Form bereits? Dann kannst du über
Delphi-Quellcode:
das gesuchte Form finden.
for I := 0 to Screen.FormCount - 1 do begin
if Forms[I].Name = 'MyFormName' then begin end; end; |
AW: (dumme Frage) String => TForm?
Delphi-Quellcode:
Das kannte ich noch nicht.
Screen.Forms[I].Name
Wenn das so ist, dann brauche ich die Schleife in meinem Fall nicht. Es ist so: ich modifiziere meine Editfelder und hängen rechts ein Shape sowie ein Label dran. Wenn man das Label klickt, wird das Edit geleert oder sonst irgendeine andere spezifische Aktion wird ausgeführt. Der Label-Name ist etwa 'ClearEditLbl_' + IntToStr(i) + '_NameDesEdits' Im OnClick des Labels pflücke ich nun Name auseinander und erhalte ein Array mit 3 Teilen. Teil 2 könnte ich dann Screen.Forms[] übergeben. Problem gelöst. Danke. |
AW: (dumme Frage) String => TForm?
Zitat:
Zitat:
Die Indize sind nicht fest und Ändern sich ständig. Erstmal beim Erstellen/Freigenben von Forms und dann schiebt die VCL das aktive Fenster immer auf Position 0, womit sich die Reihenfolge in der Liste ändert. :angle: Zitat:
Erstmal bekommt dann das Edit den Fokus, wenn man seinen Namen (das Label) anklickt und in deinem Fall kann man mit diesem Property direkt auf das Edit zugreifen. |
AW: (dumme Frage) String => TForm?
Zitat:
Damit wäre mein Vorhaben also erstmal erledigt. Zitat:
|
AW: (dumme Frage) String => TForm?
Nee, aber wenn das Panel im OI auf die Form gesetzt wurde, bzw. man eine Form als Owner gab, dann alle Forms durchlaufen und da drauf mit FindComponent nach dem Panel suchen.
|
AW: (dumme Frage) String => TForm?
Ich machs aktuell so
- Panel erzeugen und neben Edit positionieren. Name des Panels enthält das dazugehörige Edit - OnClick zuweisen - im OnClick frage ich Name ab und suche so mit FindComponent nach dem Edit. |
AW: (dumme Frage) String => TForm?
Nimm' statt des TPanel ein TLabel.
In die Eigenschaft FocusControl schreibst Du den Namen des zugehörigen TEdits rein. Im OnClick des TLabel brauchst Du dann nur auf TLabel.FocusControl zugreifen und hast Dein TEdit (oder was Du auch sonst da so zugewiesen hast). Das dürfte deutlich einfacher, flexibler und pflegeleichter sein, als TPanel und dann über Namenskonventionen suchen gehen. |
AW: (dumme Frage) String => TForm?
Nja, im Prinzip hast du da doch eine "Komponente, welche das Verhalten kapselt und diese Komponente merkt sich die Referenzen auf das, was sie erstellt hat und auf das zugewiesene Edit.
Und schon muß garnichts gesucht werden. |
AW: (dumme Frage) String => TForm?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz