Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Alternativer START über Button oder <ENTER> (https://www.delphipraxis.net/204230-alternativer-start-ueber-button-oder-enter.html)

Sel2012 8. Mai 2020 16:00

Alternativer START über Button oder <ENTER>
 
Hallo,
nachdem "<ENTER>-Taste für programminterne Befehle nutzen" mit engagierter, fundierter und gut nachvollziehbarer Hilfe (Danke, danke!!) gut funktioniert, bleibt noch ein (kleiner?) Schritt:

Ich kann mittels Button-Click eine längeren Routine starten und möchte diese Routine auch mit Klick auf die <ENTER>-Taste der Tastatur starten. (Also irgendwie ein ODER).
Also dieselbe procedure soll über 2 mögliche Klicks unabhängig voneinander zu starten sein.
(Die procedure für den <ENTER>-Tasten-Start läuft, liefert aber nur innerhalb dieser procedure eigene Steuerungsmöglichkeiten).

Entschuldigt bitte die niveaulose Fragestellung, aber ich lese anscheinend immer die falschen Bücher.

Danke, Seli

Redeemer 8. Mai 2020 18:12

AW: Alternativer START über Button oder <ENTER>
 
Du willst wissen, wie du eine Methode aufrufst?

Richtig wäre so:
Delphi-Quellcode:
procedure TForm1.Wuppdi();
begin
  // mach was
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_RETURN then begin
    Wuppdi();
    Key := 0; // du hast ja schon was gemacht, also die Standardbehandlung nun verhindern
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Wuppdi();
end;
Dafür muss man die
Delphi-Quellcode:
procedure Wuppdi();
in der Klasse
Delphi-Quellcode:
TForm1
im
Delphi-Quellcode:
interface
-Teil deklarieren, dazu macht man Rechtsklick auf die Methode und "Klasse vervollständigen".

Wer nicht gerne selber Methoden anlegt, für den gibt es noch die naive Herangehensweise:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_RETURN then begin
    Button1Click(Sender);
    Key := 0; // du hast ja schon was gemacht, also die Standardbehandlung nun verhindern
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // mach was
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz