Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi WM_SETTEXT speichern geht nicht (https://www.delphipraxis.net/106061-wm_settext-speichern-geht-nicht.html)

mashutu 4. Jan 2008 20:20

Re: WM_SETTEXT speichern geht nicht
 
Zitat:

Zitat von msickel
kann leider nichts umbauen ist nur ein Binary!

Schade auch... :(
Zitat:

Zitat von msickel
was ist den der große Unterschied wenn ich die Funktin WM_SETTEXT benutze oder manuell den Text per Tastatur in das Textfeld schreibe?

Gute Frage. Wenn Das Zielprogramm nur als binary vorliegt kannst Du das gar nicht in Erfahrung bringen.

Zum Beispiel hat das Textfeld nie den Focus. - auch wenn ein Onchange-Event ausgefuehrt wird.

Man weiss ja nie, was da um den Code alles herumgestrickt ist...

Nur mal als Idee zum Testen:
+Anruf kommt
+Du hast in Deinem Popup einen Breakpoint, so dass der WM_Settext (noch) nicht ausgefuehrt wird.
<Alt-Tab>
+Du gehst in das ThunderRT6 (oder wie auch immer der Monitor heisst) und gehst mal mit Tab durch alle Felder
<Alt-Tab> (back 2 Delphi)
<F9>

+anruf beenden und ...
... nachschauen, ob er das gefressen hat
Wenn ja, hat irgendein Programmierer des Monitors Dreck produziert.

Wenn Nein - nochmal:
+Anruf kommt
+Du hast in Deinem Popup einen Breakpoint, so dass der WM_Settext (noch) nicht ausgefuehrt wird.
<Alt-Tab>
+Du gehst in das ThunderRT6 (oder wie auch immer der Monitor heisst) und gehst mal mit Tab durch alle Felder bis zum fraglichen Feld. Bleib drin.
<Alt-Tab> (back 2 Delphi)
<F9>
+anruf beenden und ...
... nachschauen, ob er das gefressen hat
Wenn ja, hat irgendein Programmierer des Monitors Dreck produziert.

(Hinweis: in der zweiten Variante stehst Du mit dem Cursor im fraglichen Feld!)
Wenn beides zu keinem Ergebnis fuehrt, melde dich nochmal. Hab hier zu Hause kein Delphi (nur Linux und Lazarus) - von daher kann ich Dir dann mit Sachdienlichen Hinweisen erst wieder am Montag zur Seite stehen.
Du kannst mir ja auch mal den Namen des Monitors verklickern. ein Kollege von mir programmiert auch so Telefonanlagenzeugs, vielleicht koennte ich den mal fragen.
Schoenes WE

msickel 7. Jan 2008 07:01

Re: WM_SETTEXT speichern geht nicht
 
Zitat:


Nur mal als Idee zum Testen:
+Anruf kommt
+Du hast in Deinem Popup einen Breakpoint, so dass der WM_Settext (noch) nicht ausgefuehrt wird.
<Alt-Tab>
+Du gehst in das ThunderRT6 (oder wie auch immer der Monitor heisst) und gehst mal mit Tab durch alle Felder
<Alt-Tab> (back 2 Delphi)
<F9>

geht nicht!

Zitat:

Wenn Nein - nochmal:
+Anruf kommt
+Du hast in Deinem Popup einen Breakpoint, so dass der WM_Settext (noch) nicht ausgefuehrt wird.
<Alt-Tab>
+Du gehst in das ThunderRT6 (oder wie auch immer der Monitor heisst) und gehst mal mit Tab durch alle Felder bis zum fraglichen Feld. Bleib drin.
<Alt-Tab> (back 2 Delphi)
<F9>
+anruf beenden und ...
... nachschauen, ob er das gefressen hat
Wenn ja, hat irgendein Programmierer des Monitors Dreck produziert.
geht leider auch nicht, Text wird nicht gespeichert!

noch ne Idee woran es liegen kann ?

mfg
MArtin

mashutu 7. Jan 2008 08:12

Re: WM_SETTEXT speichern geht nicht
 
Jatzt faellt mir auf die schnelle nix mehr ein. Aber ich werde mich vermutlich im Laufe des Tages noch einmal melden.
Gruss

mashutu 7. Jan 2008 10:01

Re: WM_SETTEXT speichern geht nicht
 
probier mal folgendes:

SendMessage(wnd, WM_Setfocus,0,0);

SendMessage(wnd, WM_SETTEXT, 0, LPARAM(PChar(csMessage)));
SendMessage(wnd, WM_KeyDown, 0, 64);
SendMessage(wnd, WM_KeyUp, 0, 64);
SendMessage(wnd, WM_Command, 0, 0);
Das wird Dir nicht helfen, aber bei mir kommt wenigstens ein Fehler wenn die Datenmenge nicht in Edit-Mode (oder insert) ist.

msickel 7. Jan 2008 13:02

Re: WM_SETTEXT speichern geht nicht
 
Zitat:

Zitat von mashutu
probier mal folgendes:

SendMessage(wnd, WM_Setfocus,0,0);

SendMessage(wnd, WM_SETTEXT, 0, LPARAM(PChar(csMessage)));
SendMessage(wnd, WM_KeyDown, 0, 64);
SendMessage(wnd, WM_KeyUp, 0, 64);
SendMessage(wnd, WM_Command, 0, 0);
Das wird Dir nicht helfen, aber bei mir kommt wenigstens ein Fehler wenn die Datenmenge nicht in Edit-Mode (oder insert) ist.



der letzte SendMessage (WM_COMMAND) beendet die Application, manchmal hängt sie sich auch auf.

Martin

mashutu 7. Jan 2008 13:17

Re: WM_SETTEXT speichern geht nicht
 
Zitat:

Zitat von msickel
der letzte SendMessage (WM_COMMAND) beendet die Application, manchmal hängt sie sich auch auf.
Martin

Okay, die Tabelle ist nicht im Edit mode. Shit.

Mit einer ADO-Komponente (tAdoTable) konnte ich Deinen Fehler nun nachvollziehen. Die geht auch nicht automagisch in den Edit-Mode.

Hast Du Kontakt zu den Entwicklern des Monitor-Programms (Service- oder Supportvertrag?) - ohne, dass die Jungs was aendern wirst Du wohl kaum weiterkommen... :-(

msickel 7. Jan 2008 15:57

Re: WM_SETTEXT speichern geht nicht
 
Zitat:

Zitat von mashutu
Zitat:

Zitat von msickel
der letzte SendMessage (WM_COMMAND) beendet die Application, manchmal hängt sie sich auch auf.
Martin

Okay, die Tabelle ist nicht im Edit mode. Shit.

Mit einer ADO-Komponente (tAdoTable) konnte ich Deinen Fehler nun nachvollziehen. Die geht auch nicht automagisch in den Edit-Mode.

Hast Du Kontakt zu den Entwicklern des Monitor-Programms (Service- oder Supportvertrag?) - ohne, dass die Jungs was aendern wirst Du wohl kaum weiterkommen... :-(


gibt es kein Systemkommando mit dem ich den EDIT Mode aktivieren kann ?

Martin

AgeArtmann 19. Feb 2009 18:17

Re: WM_SETTEXT speichern geht nicht
 
*push*

hi

hab das selbe Problem. Hat vllt. jemand ne Lösung gefunden.
Es muss doch eine Lösung geben das Onchange Event der anderen Applikation auszulösen(Notfalls iwie mit keybd_event)

Danke

lbccaleb 19. Feb 2009 18:51

Re: WM_SETTEXT speichern geht nicht
 
Wie genau funktioniert es denn, wenn Ihr den text per Hand eingebt??
Ihr klickt auf das Edit und schreibt mit der Tastatur los!!?? Und dann?

Drückt Ihr noch Enter, oder irgendwas anderes oder was??

mfg

AgeArtmann 19. Feb 2009 22:48

Re: WM_SETTEXT speichern geht nicht
 
Also es funktioniert wenn man halt selber Text reinschreibt :P

2. Möglichkeit ist nachdem man mit WM_SETTEXT etwas hingeschrieben hat, in das Edit Feld zu klicken und dann zB ein 'A' tippen und es wieder weg machen und schon bleib der von WM_SETTEXT übergebene Text drin

wenn man allerdings nach der Sendmessage nur reinklickt und dann in ein anderes Edit Feld klickt verschwindet der Text, was iwie dafür spricht das der Text nicht wirklich von der Applikation aufgenommen wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 Uhr.
Seite 2 von 2     12   

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