AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Componenten in Forms und Frames finden
Thema durchsuchen
Ansicht
Themen-Optionen

Componenten in Forms und Frames finden

Ein Thema von Ykcim · begonnen am 6. Dez 2016 · letzter Beitrag vom 9. Dez 2016
Antwort Antwort
Seite 1 von 2  1 2      
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
828 Beiträge
 
Delphi 10.4 Sydney
 
#1

Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 13:39
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
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#2

AW: Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 13:45
if Form.Controls[I] is TDBAdvEdit then
Wenn ich das ganze in einem Form ausführe, klappt das prima.

Kann mir jemand einen Tipp geben,
Tipp: Siehe Farben.

Zitat:
for I := 0 to Form.ComponentCount -5 do begin
if Form.Controls[I] is TDBAdvEdit then
Siehe ebenfalls Farben und ich würde das nicht "prima" funktionierend nennen ... eher potentiell gefährlich.


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: Delphi-Referenz durchsuchenFindComponent
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 6. Dez 2016 um 15:27 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.160 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 14:04
for I := 0 to Form.ComponentCount - 5

Hast du dich vertippt oder bist du mit dem "-5" ganz, ganz sicher?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#4

AW: Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 14:05
Hast du dich vertippt oder bist du mit dem "-5" ganz, ganz sicher?
Oder "klappt das prima" hatte mit -1 nicht so prima geklappt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.160 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 14:06
Aah, jetzt sehe ich das auch (.Components[] vs. .Controls[])
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
828 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 15:23
Hallo Zusammen,

vielen Dank für die Hinweise - ja, -1 hatte nicht so prima geklappt 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
Patrick
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
828 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 16:35
Ok, ich habe hier noch eine gute Erklärung gefunden und werde das Ganze mal so testen:

Delphi-Quellcode:
for I := 0 to Form.ComponentCount -1 do begin
if Form.Components[I] is TDBAdvEdit then
//Tu etwas;
end;
Im TestProjekt hat das geklappt, ob das auch mit einer gekapselten Klasse und einem Projekt mit Forms und Frames funktioniert muss ich noch testen.

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
828 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 18:40
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:
if form.components[I] is TButtom then
   ProcedureXY(Form)
else if form.components[I] is TFrame then
   ProcedureXY(Frame)
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...
Am liebsten hätte ich etwas universelles, was ein TForm oder TFrame sein kann. Gibt es da eine Möglichkeit?

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.160 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 18:55
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 Klassenhelfer draus.

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:
http://www.delphipraxis.net/175655-g...ml#post1220959
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
828 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 19:07
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
Patrick
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz