Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   <ENTER>-Taste für programminterne Befehle nutzen (https://www.delphipraxis.net/204217-enter-taste-fuer-programminterne-befehle-nutzen.html)

Sel2012 7. Mai 2020 17:00

<ENTER>-Taste für programminterne Befehle nutzen
 
Hallo,
wahrscheinlich trivial, aber für mich nicht zu finden:

Ich würde gern anstatt auf einen Programm-Button zu drücken, den Steuerwert z. B. der <ENTER>-Taste abfragen und damit intern eine procedure auslösen.
Vielen Dank für eine (hilfreiche) Nachricht.

Seli

himitsu 7. Mai 2020 17:07

AW: <ENTER>-Taste für programminterne Befehle nutzen
 
Delphi-Quellcode:
// Form.OnKeyDown und Form.KeyPreview=True im Objektinspektor nicht vergessen
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_RETURN then begin
    // mach was

    Key := 0; // du hast ja schon was gemacht, also die Standardbehandlung nun verhindern
  end;
end;
oder

Delphi-Quellcode:
// Edit.OnKeyDown
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_RETURN then begin
    // mach was

    Key := 0;
  end;
end;

Redeemer 7. Mai 2020 21:07

AW: <ENTER>-Taste für programminterne Befehle nutzen
 
Insbesondere falls auf mehreren Forms gewünscht, kann man das auch mit TApplication bzw. TApplicationEvents.Delphi-Referenz durchsuchenOnShortcut machen. Dort setzt man nicht Key auf 0 sondern Handled auf True.

Sel2012 8. Mai 2020 07:11

AW: <ENTER>-Taste für programminterne Befehle nutzen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo und vielen Dank für die Anregungen. Ich vergaß zu erwähnen, dass ich bei XE5 hängen geblieben bin. Vielleicht ist das der Grund, dass mir die Codes fremd sind. Welche zeitgemäße (Buch)-Quelle wäre denn zu empfehlen?
Lieber himitsu, ich habe die procedure einfach in meine Programmseite eingefügt.

die uses habe ich nicht verändert (wüsste auch nicht, wie).

"interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls,Vcl.MPlayer,
MMSystem,Vcl.StdCtrls,Vcl.Imaging.jpeg;"

Die Kopie des Delphi-Quellcodes wird nur einfarbig eingefügt - vielleicht bin ich zu dumm; deshalb siehe Fehler1.jpg:
Nur die Zeile "procedure ..." habe ich eingefügt (siehe Bild) und sofort kommt die Fehlermeldung beim Startversuch.

Beim Einfügen der procedure (Fehler_2.jpg) kommt "der rote Kringel"; also Edit1KeyDown ist nicht brauchbar.
Gibt es eine Abhilfe?

lxo 8. Mai 2020 07:23

AW: <ENTER>-Taste für programminterne Befehle nutzen
 
  1. Die Deklaration im Interface-Teil musst du ohne Angabe der Klasse machen.
    Also "TForm1." weglassen.
  2. Im Implementation-Teil musst du dann deine Klasse vorne angeben in deinem Fall wird es wohl eher "TForm5" sein und nicht TForm1.

Du könntest aber auch einfach die Procedure im Interface-Teil deklarieren und mit "Strg + Shift + C" einen Block im Implementation-Teil generieren.
Wenn du das jedoch einfach so in der .pas-Datei einträgst, wird das noch nicht ausgeführt.
Die/Das Event/s müssen noch zugeordnet werden.

Am einfachsten wäre für dich im dfm-Designer, auf eine TEdit-Komponente oder auf dein TForm klicken und im Objektinspektor auf "Ereignisse" gehen.
Dort kannst du ein Ereignis auswählen mit Doppelklick und alles nötige wird bereits generiert und du musst nur noch deine Logik schreiben.

stifflersmom 8. Mai 2020 07:26

AW: <ENTER>-Taste für programminterne Befehle nutzen
 
Oh je.... Du bist bestimmt noch ziemlich am Anfang.
Erst mal: Deine Form ist Form5, da kann eine eingefügte Prozedur zu Form1 nicht so wirklich passen...

Nimm die beiden Codeblöcke mal wieder raus, anschließend klickst Du doppelt im Objektinspektor unter Eigenschaften auf "OnKeyDown", damit erstellst Du dann die notwendigen Procedurerümpfe und da kannst den Code von Himitsu einfügen.

bcvs 8. Mai 2020 07:39

AW: <ENTER>-Taste für programminterne Befehle nutzen
 
Zitat:

Zitat von Sel2012 (Beitrag 1463972)
Ich vergaß zu erwähnen, dass ich bei XE5 hängen geblieben bin. Vielleicht ist das der Grund, dass mir die Codes fremd sind.

Nö, das gab es schon in Delphi 1 von 1995

Andreas13 8. Mai 2020 08:31

AW: <ENTER>-Taste für programminterne Befehle nutzen
 
Zitat:

Zitat von Sel2012 (Beitrag 1463972)
... Welche zeitgemäße (Buch)-Quelle wäre denn zu empfehlen?

Hallo Sel2012,
Du kannst u.a. folgende Bücher erfolgreich konsultieren:

1): Etwas Neues & Aktuelles:
Wolf-Gert Matthäus: Grundkurs Programmieren mit Delphi: Systematisch programmieren lernen für Einsteiger, (2016)

2): Der Klassiker mit extrem vielen Tipps, Beispielen und fertigen Projekten, die größtenteils auch unter XE5 noch funktionieren:

Walter Doberenz: Borland Delphi 7 - Grundlagen, Profiwissen, Kochbuch. Das umfassende Handbuch für die Win32-Anwendungsentwicklung, m. CD-ROM (2007)
Auch die etwas ältere Auflage in zwei Bänden ist genauso wertvoll.

3): Der umfassendste Ratgeber für XE (in Englisch):
Chris Rolliston: Delphi XE2 Foundations, 2012
Mit unzähligen Insider-Tipps & Informationen und Beispielen. Unschlagbar gut!

4): Auch ziemlich gut und empfehlenswert, aber eher für Fortgeschrittene (in Englisch):
Marco Cantu: Object Pascal Handbook, 2015
Mit unzähligen Insider-Tipps & Informationen und Beispielen. 3): und 4): ergänzen sich z.T. recht gut.

Viel Erfolg!
Gruß, Andreas

Sel2012 16. Jun 2020 07:33

AW: <ENTER>-Taste für programminterne Befehle nutzen
 
Zitat:

Zitat von Andreas13 (Beitrag 1463984)
Zitat:

Zitat von Sel2012 (Beitrag 1463972)
... Welche zeitgemäße (Buch)-Quelle wäre denn zu empfehlen?


Hallo Andreas,
vielen Dank für deine Tipps. Ich habe noch eine kostenlose, gut strukturierte und leicht verständliche
pdf-Anleitung gefunden: http://www.softwareschule.ch/download/delphi_kurs.pdf

Das scheint mir der beste Einstieg zu sein (wenn auch nicht mehr der aktuellste).

Freundliche Grüße
Udo

Andreas13 16. Jun 2020 08:40

AW: <ENTER>-Taste für programminterne Befehle nutzen
 
@Sel2012:
Hallo Udo,
eine wesentlich aktuellere - wenn auch immer noch recht alte - Version (Delphi-Starter) findest Du im Forum Delphi-Treff https://www.delphi-treff.de/downloads/e-book/. Auch das ist eine gute und kostenfreie Einführung in die Delphi-Basics und hat etwa den gleichen Umfang wie Dein "Findling".
Viele Grüße, Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 Uhr.
Seite 1 von 2  1 2      

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