Delphi-PRAXiS

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, fremdes Feld updaten und onUpdate auslösen (https://www.delphipraxis.net/59555-wm_settext-fremdes-feld-updaten-und-onupdate-ausloesen.html)

slemke76 24. Dez 2005 09:05


WM_SETTEXT, fremdes Feld updaten und onUpdate auslösen
 
Hallo zusammen,

ich habe eine kleine Anwendung, die per WM_SETTEXT Eingaben in verschiedenen Feldern erzeugt. Das funktioniert auch wunderbar.
Genaugenommen geht es um eine Anwendung, die zwei Angaben zu einer Krankenkasse "befüllt" bekommen soll. Das Problem ist nun, daß wenn die Krankenkassennummer per WM_SETTEXT gefüllt wurde, die Anwendung selber die passende Krankenkasse (als Klartext) in das zweite Feld einträgt. Wenn man die Nummer per Hand eingibt, dann passiert dies in dem Moment, wo ich per TAB ins nächste Feld wechsle - ich denke, daß in der Anwendung ein "onChange" Event definiert ist. Dies müsste ich jetzt von meiner Anwendung aus auslösen. Bis jetzt habe ich das nicht hinbekommen. Die Nummer wird korrekt eingetragen, aber die Krankenkasse wird nicht rausgesucht. Ich habe auch schonmal probiert ein chr(9) (TAB) an die Nummern anzuhängen, aber ohne Erfolg. Ich habe auch schonmal mit ein paar weiteren WM_ Nachrichten experementiert (z.B. WM_USERCHANGED) aber habe noch nichts passendes gefunden.

Kann mir jemand helfen ???

lg
Sebastian

SirThornberry 24. Dez 2005 09:36

Re: WM_SETTEXT, fremdes Feld updaten und onUpdate auslösen
 
schick das tab lieber per message und hänge es nicht einfach an den text an.

slemke76 24. Dez 2005 10:55

Re: WM_SETTEXT, fremdes Feld updaten und onUpdate auslösen
 
Hi !

verstehe ich noch nicht so ganz - gibt mir doch nochmal ein Stichwort / Befehl dazu. Auch mit WM_SETTEXT ?

lg
Sebastian

marabu 24. Dez 2005 11:02

Re: WM_SETTEXT, fremdes Feld updaten und onUpdate auslösen
 
Hallo Sebastian,

TAB wird von der DialogBox (Form) zu einer Windows Message verarbeitet. Wenn du es als Text an ein Control schickst, dann hat es nicht die gewünschte Wirkung. Mache es besser so:

Delphi-Quellcode:
PostMessage(Handle, WM_NEXTDLGCTL, 0, 0);
Frohe Weihnachten vom marabu

slemke76 24. Dez 2005 12:28

Re: WM_SETTEXT, fremdes Feld updaten und onUpdate auslösen
 
Hallo,

auch mit Postmessage hat es leider nicht hingehauen; ich habe auch mal KEYDOWN/KEYUP ausprobiert. Ich habe jetzt die Sndkey32.pas verwendet, damit gehts (?). Wenn ich das korrekt sehe, arbeitet die Routine mit KeyBordEvent ? Wie dem auch sei, trotzdem vielen Dank & frohe Weihnachten !

lg
Sebastian

marabu 25. Dez 2005 10:07

Re: WM_SETTEXT, fremdes Feld updaten und onUpdate auslösen
 
Der Aufruf von PostMessage() ist völlig unproblematisch, nur beim Handle musst du ein wenig nachdenken: wenn h das Handle des Controls ist, dem du die WM_SETTEXT Nachricht schickst, dann darfst du die Machricht WM_NEXTDLGCTL weder an dieses Handle, noch an das Handle deiner eigenen Form schicken. Wenn du willst, dann probiere es mit GetParent(h) an Stelle von h.

marabu

Flocke 25. Dez 2005 13:33

Re: WM_SETTEXT, fremdes Feld updaten und onUpdate auslösen
 
Vielleicht reicht auch schon, wenn du dem Fenster erst mit SetFocus den Fokus gibst und dann wieder wegnimmst - die meisten reagieren auch WM_KILLFOCUS.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:34 Uhr.

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