Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Im Fremden Programm auf Listbox klicken (https://www.delphipraxis.net/203956-im-fremden-programm-auf-listbox-klicken.html)

Dumpfbacke 9. Apr 2020 18:30

Im Fremden Programm auf Listbox klicken
 
Hallo Delphianer,
ich habe hier ein Problem. Es gibt ein Programm aus dem ich Daten auslesen muss. Die Daten sind in einer ListBox eingetragen. Ich kann mit meinen Programm die benötigten Daten aus dem anderen Programm auslesen. Ich kann auch einen Eintrag auswählen. Jetzt kommt jeocoh mein Problem. Wenn ich in dem Programm mit der Maus den Eintrag auswähle wir ein Label im Programm gefüllt an die Daten muss ich ran. Kann ich das irgendwie simulieren ? Ich möchte nicht die Maus an die stelle bewegen und dann klicken. Es sollte mit SendMessage möglih sein.

Danke Dumofbacke

Dumpfbacke 9. Apr 2020 18:43

AW: Im Fremden Programm auf Listbox klicken
 
Hat sich erledigt. Der Tag heute war einfach zu lange. Ich nache heute nicht mehr, denn das bringt nicht mehr.

Rollo62 10. Apr 2020 07:47

AW: Im Fremden Programm auf Listbox klicken
 
Zitat:

Zitat von Dumpfbacke (Beitrag 1461732)
Hat sich erledigt. Der Tag heute war einfach zu lange. Ich nache heute nicht mehr, denn das bringt nicht mehr.

= HomeOffice :-D

Dumpfbacke 8. Jun 2020 06:22

AW: Im Fremden Programm auf Listbox klicken
 
Hallo Delphianer,
ich muss leider noch mal nachfragen da es doch einfach nicht funktionieren will. Ich möchte gerne ein anderen Programm steuern. Das habe ich auch schon alles hinbekommen nur die blöde ListBox zickt hier rum. Ich kann mir die Einträge aus der ListBox schon mal ziehen und somit meinen Eintrag aus auswählen. Dieses mache ich mittels
Delphi-Quellcode:
 SendMessage(wndChild. LB_SETSEL, WPARAM(True),I)
Wobei I die Zeile ist die ich vorher ermittelt haben. Wenn man sich nun das zu steuernde Programm ansieht, so kann man auch erkennen das der Eintrag der gewünschten Zeile wirklich markiert ist. Als nächstes drückt man dann einen Button im Programm und der Wert wird übernimmen. Hier ist nun mein Problem. Wenn ich den Button drücke wird immer der erste Wert der ListBox übernommen und nicht der Wert wechen ich hier markiert habe. Muss nan hier noch ein update and die Listbox schicken ? Es ist schon ein wenig komisch das alles richtig angezeigt wird in der Listbox d.h. Der Eintrag ist dort ausgewählt und dann beim übernehmen funktioniert es nicht.

Muss ich hier noch etwas machen damit der richtige Wert übernommen wird ?

Tanja

Dumpfbacke 8. Jun 2020 14:41

AW: Im Fremden Programm auf Listbox klicken
 
Hallo Delphianer,
ich habe noch mal etwas versucht. Auch mitteles
Delphi-Quellcode:
SendMessage(wndChild LB_SELITEMRANGE, WPARAM(True), I)
funktioniert es auch nicht. Es sind zwar dann alle markiert, aber auch hier wird nur der erste übernommen. Das ganzeich wie verhext ich komme da einfach nicht weiter und das Blöde Programm zickt nur rum.

Tanja

hoika 8. Jun 2020 15:32

AW: Im Fremden Programm auf Listbox klicken
 
Hallo,
hast Du mal versucht, selbst so ein Programm mit einer ListBox zu schreiben.
Und dir mal selber die Nachrichten zu schicken?

Harry Stahl 8. Jun 2020 16:39

AW: Im Fremden Programm auf Listbox klicken
 
Entscheidend ist der Index, nicht die Markierung (zumindest wenn die Listbox Multiselect erlaubt). Du musst also einen passenden Wert für Sendmessage heraussuchen, der den Index ändert (evtl. CB_SETCURSEL ?).

Dumpfbacke 9. Jun 2020 06:54

AW: Im Fremden Programm auf Listbox klicken
 
Zitat:

Zitat von Harry Stahl (Beitrag 1466775)
Entscheidend ist der Index, nicht die Markierung (zumindest wenn die Listbox Multiselect erlaubt). Du musst also einen passenden Wert für Sendmessage heraussuchen, der den Index ändert (evtl. CB_SETCURSEL ?).

Ja ich habe hier eine Listbox mit Multiselect. Aus diesen Grun dbenutze ich auch SETSEL. Der richtige Eintrag wird ja auch markiert. Leider geht es mit SETCURAEL auch nicht. Das komische ist das ja der Eintrag markiert ist und "nur" nicht übvernommen wird.

Tanja

Jumpy 9. Jun 2020 10:02

AW: Im Fremden Programm auf Listbox klicken
 
Man weiß ja nicht, wie das Programm intern arbeitet. Kann es sein, dass die ListView intern events abfeuert, die aber nicht abgefeuert werden, wenn du das von extern markierst? Wenn man GUI und Logik getrennt hat ist da vielleicht so ein Mechanismus im Spiel.

Du kannst ja selber ein Testprogramm mit ListView bauen und damit testen wann es klappt und wann nicht.

Dumpfbacke 10. Jun 2020 11:19

AW: Im Fremden Programm auf Listbox klicken
 
So ich habe mal schnell ein eigens Programm mit einer Listbox erstellt und siehe da dort funktioniert es wie es soll. Es hängt also an dem Programm welche es steuern möchte.
Sagt mal kann ich mitteles einer Sendmessage auch etwas an das Element schicken wie z.B. Cursor Up / Cursor down oder ein Update für das Element ? Normalerweise wählt man den Eintrag mit der Maus aus. Ich vermute einmal das hier im Hintergrund, wie Ihr es geschrieben habt, noch etwas geamcht wird wenn man einen Eintrag in der ListBox anklickt. Wenn ich mich bei dem Proramm mittes Tab auf das Element begebe und dann Curso down und Curor Up mache wird der Datebsatz übernommen. Es geht auch wenn ich mittels Tab das Element auswählt und dann Space drücke.
Bekommeich einen Tastendruck an das Element von den zu steuernden Programm auch wenn das Programm nicht den Focus hat ?


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