Autor |
Beitrag |
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Mo 17.03.03 23:35
Hi,
weiß jemand wie ich mir TFrames, welche noch keinen Parent besitzen auflisten lassen kann???
Quelltext 1: 2: 3:
| for i:=0 to Application.ComponentCount-1 do if Application.Components[i] is TFrame then ListBox1.Items.Add(Application.Components[i].Name); |
klappt leider nicht...
Au'revoir,
Aya
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Mo 17.03.03 23:57
Es könnte einfach daran legen, daß Application die Komponenten nicht besitzt. Auch wenn sie z.B. Form1 gehören würden, so könntest du sie nicht so auflisten. Dann würde die Komponente Form1 gehören und du könntest sie nur so auslesen. Was du aber wahrscheinlich auflisten kannst sind die Formulare. Wenn du also ein Umweg über die Formulare machst, dann müßte es gehen.
_________________ Popov
|
|
Aya 
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Mo 17.03.03 23:59
Nein, auch wenn ich über die Formulare gehe geht es nicht...
Denn wie gesagt haben die Frames alle KEINEN Parent...
Ich möchte halt soeine Liste haben, wie sie erscheint wenn man ein Frame einbinden will (Also auf "Frames" auf der "Standard"-Leiste klickt)
Au'revoir,
Aya
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Di 18.03.03 00:08
So müßte es gehen:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.Button1Click(Sender: TObject); var i, k: Integer; begin with Application do for i := 0 to ComponentCount-1 do if Components[i] is TForm then with TForm(Components[i]) do for k := 0 to ComponentCount-1 do if Components[k] is TEdit then
Form1.ListBox1.Items.Add(Components[k].Name);
end; |
Listet alle Edits in allen Formularen auf (Umweg über TForm).
Wobei ich hier nach TEdit gesucht habe.
Allerdings glaube ich nicht, daß du was findest wenn du kein Parent zgewiesen hast. Wenn einer noch nicht in der Wohnung ist, dann kannst du ihn auch nicht in der Wohnung finden.
Allerdings kannst du etwas warten mit dem Aufgeben. Vielleicht wiß jemand anders einen Trick.
_________________ Popov
|
|
Aya 
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Di 18.03.03 00:11
Hi,
ich sagte doch... *seufzt* auf diese Art klappt es nicht, da die Frames immer noch KEINEN Parent haben und somit auf den Forms genausowenig auftauchen wie sonst irgendwo...
Aber als kleine nebeninfo, ich brauche die Liste zur DesignTime, also nich später im fertigen Programm.
Bastel an einer Komponente in der man u.A. Frames aussuchen kann, und dafür brauche ich das..
Au'revoir,
Aya
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Di 18.03.03 00:20
Das habe ich verstanden. Nur funktionierte dein Code auch in der Hinsicht nicht, daß auch wenn die Komponente auf dem Formular abgelegt wären und so ein Parent besäse, du es nicht über Application finden könntest. Wenn du über Application und Components gehst, dann findest du nur die Formulare.
Aber bedenke logisch was eine Komponente ist, die noch nicht zugewiesen wurde. Einfach nur eine Variable.
Was du also suchst ist einfach (noch) eine globale Variable.
_________________ Popov
|
|
maximus
      
Beiträge: 896
Win XP, Suse 8.1
Delphi 4/7/8 alles prof
|
Verfasst: Di 18.03.03 12:17
Aya hat folgendes geschrieben: | Hi,
ich sagte doch... *seufzt* auf diese Art klappt es nicht, da die Frames immer noch KEINEN Parent haben und somit auf den Forms genausowenig auftauchen wie sonst irgendwo...
Aber als kleine nebeninfo, ich brauche die Liste zur DesignTime, also nich später im fertigen Programm.
Bastel an einer Komponente in der man u.A. Frames aussuchen kann, und dafür brauche ich das..
Au'revoir,
Aya |
Wenn sie noch keinen parent haben, warum hast du sie dann überhaupt schon instanziert? Nimmt doch nur speicher weg und man sieht nichts.
Ich würde die klassen der frames in der jeweiligen 'initialization', mit einer eigenen register procedure, speichern und dann bei bedarf instanzieren  Allerdings kann es ja auch sein, dass das dein prog das erfordert?
cu. mx
|
|
Aya 
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Di 18.03.03 16:35
Hi,
na ja, ich will ja eine Komponente basteln auf der man u.A. auch Frames anzeigen kann.
Deswegen geht es mir ja nur um die DesignTime... ich brauche ne Liste in der man alle frames einfach auswählen kann
Au'revoir,
Aya
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
maximus
      
Beiträge: 896
Win XP, Suse 8.1
Delphi 4/7/8 alles prof
|
Verfasst: Di 18.03.03 17:55
Dann sind die frames wohl noch nicht instanziert, oder doch?
Weil, wenn nicht, dann ist die register procedure doch ideal, da du somit die liste der klassen hättest.
Wenn du schon instanzierte Frames anzeigen willst, könntest du ja eine klasse von TFrame ableiten und der konstruktor overriden, in dem du dann die instanz in einer liste registriest. oder versteh ich dich falsch?
Ich vermute mal du willst das voll dynamisch machen, ohne irgendwo noch was anzugeben? ...Ich schätze das wird schwierig, da ein frame, ohne parent, ja auch nur ein verlorenes objekt in den tiefen des speichers wäre
bis denn.
|
|