AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

<ENTER>-Taste für programminterne Befehle nutzen

Ein Thema von Sel2012 · begonnen am 7. Mai 2020 · letzter Beitrag vom 16. Jun 2020
Antwort Antwort
Seite 1 von 2  1 2      
Sel2012

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

<ENTER>-Taste für programminterne Befehle nutzen

  Alt 7. Mai 2020, 18: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
44.071 Beiträge
 
Delphi 12 Athens
 
#2

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

  Alt 7. Mai 2020, 18: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;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Redeemer

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

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

  Alt 7. Mai 2020, 22: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
103 Beiträge
 
Delphi XE5 Professional
 
#4

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

  Alt 8. Mai 2020, 08: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
288 Beiträge
 
Delphi 12 Athens
 
#5

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

  Alt 8. Mai 2020, 08: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
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

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

  Alt 8. Mai 2020, 08: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
703 Beiträge
 
Delphi 12 Athens
 
#7

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

  Alt 8. Mai 2020, 08: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
719 Beiträge
 
Delphi XE5 Professional
 
#8

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

  Alt 8. Mai 2020, 09: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
Grüße, 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 09:34 Uhr)
  Mit Zitat antworten Zitat
Sel2012

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

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

  Alt 16. Jun 2020, 08:33
... 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
  Mit Zitat antworten Zitat
Andreas13

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

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

  Alt 16. Jun 2020, 09:40
@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
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:13 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