Entwickler-Ecke
Windows API - Eindeutige ID einer Komponenten???
biohazard - Mo 01.09.03 12:55
Titel: Eindeutige ID einer Komponenten???
Hallo,
Sorry habe leider keine bessere Übrschrift gefunden.
Ich greife per WindowFromPoint() auf ein DBGrid in einem fremden Prog zu.
Funktionert auch alles ganz prima. Nun wollte ich aber in meinem Programm einen Wert abspeichern, sodaß ich nicht immer mit der Maus über dem DBGrid seien muß, um meine Aktionen durchführen zu können.
Das Problem ist das es mehrere DBGrids in dem Prog gibt. Also geht es nicht über den Klassennamen. Einen WindowText haben Grids auch nicht und das Handle ändert sich ja bei jedem Start.
Gibt es eine Möglichkeit eine eindeutige ID einer Komponente in einem Fremdprogramm zu finden und zu speichern, sodaß meine Prog nur noch den gespeicherten Wert abfragt und dann weiß welches Grid ich brauche.
Delete - Mo 01.09.03 13:28
Clientfenster haben normaler weise eine ID.
Sollte es ein VCL DBGrid sein, wirst du aber Pech haben. VCL Komponenten bilden ihre ID aus dem Handle, sind also bei jedem Programmstart anders, wie du schon festgestellt hast.
Ist es eine nicht VCL Komponente könntest du Glück haben, es sei den der Programmierer hat sich nicht drum gekümmert, dann muß die ID auch nicht eindeutig sein.
Die ID kannst du mit meinem Programm WindowInfo von meiner Seite ermitteln. Einfach die Zielscheibe mit der Maus nehmen und über das Fenster fahren.
biohazard - Di 02.09.03 09:58
Das hab ich mir schon fast gedacht. Leider ist es eine VCL Komponente.
Naja. Muß ich mir halt was anderes einfallen lassen.
Danke.
patrick - Di 02.09.03 18:25
du kannst der kompo aber ne selbstgemachte id zuweisen indem du den
die TAG-propery verwendest
aus der delphi hilfe:
| Zitat: |
Stores an integer value as part of a component.
property Tag: Longint;
Description
Tag has no predefined meaning. The Tag property is provided for the convenience of developers. It can be used for storing an additional integer value or it can be typecast to any 32-bit value such as a component reference or a pointer.
|
biohazard - Mi 03.09.03 12:59
@ patrick
???? Wie soll ich denn der Komponente in dem anderen Prog einen Tag zuweisen. Außerdem wie merkt sich das andere Prog den Tag wenn es beendet wird. Sonst muß ich die Zuweiseung doch jedesmal neu machen.
Vieleicht versteh ich dich jetzt auch nicht ganz.
patrick - Mi 03.09.03 17:54
tausendfach entschuldigung:
das mit der anderen application hab ich wohl überlesen :oops:
ich nehme alles wieder zurück :(
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!