[ gelöst ] lfm-Dateien dynamisch nachladen

Rund um die LCL und andere Komponenten
Antworten
0liver
Beiträge: 4
Registriert: Mi 10. Apr 2013, 15:35

[ gelöst ] lfm-Dateien dynamisch nachladen

Beitrag von 0liver »

Hallo,
ich mal eine Frage zum dynamischen Erstellen von Formular-Komponenten.

Ich hab mir eine Unit geschrieben (uMyPanel.pas), in der ein Panel erstellt wird, mit verschiedenen Unterkomponenten (Labels und Edit-Felder). Dieses Panel in das Hauptfenster, zur Laufzeit, einzufügen ist ja kein Problem und funktioniert auch ohne Probleme.
Aber ist natürlich ein ziemlicher Zeitaufwand sämtliche Eigenschaften (Left, Top, Width, Height usw.) der einzelnen Komponenten "per Hand" zu programmieren.
Jetzt ist meine Frage, ob es nicht möglich ist so ein Panel mit dem Formulardesigner zu erstellen, den relevanten Teil aus der *.lfm Datei auszuschneiden, in eine eigene lfm-Datei einzufügen und diese dann von der entsprechenden Unit aufzurufen?

Hauptformular -> mainform.pas -> mainform.lfm
Unit mit dem Panel -> umypanel.pas -> umypanel.lfm

Im Internet hab ich leider nichts darüber gefunden.
Zuletzt geändert von 0liver am Fr 12. Mai 2017, 12:01, insgesamt 1-mal geändert.

wp_xyz
Beiträge: 4885
Registriert: Fr 8. Apr 2011, 09:01

Re: lfm-Dateien dynamisch nachladen

Beitrag von wp_xyz »

Du solltest stattdessen Frames probieren. Diese kannst du mit dem Formulardesigner entwerfen und dann in beliebig vielen Formularen einfügen und sogar dort nochmals verändern: http://wiki.freepascal.org/Frames

wwerner
Beiträge: 2
Registriert: Mo 8. Mai 2017, 21:49

Re: lfm-Dateien dynamisch nachladen

Beitrag von wwerner »

Ich schalte das Panel einfach mit Visible unsichtbar

0liver
Beiträge: 4
Registriert: Mi 10. Apr 2013, 15:35

Re: lfm-Dateien dynamisch nachladen

Beitrag von 0liver »

OK, danke für den Hinweis mit den Frames. Bisher habe ich keine Frames verwendet und mich auch nicht über deren Sinn und Zweck informiert, aber ich denke das ist genau das, was ich wollte.

wwerner
Das mit dem unsichtbar machen des Panels würde zwar zur Not auch funktionieren, aber dann könnte ich dieses Panel in keinem anderen Fenster verwenden, falls ich es nochmal brauche.

Antworten