AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Info über Programm / Controls

Ein Thema von knochen · begonnen am 18. Okt 2022 · letzter Beitrag vom 25. Okt 2022
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.047 Beiträge
 
Delphi 12 Athens
 
#1

AW: Info über Programm / Controls

  Alt 19. Okt 2022, 09:26
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Info über Programm / Controls

  Alt 19. Okt 2022, 09:30
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.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
knochen

Registriert seit: 26. Aug 2009
81 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Info über Programm / Controls

  Alt 21. Okt 2022, 07:43
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.
A fool with a tool remains a fool.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.731 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Info über Programm / Controls

  Alt 21. Okt 2022, 08:07
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.
Thomas Mueller

Geändert von dummzeuch (21. Okt 2022 um 08:09 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Info über Programm / Controls

  Alt 21. Okt 2022, 09:59
Bei TestComplete kann man mal schauen.

normal gehen die auch über WindowsHandles, aber auch über Debuginfos und eventuell RTTI.
z.B. um bei DevExpressGrids an den Inhalt zu kommen, da es für Windows nur eine große Leinwand ist, wo die Columns/Rows/Zellen draufgemalt werden (abgesehn vom InEdit-Feld, welches als echtes Control über seine Zelle gelegt wird)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
knochen

Registriert seit: 26. Aug 2009
81 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Info über Programm / Controls

  Alt 25. Okt 2022, 07:18
Danke euch, die Lösung mit Screen.ActiveForm funktioniert am besten für meine Zwecke. Mann, da hätte ich auch selbst drauf kommen können.
A fool with a tool remains a fool.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.123 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Info über Programm / Controls

  Alt 22. Okt 2022, 21:43
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.
In der TActionList einer immer vorhandenen Form (oder Delphi-Referenz durchsuchenVcl.Forms.TApplication.OnShortCut) einen Shortcut anzulegen, der einfach den Einzeiler ShowMessage(Application.ActiveForm.ClassName) ausführt, wäre zu einfach? Außerdem kann man Application.ActiveForm.Components iterieren und bei allen TControls darunter mit Delphi-Referenz durchsuchenVcl.Controls.TControl.BoundsRect.Contains(Delphi-Referenz durchsuchenVcl.Controls.TControl.ScreenToClient(Delphi-Referenz durchsuchenVcl.Controls.TMouse.CursorPos)) prüfen, es unter dem Mauszeiger ist.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:54 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