![]() |
Re: TClientSocket: Problem bei Eventzuweisung
Könnte dein dazu gezeigtes Beispiel nicht hilfreich sein ? (Variable msg)
|
Re: TClientSocket: Problem bei Eventzuweisung
Die VCL hat doch einen Thread um die Nachrichten zu verarbeiten. Warum hier nicht gleiches versuchen?
|
Re: TClientSocket: Problem bei Eventzuweisung
Irgendwie so vielleicht:
Delphi-Quellcode:
mit
function readkey:char;
var buf:input_record; ret:cardinal; begin result:=#0; GetNumberOfConsoleInputEvents(inputhandle,ret); if ret>0 then begin readconsoleinput(inputhandle,buf,1,ret); if buf.EventType=key_event then begin if buf.Event.KeyEvent.bKeyDown then result:=buf.Event.KeyEvent.AsciiChar; end; end; end; procedure readln(var x:string); var key:char; msg:tmsg; begin x:=''; repeat while peekmessage(msg,0,0,0,PM_remove) do begin translatemessage(msg); dispatchmessage(msg); end; key:=readkey; if key <>#0 then begin write(key); if key<>#13 then x:=x+key; end; until (key=#13); end;
Delphi-Quellcode:
Man muss allerdings noch besser auf die Tasten reagieren. Und ob das die optimale Lösung ist?
inputhandle:=getstdhandle(STD_INPUT_HANDLE); //DWORD
Als alternativen fallen mir (neben der normalen VCL-GUI-Anwendung) noch ein: -nonVCL-GUI -TClient in Thread setzen (wie mütze sagt) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz