AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Komponente schreiben, die Wenn ESC gedrückt wird eine proc.
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente schreiben, die Wenn ESC gedrückt wird eine proc.

Ein Thema von Christian18 · begonnen am 4. Jul 2006 · letzter Beitrag vom 4. Jul 2006
Antwort Antwort
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Komponente schreiben, die Wenn ESC gedrückt wird eine proc.

  Alt 4. Jul 2006, 09:57
Hallo,

ich bin gerade dabei eine Komponente zu schreiben mit der ich folgendes machen kann:

- Wenn man diese Komponente auf die Form setzt, dann soll man bei den Ereignissen folgende einstell möglichkeiten haben:

ESC, Enter, Einfg, Entf.

- Wenn die Komponente auf der Fprm ist, dann soll wenn die ESC Taste gedrückt wird die Procedure ausgeführt werden, wie übergeben wird.

Wie kann ich das machen???

Ich habe schon mal gegonnen. Mein Code sieht jetzt so aus:

Delphi-Quellcode:
unit KeyDown;

interface

uses
  SysUtils, Classes, Forms;

type TEinfg = procedure (Sender: TObject) of object;
type TEnter = procedure (Sender: TObject) of object;
type TEntf = procedure (Sender: TObject) of object;
type TESC = procedure (Sender: TObject) of object;

type
  TKeyDown = class(TApplication)
  private
    FEinfg : TEinfg;
    FEnter : TEnter;
    FEntf : TEntf;
    FESC : TESC;
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
  published
    property Einfg : TEinfg Read FEinfg Write FEinfg;
    property Enter : TEnter Read FEnter Write FEnter;
    property Entf : TEntf Read FEntf Write FEntf;
    property ESC : TESC Read FESC Write FESC;
    { Published-Deklarationen }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Standard', [TKeyDown]);
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
885 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Komponente schreiben, die Wenn ESC gedrückt wird eine pr

  Alt 4. Jul 2006, 10:04
Ich will ja deinen Enthusiasmus für dein Projekt nicht schmälern, aber wozu brauche ich so eine Komponente, wenn ich einfach das OnkeyDown oder OnKeyPress-Event des Formulars dafür nehmen kann? Gut, ich muss dann natürlich KeyPreview auf True stellen, aber sonst...

Oder habe ich dein Vorhaben falsch verstanden?
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: Komponente schreiben, die Wenn ESC gedrückt wird eine pr

  Alt 4. Jul 2006, 10:12
Hallo,
  • verwende für Deine Events doch den Typ TNotifyEvent, der ist schon definiert.
  • Deine Komponente wird sicher nicht von TApplication abgeleitet, sondern von TComponent.
  • Du musst die Nachrichtenbehandlungsmethode des Forms durch eine eigene ersetzen, Dir die entsprechenden Nachrichten raussuchen und darauf reagieren. Nicht vergessen: Die Original-Methode in Deiner neuen am Ende aufrufen und beim Zerstören des Objekts diese wiederherstellen.

Gruß
xaromz
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#4

Re: Komponente schreiben, die Wenn ESC gedrückt wird eine pr

  Alt 4. Jul 2006, 11:05
Hallo,

der Sinn dieser Komponente ist Quellcode einsparung. Also ich finde es übersichtlicher, wenn ich eine Komponente auf meiner Form habe, als wenn ich bei jeder Form OnKeyDown selber schreiben muss.

MFG Christian18
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Komponente schreiben, die Wenn ESC gedrückt wird eine pr

  Alt 4. Jul 2006, 12:20
Zitat von Christian18:
Hallo,

der Sinn dieser Komponente ist Quellcode einsparung. Also ich finde es übersichtlicher, wenn ich eine Komponente auf meiner Form habe, als wenn ich bei jeder Form OnKeyDown selber schreiben muss.

MFG Christian18
Ich habe da einen anderen Standpunkt:
ich verwende so wenig wie möglich Komponenten.
Sonst muss ich mir merken, diese Kompo macht jenes, eine andere Kompo fängt dieses ereignis ab, usw.
Wenn ich alles mit den Standard-Methoden mache, habe ich vollen Einblick, was passiert.
Und vor allem klappt das mit dem Debuggen besser.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#6

Re: Komponente schreiben, die Wenn ESC gedrückt wird eine pr

  Alt 4. Jul 2006, 13:51
Naja,

vieleicht habt ihr recht aber wie kann ich mein porblem trotzdem lösen???
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: Komponente schreiben, die Wenn ESC gedrückt wird eine pr

  Alt 4. Jul 2006, 13:55
Hallo,
Zitat von Christian18:
Naja,

vieleicht habt ihr recht aber wie kann ich mein porblem trotzdem lösen???
hast Du Dir meinen Beitrag schon durchgelesen?

Gruß
xaromz
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#8

Re: Komponente schreiben, die Wenn ESC gedrückt wird eine pr

  Alt 4. Jul 2006, 14:14
Ja habe ich schon,

aber irgendwie verstehe ich das nicht so ganz. Hast du ein kleines Bsp. dafür???
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Komponente schreiben, die Wenn ESC gedrückt wird eine pr

  Alt 4. Jul 2006, 14:20
die einfachste Variante ist wohl in dein Private ein TApplicationEvents zu packen, dort das OnMessage auszuwerten (ob die Message KeyDown war und ob es sich um die gewünschten Tasten handelt) und dein Ereignis auslösen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:55 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