Bei meinem Edit piept es

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
Hercules
Beiträge: 104
Registriert: Mi 2. Jun 2010, 17:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Bei meinem Edit piept es

Beitrag von Hercules »

Hallo Lazaruser,
ich habe in meiner Lazarus-Anwendung mehrere Edit-Komponenten.
Als Ereignis habe ich in der Edit-Komponente 'OnKeyDown' gewählt.
Immer wenn ich eine Eingabe mit der Enter-Taste abschließe,
dann kommt der in Windows eingestellte Standard-Warnton.
Das kann ganz schön nerven.
Kann mir jemand sagen, wie man den weg bekommt ?

Allen ein schönes Wochenende,
Hercules

shokwave
Beiträge: 471
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Bei meinem Edit piept es

Beitrag von shokwave »

Hallo,

nach ein bisschen googlen hab ich das hier gefunden:

Code: Alles auswählen

uses ...., LCLType, windows;
 
...
 
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  mgsTemp: TMsg;
begin
  if Key = VK_RETURN then
  begin
    PeekMessage(mgsTemp, 0, WM_CHAR, WM_CHAR, PM_REMOVE);
  end;
end;


Bei meinem Win7 funktioniert das.

Dir auch ein schönes WE.
mfg Ingo

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Bei meinem Edit piept es

Beitrag von pluto »

Ich meine, dass es doch unter Windows ein Standard-Verhalten oder ? Oder könnte das etwa ein Bug sein. Davon habe ich schon lange nichts mehr gehört.
MFG
Michael Springwald

shokwave
Beiträge: 471
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Bei meinem Edit piept es

Beitrag von shokwave »

Den Code oben hab ich von hier. Der Artikel ist von 2003 und für Delphi, also gehe ich mal davon aus das das Standard ist. Trotzdem nervt es. :D
mfg Ingo

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Bei meinem Edit piept es

Beitrag von Socke »

Da du die Unit Windows und eine Plattform-abhängige API benutzt, wird dein Programm in der Form nur für Windows kompilierbar sein. Als Lösung wären zwei {$IFDEF Windows} nötig oder man gestaltet das ganze direkt plattformunabhängig:

Code: Alles auswählen

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Key := 0;
end;

Das hab ich selbst nicht getestet, sondern nur aus der Erinnerung abgerufen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Bei meinem Edit piept es

Beitrag von pluto »

Das hab ich selbst nicht getestet, sondern nur aus der Erinnerung abgerufen.

Jetzt wo du es erwähnst: Das ist / war ein Windows Problem und eine Oft gestellte Frage. Ich meine aber auch, dass es so gehen sollte.
Ich meine jedoch auch das es nicht key:=0 war sondern key:=#0 war unter KeyPress. Dürfte aber kein Unterschied machen, wobei ich hier noch auf die Taste prüfen würde:
if key = VK_Return then key:=0;
MFG
Michael Springwald

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Bei meinem Edit piept es

Beitrag von Socke »

pluto hat geschrieben:Ich meine jedoch auch das es nicht key:=0 war sondern key:=#0 war unter KeyPress. Dürfte aber kein Unterschied machen, wobei ich hier noch auf die Taste prüfen würde:
if key = VK_Return then key:=0;

Ich hatte nur shockwaves Quellcode verändert und da war var Key: Word; deklariert; also ging ich von einem Integer-Typ aus.
Die Bedingung hab ich glatt übersehen, sollte aber mit rein (wer weiß, was sonst noch funktioniert).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Re: Bei meinem Edit piept es

Beitrag von felix96 »

Code: Alles auswählen

if key=13 then key:=0;

^^Ungestestet
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Bei meinem Edit piept es

Beitrag von pluto »

warum gleich 13 ? Warum nicht VK_RETURN ? Ist das gleiche, musst nur die Unit lcltype mit einbinden.
MFG
Michael Springwald

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Bei meinem Edit piept es

Beitrag von Socke »

pluto hat geschrieben:warum gleich 13 ? Warum nicht VK_RETURN ? Ist das gleiche, musst nur die Unit lcltype mit einbinden.

Weil es so ist :D. Ob du 13 oder VK_RETURN schreibst, hängt mehr oder weniger nur davon ab, ob du eine Vorliebe für Konstanten (im Gegensatz zu konstanten Werten) hast.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Bei meinem Edit piept es

Beitrag von pluto »

Weil es so ist :D. Ob du 13 oder VK_RETURN schreibst, hängt mehr oder weniger nur davon ab, ob du eine Vorliebe für Konstanten (im Gegensatz zu konstanten Werten) hast.

Genau so habe ich es auch gemeint und auch geschrieben... :roll: oder etwa nicht ?
MFG
Michael Springwald

Hercules
Beiträge: 104
Registriert: Mi 2. Jun 2010, 17:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Bei meinem Edit piept es

Beitrag von Hercules »

Hallo Socke, Pluto, felix und shokwave,
vielen Dank für Eure Tipps. Ich muß mir das jetzt erst mal
auf der Zunge zergehen lassen. Werde Meldung erstatten,
ob ich Erfolg hatte oder nicht.

Hercules
Beiträge: 104
Registriert: Mi 2. Jun 2010, 17:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Bei meinem Edit piept es

Beitrag von Hercules »

Hallo Socke, Pluto, felix und shokwave,
mit
if Key=13 then key:=0;
funktioniert es !!!!
Vielen Dank an Euch alle. :D

Antworten