AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

<ENTER>-Taste für programminterne Befehle nutzen

Ein Thema von Sel2012 · begonnen am 7. Mai 2020 · letzter Beitrag vom 8. Mai 2020
Antwort Antwort
Sel2012

Registriert seit: 6. Jun 2015
Ort: 31535
102 Beiträge
 
Delphi XE5 Professional
 
#1

<ENTER>-Taste für programminterne Befehle nutzen

  Alt 7. Mai 2020, 17:00
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
35.822 Beiträge
 
Delphi 10.4 Sydney
 
#2

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

  Alt 7. Mai 2020, 17:07
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;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
651 Beiträge
 
Delphi 2009 Professional
 
#3

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

  Alt 7. Mai 2020, 21:07
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.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Sel2012

Registriert seit: 6. Jun 2015
Ort: 31535
102 Beiträge
 
Delphi XE5 Professional
 
#4

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

  Alt 8. Mai 2020, 07:11
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?
Miniaturansicht angehängter Grafiken
fehler_1.jpg   fehler_2.jpg  
  Mit Zitat antworten Zitat
lxo

Registriert seit: 30. Nov 2017
40 Beiträge
 
Delphi 10.3 Rio
 
#5

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

  Alt 8. Mai 2020, 07:23
  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.
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
252 Beiträge
 
Delphi 2006 Professional
 
#6

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

  Alt 8. Mai 2020, 07:26
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.
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
469 Beiträge
 
Delphi 10.3 Rio
 
#7

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

  Alt 8. Mai 2020, 07:39
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
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
184 Beiträge
 
Delphi XE5 Professional
 
#8

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

  Alt 8. Mai 2020, 08:31
... 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
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher.
John C. Cornelius

Geändert von Andreas13 ( 8. Mai 2020 um 08:34 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf