Gelöst: Popupmenu wird nicht gezeigt

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
petermännchen
Beiträge: 92
Registriert: So 26. Aug 2007, 20:35
OS, Lazarus, FPC: Win7, Laz 1.2.6, FPC 2.6.4, SVN 33306, ZEOS 7.1.4
CPU-Target: 32Bit
Wohnort: Helmstedt
Kontaktdaten:

Gelöst: Popupmenu wird nicht gezeigt

Beitrag von petermännchen »

Nachdem nun mein Compiler wieder mit mir spricht :D habe ich ein anderes Problem.

Ein Popupmenu wird nicht angezeigt, obwohl der Quelltext abgearbeitet werden müsste.

Mein Formular hat zwei Elemente, welche auf Tastatureingaben reagieren können:
Combobox
Edit

Eingelesen wird ein Barcode (USB-Scanner) welcher wie eine Tastatureingabe wirkt. Ist die Eingabe komplett, dann soll ein Popmenu aufgerufen werden.

Hier der Quellcode:

Code: Alles auswählen

var p : TPoint;
begin
  Edit1.setfocus;
  Edit1.text := Edit1.Text + key;
  key := #0;
  combobox1.Text := combobox1.Items[combobox1.ItemIndex];
  if (length(Edit1.text) = 4)
  then
  begin
    p := mouse.cursorpos;
    PIN := Edit1.Text;
    pmaktionen.popup(screen.width div 2 - 30, screen.height div 2 -50);
    Edit1.Text := '';
    caption := PIN; //[color=#FF0000]Das nur zum Testen, ob die Routine durchlaufen wird[/color]  end;
Das Formular hat als Titel richtig die Eingabe aus dem Scanner. Das Popup erscheint nicht. Ein showmessage übrigens auch nicht?
Wäre schön, wenn ihr mir helfen könnt.

Gruß

Peter
Zuletzt geändert von petermännchen am Sa 11. Dez 2010, 14:22, insgesamt 1-mal geändert.
Zeiterfassung, einfach gerechter!

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Re: Popupmenu wird nicht gezeigt

Beitrag von knight »

Ich halte die Überprüfung auf die Länge für problematisch. Zum einen kann es sein, daß dir der Barcodescanner noch Steuerzeichen (z.B. LF oder CR) hinterherschickt. Zum anderen bist du von der Zeichencodierung abhängig (bei ANSI hat ein Zeichen eine andere Länge als bei UTF8).

knight

petermännchen
Beiträge: 92
Registriert: So 26. Aug 2007, 20:35
OS, Lazarus, FPC: Win7, Laz 1.2.6, FPC 2.6.4, SVN 33306, ZEOS 7.1.4
CPU-Target: 32Bit
Wohnort: Helmstedt
Kontaktdaten:

Re: Popupmenu wird nicht gezeigt

Beitrag von petermännchen »

Hallo Knight,

vielen Dank für deinen Hinweis!
Tatsächlich kommt ein #13 zum Schluß. Nachdem ich jetzt auf dieses Zeichen abfrage funktioniert es.

Falls es interessiert

Code: Alles auswählen

procedure T_FSMain.FormKeyPress(Sender: TObject; var Key: char);
var p : TPoint;
begin
  if key = #13 then
 begin
    p := mouse.cursorpos;
    PIN := copy(Edit1.Text,1,pos(#13,Edit1.Text)-1);
    pmaktionen.popup(p.x, p.y);
    Edit1.Text := '';
  end;
  key := #0;
end;
Gruß

Peter
Zeiterfassung, einfach gerechter!

Antworten