Autor Beitrag
flieger-michl
Hält's aus hier
Beiträge: 14

W2K, Linux
D5, FPC
BeitragVerfasst: Sa 08.01.11 09:18 
Hallo liebe Entwicklergemeinde,

ich schreibe gerade an einer Barcode gestützten Zeiterfassungssoftware.
Jeder Barcode beginnt mit einer Kennung: M = Mitarbeiter P oder A = Projektnummer K = Kostenart

Nach der Kennung kommt eine beliebige Zeichenkette und CR bzw #13 schließt den aktuellen Barcode ab.

Mein Formular hat u.a. 3 Editfelder Personalnummer, Projektnummer und Kostenart.

Da die Daten des Scanners als Tastatureingaben an das Programm geliefert werden, muß ich also in spezieller Weise auf die Tasteneingaben reagieren.

Dazu hatte ich versucht, die Methode wndproc des Formulares zu überschreiben.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TInputTerminalForm.WndProc(var Msg: TMessage);
begin
 if (Msg.Msg >= WM_KEYFIRST) and
    (Msg.Msg <= WM_KEYLAST) then
 begin
  Memo1.Lines.Add(IntToStr(Msg.Msg));
 end;
 inherited;
end;


Das Problem ist nun, daß nix in Memo1 landet. Kann mir einer verraten, wieso?

Gruß
Michl

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Sa 26.02.11 08:13 
Wenn der Scanner Tastatureingaben schickt, dann müsste er ja automatisch in das Memo schreiben, wenn dieses fokusiert ist. Ist das der Fall?

Außerdem ist Msg.Msg meines wissens nach der Message-Typ, nicht der gesendete Buchstabe.

Edit: Das wäre wohl das richtige:
msdn.microsoft.com/e...76%28v=vs.85%29.aspx

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)


Zuletzt bearbeitet von Xion am Sa 26.02.11 08:22, insgesamt 3-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 26.02.11 08:17 
Weshalb in der WndProc des Formulars nichts ankommt? Weil die Eingabe an das fokussierte Control geschickt werden wie user profile iconXion schon geschrieben hat. Und das wird nicht das Formular sein vermute ich.

Jedenfalls reicht es, wenn du KeyPreview des Formulars auf True setzt. Dann kannst du einfach das OnKeyPress Ereignis des Formulars benutzen. ;-)