Komponente

Rund um die LCL und andere Komponenten
Antworten
Cool-Tuc
Beiträge: 100
Registriert: Mi 6. Apr 2011, 17:10

Komponente

Beitrag von Cool-Tuc »

BS: Ubuntu
LazPas: Version 1.6.4

Hallo,

ich habe ein Komponente erstellt, ein Frame mit integriertem TLabel + TEdit. Nun möchte ich die Tastatureingaben (die zur Laufzeit im TEdit erfolgen) abfragen/abfange. Nun hat aber das "Frame" schon keine "MouseUp, MouseDown oder MousePress". Gibt es eine Möglichkeit die Tastaturabfragen zur Laufzeit abzufragen?

Udo

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Komponente

Beitrag von MacWomble »

???

Du kannst doch den Focus auf das Edit setzen und einfach tippen - oder?
Die Methoden vom TEdit (nicht der Frame!) kannst du dann verwenden um die Auswertung zu machen.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Cool-Tuc
Beiträge: 100
Registriert: Mi 6. Apr 2011, 17:10

Re: Komponente

Beitrag von Cool-Tuc »

...ich möchte in der IDE z.B. schon einstellen "nur zahlen von 1-5 zulässig" und dieses Verhalten möchte ich dann zur laufzeit abfangen, falls also etwas anderes eingegeben wird...also muss ich eigentlich das Tastatur-Event abfangen, auswerten und an das TEdit weitergeben (und die Zeichen dort darstellen)...

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
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:

Re: Komponente

Beitrag von af0815 »

Ein Frame wird erst auf einen Container fixiert wenn man es braucht. Daher auf zB ein Form zur Laufzeit. Dort gibt es die Events. Das Frame selbst ist ja quasi eine Vorlage. Die Eventbehandlung kannst du schon im Frame machen nur zuweisen geht erst zur Laufzeit.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Cool-Tuc
Beiträge: 100
Registriert: Mi 6. Apr 2011, 17:10

Re: Komponente

Beitrag von Cool-Tuc »

...genau, und diese Zuweisung zur Laufzeit bekomme ich irgendwie nicht hin...

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Komponente

Beitrag von Mathias »

...genau, und diese Zuweisung zur Laufzeit bekomme ich irgendwie nicht hin...

Wieso macht du es nicht auf diese Art ?

Code: Alles auswählen

procedure TFrame1.Edit1KeyPress(Sender: TObject; var Key: char);
begin
  if not (key in ['1'..'5']) then Key:=#0;
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Cool-Tuc
Beiträge: 100
Registriert: Mi 6. Apr 2011, 17:10

Re: Komponente

Beitrag von Cool-Tuc »

..es soll ähnlich funktioniere wie "TLabeledEdit", aber ich möchte an diesem Beispiel einfach das Prinzip verstehen, da es wiederwendbar sein soll. Ich möchte nicht bei jedem Controll dieser Art die selben Routinen ausprogrammieren...

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Komponente

Beitrag von Mathias »

Ich möchte nicht bei jedem Controll dieser Art die selben Routinen ausprogrammieren...

Ich meinte, du brauchst dies nur bei deinem TEdit in der Frame.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
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:

Re: Komponente

Beitrag von af0815 »

Du kannst dir auch das Edit als neue Komponente ableiten und brauchst kein Frame dafür.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten