Thema: Frames

Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Frames

  Alt 11. Feb 2018, 09:47
Hi Ghostwalker
Vom Basisframe, den du zur Designzeit bearbeitest, siehst du zur Laufzeit gerade mal eine Instanz, die vom Basisfram,e geerbt hat - ob sie auch dessen DB-Verbindung erbt, weiss ich nicht, aber ich könnte mir gut vorstellen: Nein.
Falsch, Frames werden, letztlich, genauso gehandhabt wie Forms. Sie lesen die Einstellungen und Komponenten aus einer DFM-Datei (sprich Resource). Der "Große" Unterschied ist, das sie nicht automatisch erzeugt werden und somit nicht automatisch durch Windows bzw. Delphi verwaltet werden.
Sorry, wenn ich dir teilweise wiederspreche:
Ja, Frames werden grundsätzlich sehr ähnlich genauso gehandhabt wie Forms. Aber Frames(Instanzen) können genauso wie Formulare automatisch erstellt oder nur bei Bedarf zur Laufzeit createt werden. Wobei dies immer auf die Frameinstanzen zutrifft, niemals aber auf den Basisframe.. Meine Erfahrungen beim durchsteppen ab der Projektunit:
(Basis-)Frames werden vor der Mainform erstellt. Zumindest, wenn die Mainform oder eine ihr untergeordnete Form ein Frameinstanz enthält, da diese beim konstruieren der Form (Form.OnCreate läuft, zumindest bei den letzten Delphi-Versionen nach dem Constructor der Form ab) die Grundlage zur Erstellung der Frameinstanz(en) darstellen.
Wie das abläuft, wenn zur Entwurfszeit keine Frameinstanzen auf der Form abgelegt sondern dynamisch zur Laufzeit erstellt werde, weiss ich nicht.

Falls du mit 'nicht automatisch erzeugt' darauf anspielst, dass du in der Toolpalette nicht einfach auf 'Frames' klicken und ihn, wie alle andern Komponenten, in eine Form(...) einfügen kannst: einverstanden. Der Frame muss erst über <Datei>Neu>weiter>Frames> erzeugt und definiert werden. Und gerade das ist der Basisframe, den du zur Laufzeit nie zu Gesicht bekommst - was du siehst, sind immer Frameinstanzen.

Es gibt auch noch die Möglichkeit, Frames in der Toolpalette unter einem eigenen Icon abzulegen. Dann dürfte das geschehn, was ich manuell mache: Ein früher mal erstellter Frame wird dem Projekt hinzugefügt, gleichzeitig aber wird eine Instanz dieses Frames auf dem von dir bestimmten Container erstellt.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat