Autor Beitrag
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Do 25.08.05 18:57 
Hallo,

ich kaum erfahrung mit dem "Fernsteuern" von Anwendungen deswegen würde ich mich über denkansätze zu folgenden Problem freuen.

Ich möchte Daten aus einer einer Datenbankanwendung (habe ich vor langer Zeit mal auf die Schnelle gemacht und mittlerweile die Quellen und das DB Passwort nciht mehr) in ihr Remake (ja ich werde besser auf die Quellen aufpassen ;)) übertragen. Da ich nicht direckt auf die alte DB zugreifen kann (wie gesagt, die ist verschlüsselt) möchte ich den Text aus den (DB)Edit Feldern der alten Anwendung auslesen und in die neue übertragen. Das auslesen ist kein Problem, allerdings muss ich nach dem auslesen zum nächsten Datensatz wechseln (bei mehreren hundert Datensätzen möchte ich das nicht manuell machen), im normalen Betrieb wird das über eine tDbNavigator Komponente gemacht.

Meine Frage ist nun, wie teile ich dem Programm mit, dass es zum nächsten Datensatz wechseln soll? Leider kann ich den "Weiter" Button nicht ermitteln, denn er ist nciht eigenständig sondern ein Bestandteil des tDBNavigators (dessen Handle bekomme ich).

Ich hoffe ihr habe eine Idee für mich.

Gruß
Klabautermann
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 28.08.05 23:38 
Hallo!

Gab es nicht ein Programm, mit dem man sich die Nachrichten ansehen konnte, welche von bzw. an ein Programm gesendet werden? :gruebel: Dann könntest Du schauen, welche Nachricht beim Klick auf diesen "weiter"-Button gesendet wird.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Mo 29.08.05 00:21 
Die einzelnen NavButtons sind Abkömmlinge von TSpeedButton, was wieder ein Nachfolger von TGraphicControl ist und somit kein eigenes Handle besitzt. Die NavButtons haben aber eine fixe Größe - Breite 23px, Höhe 22px - das erleichtert die Sache schon wieder um einiges...

Die TDBNavigator-Komponente ist ein Nachfahre von TCustomPanel und der Parent der TNavButtons. Da die TNavButtons keine Fenster in dem Sinne sind (sie haben ja auch kein Handle), ist der Parent dafür verantwortlich die Messages zu empfangen und falls erforderlich an seine Childs weiterzugeben.
Es reicht also, wenn du dem TDBNavigator WM_LBUTTONDOWN + WMLBUTTONUP-Messages schickst um einen Klick zu simulieren. LParam enthält dabei die Koordinaten relativ zur linken oberen Ecke des TDBNavigators. Für den ersten Button kannst du also zB x=11;y=11 nehmen, für den 2ten x=34;y=11, für den 3ten x=57;y=11 usw.
Der Vorfahre vom TDBNavigator TWinControl schaut dann ob an den angegebenen Koordinaten ein Child ist, und rechnet falls nötig die Koordinaten relativ zu dessen linker oberer Ecke um und übergibt die Message.

Gruß, Motzi

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!