Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Info über Programm / Controls (https://www.delphipraxis.net/211651-info-ueber-programm-controls.html)

knochen 18. Okt 2022 11:28

Info über Programm / Controls
 
Hallo zusammen,

ich hatte vor ein paar Jahren mal ein Tool, mit dem ich Informationen über ein beliebiges gerade laufendes Programm ermitteln konnte. Mit einer Art Fadenkreuz-Cursor konnte ich auf ein Fenster und dort z.B. auf ein Eingabefeld klicken, und erhielt Info über Art des Controls (TEdit), Name etc. Leider habe ich den Namen vergessen. Kennt jemand dieses Programm oder etwas Vergleichbares?

Vielen Dank

DeddyH 18. Okt 2022 12:30

AW: Info über Programm / Controls
 
Meinst Du vielleicht WinSpy?

knochen 18. Okt 2022 13:58

AW: Info über Programm / Controls
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo und danke für die schnelle Antwort.

Ja, so was in der Art meine ich. Man sieht sehr schön die Baumstruktur der Controls mit einigen Informationen wie Klassenname, Handle, Koordinaten etc. Für mich von unschätzbarem Wert wäre jedoch der Name des Controls.
Gibt's so etwas?

Grüßchen, Knochen

DeddyH 18. Okt 2022 14:39

AW: Info über Programm / Controls
 
Ich wüsste nicht, wie das gehen sollte. IIRC ist der Name eines Controls eine rein interne Geschichte, von außen wüsste ich keine Möglichkeit, da ranzukommen. Aber ich kann mich natürlich auch irren.

Uwe Raabe 18. Okt 2022 14:50

AW: Info über Programm / Controls
 
TestComplete macht das z.B. so. Vermutlich wird dafür die
Delphi-Quellcode:
function FindControl
aus Vcl.Controls verwendet.

Redeemer 19. Okt 2022 09:05

AW: Info über Programm / Controls
 
Gibt es Programme dieser Art, mit denen ich TLabel auslesen kann? WinSpy und X-Spy können das wohl nicht.

jaenicke 19. Okt 2022 09:26

AW: Info über Programm / Controls
 
Zitat:

Zitat von Redeemer (Beitrag 1513442)
Gibt es Programme dieser Art, mit denen ich TLabel auslesen kann? WinSpy und X-Spy können das wohl nicht.

TLabel ist kein Windows Control, so dass es kein Handle hat und für solche Tools nicht sichtbar ist. Ein TLabel kann z.B. TestComplete trotzdem auslesen, aber das geht nicht über Windows Funktionen, sondern es macht sich dafür die Interna von Delphi zu nutze, wenn es eine in Delphi geschriebene Anwendung erkennt.

himitsu 19. Okt 2022 09:30

AW: Info über Programm / Controls
 
jupp, TStaticText ist die eigentliche Windows-Variante des TLabel.

Alle TGraphicControl sind für Windows nicht existent, da sie sich nur auf den Canvas ihres Parents "draufmalen".
TLabel, TImage uvm.

knochen 21. Okt 2022 07:43

AW: Info über Programm / Controls
 
Gibt es denn eine derartige Komponente o.ä., das ich in ein Delphi Programm einbauen kann? Was ich eigentlich brauche, sind nicht Info über beliebige Programme, sondern über mein Delphiprogramm, das gerade läuft. Es ist historisch gewachsen und sehr komplex und umfangreich. Und es enthält viele Formulare, die einander sehr ähneln. Wenn ich die Möglichkeit hätte, bei Klick auf die Form oder auf Controls deren Namen zu erfahren, würde mir das beim Auffinden der jeweiligen Unit helfen.

dummzeuch 21. Okt 2022 08:07

AW: Info über Programm / Controls
 
Zitat:

Zitat von knochen (Beitrag 1513579)
Gibt es denn eine derartige Komponente o.ä., das ich in ein Delphi Programm einbauen kann

Ich meine mich dunkel zu erinnern, dass es sowas mal gab - ich würde auf 1990er oder frühe 2000er Jahre tippen - aber die Erinnerung ist zu dunkel und Google keine Hilfe.

Im Prinzip wäre es gar nicht so schwierig, sowas zu schreiben, denn jedes Formular ist in Screem.Forms aufgelistet, sobald es erzeugt wurde. Mittels der Controls / Components arrays und ein bisschen RTTI kommt man dann an die Komponenten und deren Properties. Nichts anderes machen die diversen Delphi IDE Explorer, die es gibt. Mit neueren Delphi-Versionen kann man sogar die Unit ermitteln, in der ein Formular deklariert wird. Ach ja: Mittels Screen.ActiveForm kann man ermitteln, welches das aktuelle Formular ist und sogar mittels Screen.ActiveControl, welches Control den Fokus hat.

Aber ich glaube nicht, dass sich noch jemand die Mühe machen wird, sowas neu zu entwickeln und evtl. zu verkaufen, denn der Markt für Delphi ist einfach inzwischen zu klein geworden. Die einzige Hoffnung wäre, dass jemand sowas quasi schon für die interne Verwendung hat und es veröffentlicht.

Oder es nimmt jemand einen der o.g. Delphi IDE Explorer und passt ihn so an, dass er in ein beliebiges Programm eingebunden werden kann. Auch das wäre gar nicht so schwierig, es müsste nur jemand tun.

Wenn Du nur wissen willst, welches Formular gerade angezeigt wird:
Programm im Debugger laufen lassen und im Formular anhalten. Dann den Call Stack ansehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:28 Uhr.
Seite 1 von 2  1 2      

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