TEdit Ereignis gesucht

Rund um die LCL und andere Komponenten
knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

TEdit Ereignis gesucht

Beitrag von knight »

Hallo,

ich möchte folgendes erreichen: Der Benutzer gibt Daten in ein Eingabefeld (TEdit) ein. Wenn er die Enter Taste drückt, soll eine Aktion ausgelöst werden. Welches Ereignis von TEdit muß ich dafür verwenden? Ich habe es bereits mit den OnKey... Ereignissen versucht, kenne aber den 'Key' Wert nicht, den ich dafür abfragen muß. Offenbar verwendet Lazarus hier andere Werte als Delphi.

knight

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

uses LCLType;

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if Key = VK_Return then ...;
end;

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Lazarus verwendet dafür keine anderen Werte als Delphi.
In KeyPress bekommst du einen Char dort also #13 in den OnKey**** Ereignissen VK_***** Werte.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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

Beitrag von knight »

Die VK_***** Werte hatte ich schon probiert. Die Folge war ein'unknown...' Fehler. Daher auch meine Vermutung, daß es hier Unterschiede zwischen Delphi und Lazarus gibt

knight

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Was heisst das? Klappt's bei dir jetzt nicht? Was ist ein "unknown" Fehler?

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

Beitrag von knight »

Die Meldung lautet:
Error: Identifier not found "VK_Return"
Soweit ich das verstehe, wird für Key ein LongInt Wert erwartet.

knight

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Vielleicht liest du nochmal die erste Zeile meiner ersten Antwort in diesem Thread durch.... (Seufz)

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

Beitrag von knight »

Da hatte ich wohl Tomaten auf den Augen. :( Ich habe um ehrlich zu sein nicht damit gerechnet, für ein einfaches Element wie TEdit noch eine zusätzliche Unit einbinden zu müssen. Vielen Dank für eure Hilfe.

knight

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6770
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

knight hat geschrieben:Ich habe um ehrlich zu sein nicht damit gerechnet, für ein einfaches Element wie TEdit noch eine zusätzliche Unit einbinden zu müssen.
Nur in der Unit sind die ganzen Definitionen hinterlegt. Ich mache bei unklaren Sachen oft mal eine Suche im Lazarus- / FPC Verzeichnis. Oft sehe ich dann, wo die Definitionen liegen, bzw. wo ich sinnvoll weitersuchen kann.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Wo sind die bei Delphi deklariert ? Möglicherweise sollte man diese Definitionen wirklich mal verschieben.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6770
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

Christian hat geschrieben:Wo sind die bei Delphi deklariert ? Möglicherweise sollte man diese Definitionen wirklich mal verschieben.
Wozu verschieben ? Die passen IMHO. Warum glaubst Du heißt die Unit so.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

In Delphi gibts keine Unit LCLType. Wenn wir Delphi Kompatibilität anstreben müssen die also woanders deklariert sein.

Wird das jetzt wieder sone ich widerspreche Christian wo es nur geht Geschichte um ihn zu ärgern wie mit Ralli ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

shokwave
Beiträge: 475
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

Beitrag von shokwave »

Ich glaub ich hab die Antwort, in der "Windows"-Unit. Damit wird es zur Grundsatzdiskussion: Delphi kompartibel vs. MultiPlattform.

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Nö,

in der windows kann nicht sein. Aber selbst wenn dem so wäre, gibt es immer noch {$IFDEF FPC} LCLTypes, {$ELSE} ... {$ENDIF}. Dann bleibt das bei den einfachen Sachen kompatibel zu Delphi.

{$IFDEF Delphi} ... {$ENDIF} ginge auch, muss aber vorher vielleicht erst definiert werden.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6770
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

Christian hat geschrieben:In Delphi gibts keine Unit LCLType. Wenn wir Delphi Kompatibilität anstreben müssen die also woanders deklariert sein.
Dia absolute Delphi kompatibilität ist ja kein Dogma. Es ist wie bereits festgestellt worden ist, bei Delphi das in der 'Win32 API Interface Unit' aka 'windows' deklariert.

Bei FPC ist es ebenfalls in der windows.pp über ein include auf die defines.inc definiert. Und LCLType bindet bei Windows die Unit 'windows' ein. Zusätzlich finden sich die 'VK_' auch in der LCLType.

Vielleicht ist auch noch folgender Text aus der LCLType erwähnenswert
This unit is being created specifically for compatibility with Delphi. It
should only be used for constants and type definitions that are included in
the Delphi Windows unit. This is only done for compatibiltiy.
Christian hat geschrieben:Wird das jetzt wieder sone ich widerspreche Christian wo es nur geht Geschichte um ihn zu ärgern wie mit Ralli ?
Nein, es ist mir eigentlich egal.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten