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
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#1

AW: Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 15: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
856 Beiträge
 
Delphi 12 Athens
 
#2

AW: Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 17: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.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 17: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
856 Beiträge
 
Delphi 12 Athens
 
#4

AW: Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 18: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
nahpets
(Gast)

n/a Beiträge
 
#5

AW: Componenten in Forms und Frames finden

  Alt 6. Dez 2016, 18:09
Du hast die Lösung doch schon geschrieben und genutzt.

Du fragst ab, ob irgendwas is tIrgendwas, wenn ja mach was.

Du übergibst halt als Parameter einen Vorfahrentyp, der bei allen gleich ist.

Da Du in der Schleife Components abfragst und damit nach allen Komponenten suchst, übergibst Du der Prozedure halt die Komponente, bei der Du alle Komponenten abfragst, die sie in Components enthält.
Delphi-Quellcode:
procedure WieSuchenNachKomponenten(a : TComponent);
var
  i : Integer;
begin
  if a is TForm then begin
    for i := 0 to a.Componentcount - 1 do begin
      if a.Components[i] is TWasweissIch then begin
        // TustduwasweissIch
      end else
      if a.Components[i] is TKannwasAnderesSein then begin
        // TustduKannwasAnderesSein
      end;
    end;
  end else
  if a is TFrame then begin
     // Wenn es was ganz anderes sein soll
  end else
  ...

end;
Ist es egal, ob nun ein TForm oder ein TFrame reinkommt, dann geht's auch ohne die Abfrage nach TForm bzw. TFrame.

Du willst ja schließlich was mit den Komponenten machen, die in Components enthalten sind. Dabei dürfte es (fast) egal sein, ob das Teil, dass Du in die Prozedur reingibst nun ein TFrom oder ein TFrame oder ein TPanel oder TEinWasWeissIch ist, dessen Komponenten aus Components "verarbeitet" werden sollen.

Geändert von nahpets ( 6. Dez 2016 um 18:12 Uhr) Grund: Schreibfehler, wie immer :-(
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#6

AW: Componenten in Forms und Frames finden

  Alt 9. Dez 2016, 12:29
Hallo Zusammen,

war beruflich unterwegs, daher die Funkstille...

Vielen Dank für Eure Antworten. Ich denke, dass ich es genauso hinbekommen werde.

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:53 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