![]() |
Componenten in Forms und Frames finden
Hallo Zusammen,
ich schreibe gerade an einer Klasse, mit der ich die Forms und die Frames, die auf den Forms teilweise positioniert sind, finden kann. Ich nutze dazu
Delphi-Quellcode:
,
for I := 0 to Form.ComponentCount -5 do begin
if Form.Controls[I] is TDBAdvEdit then //Tu etwas; end; weil ich den Namen der Komponente erst einmal nicht kenne. Wenn ich das ganze in einem Form ausführe, klappt das prima. Mein Problem besteht aber darin, dass ich in Forms und in Frames nach Componenten suchen muss. Kann mir jemand einen Tipp geben, wie ich das am besten anstelle? Vielen Dank Patrick |
AW: Componenten in Forms und Frames finden
Zitat:
Zitat:
TComponent(xxx).Components findet alles, wo diese Komponente der Owner ist (das, was man beim Create angab, bzw. was man im FormDesigner auf die Form pappt, da ist immer die Form der Owner) Und TWinControl(xxx).Controls oder . WinControls ist alles, wo diese Komponente der Parent ist. PS: ![]() |
AW: Componenten in Forms und Frames finden
for I := 0 to Form.ComponentCount - 5
Hast du dich vertippt oder bist du mit dem "-5" ganz, ganz sicher? |
AW: Componenten in Forms und Frames finden
Zitat:
|
AW: Componenten in Forms und Frames finden
Aah, jetzt sehe ich das auch (.Components[] vs. .Controls[]) :-D
|
AW: Componenten in Forms und Frames finden
Hallo Zusammen,
vielen Dank für die Hinweise - ja, -1 hatte nicht so prima geklappt :oops: und da das erst einmal ein TestProjekt war, hatte ich das so gelöst. Wenn ich das richtig verstehe, veranstalte ich ein Durcheinander mit Componenten und Controls :?. Da ich mit dem Unterschied nicht vertraut bin, werdet ihr recht haben und ich muss mich damit beschäftigen :!:. Mein Ziel ist es, alle verwendeten Elemente (ich benutze jetzt mal bewusst weder das Wort Componente noch Controls) zu finden und ggf. Eigenschaften wie Captions etc zu verändern :?:. Vielen Dank Patrick |
AW: Componenten in Forms und Frames finden
Ok, ich habe
![]()
Delphi-Quellcode:
Im TestProjekt hat das geklappt, ob das auch mit einer gekapselten Klasse und einem Projekt mit Forms und Frames funktioniert muss ich noch testen.
for I := 0 to Form.ComponentCount -1 do begin
if Form.Components[I] is TDBAdvEdit then //Tu etwas; end; Vielen Dank Patrick |
AW: Componenten in Forms und Frames finden
Ich muss jetzt doch noch einmal nachfragen:
Gibt es eine Möglichkeit, wie ich einer Procedure entweder ein TForm oder ein TFrame übergeben? So nach dem Motto:
Delphi-Quellcode:
Ich kann natürlich zwei Mal die gleiche Procedure definieren mit dem Unterschied, dass die eine ein TForm und die andere ein TFrame bekommt, aber wer will das schon...
if form.components[I] is TButtom then
ProcedureXY(Form) else if form.components[I] is TFrame then ProcedureXY(Frame) Am liebsten hätte ich etwas universelles, was ein TForm oder TFrame sein kann. Gibt es da eine Möglichkeit? Vielen Dank Patrick |
AW: Componenten in Forms und Frames finden
Ja. Eine Form leitet sich von TWinControl ab. Ein Frame ebenfalls. Und ein Panel auch, und eine GroupBox auch, und ...
Entweder baust du dir eine Prozedur in welches du ein TWinControl reinstecken kannst (also deine Form, deinen Frame, ...). Oder, wenn man es richtig cool haben möchte, machst du einen ![]() Und wenn du es so machen willst dass dir die Frauen gleich um den Hals fallen kommen noch Generics rein wie ein wie es z.B. dieser Poser hier macht: ![]() |
AW: Componenten in Forms und Frames finden
Das ist klasse! Ich denke, damit komme ich weiter.
Auf die Frauen am Hals muss ich verzichten, denn Generics übersteigen meine Kenntnisse... Vielen Dank Patrick |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 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