Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Prism Komponenten einer Form ermitteln (https://www.delphipraxis.net/72154-komponenten-einer-form-ermitteln.html)

Donald 26. Jun 2006 14:48


Komponenten einer Form ermitteln
 
Hallo,

ich möchte aus einer Anwendung herausfinden, welche Komponenten das Formular enthält.
Der Name der Komponente, sowie deren Einstellung möchte ich für den Benutzer ansagen lassen.
Hat jemand eine Idee, wie ich über das Handle der Form an die Komponenten kommen kann, oder ob es dafür eine entsprechende Funktion gibt?

Dank, schon mal an alle, die mir helfen,
Donald

Avatar 26. Jun 2006 15:12

Re: Komponenten einer Form ermitteln
 
Ist das Dein Formular oder hast Du nur das Handle eines fremden Formulars?

Wenn Du die Instanz des Formulars direkt ansprechen kannst, dann geht folgendes:

Delphi-Quellcode:
var
  i: Integer;
begin
  for i := 0 to pred(ComponentCount) do
    begin
      // Allgemeine Ausgabe
      ShowMessage('Name='+Components[i].Name);
      ...

      // Spezielle Ausgabe
      if (Components[i] is TLabel) then
        begin
          ShowMessage('Caption='+TLabel(Components[i]).Caption);
          ...
        end;
    end;
  ...

Donald 26. Jun 2006 15:54

Re: Komponenten einer Form ermitteln
 
Vielen Dank für den Tipp. Werde es ausprobiern und Bescheid geben.
Wahrscheinlich erst morgen...

Ich habe derzeit eine eigene Form, deren Handle ich ermittle. In Zukunft soll das Programm aber auch Komponenten von Formularen aus fremden Anwendungen ermitteln.

Gruß, Donald

3_of_8 26. Jun 2006 15:59

Re: Komponenten einer Form ermitteln
 
Geht das bei .NET überhaupt? :gruebel:

Donald 26. Jun 2006 16:10

Re: Komponenten einer Form ermitteln
 
@Manuel: Der Code von Avatar funktioniert soweit.

@Avatar:
Habe es doch jetzt noch testen können.
Ich bekomme auch Ausgaben. So in der Art habe ich mir das vorgestellt. Jetzt habe ich aber noch ein Verständnisproblem:
Ich bekomme die Daten nur aus dem Hauptfenster. Wenn ein Pop-Up-Fenster aufgeht, wird das anscheinend ignoriert. Obwohl ich mir vorher mit GetFocus das Handle geholt habe. Aber in dem geposteten Code wird das Handle gar nicht verwendet :?:

Habe ich da was übersehen?

Gruß, Donald

Donald 27. Jun 2006 08:46

Re: Komponenten einer Form ermitteln
 
Guten Morgen,

habe jetzt rausgefunden, dass ich den Codeteil in den Code des Pop-Up-Fensters schreiben muss. Dann geht das auch.
Jetzt bin ich beim Öffnen des Fenster darüber informiert, was für Elemente enthalten sind. Das ist gut.

Wenn der Benutzer nun aber mit Tab durch das Fenster geht, weiß ich nicht auf welcher Komponente er gerade steht. Die jeweilige Auswahlmöglichkeit (ComboBox, Tabsheet, etc.) und deren Überschrift (Labels) muss ich aber erkennen.
Leider habe ich immer noch keine Ahnung :gruebel: , wie ich das machen soll und hoffe auf weitere Unterstützung durch euch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 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