AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Maus und Tastatur in Delphi ASCII und VK_ -Codes
Tutorial durchsuchen
Ansicht
Themen-Optionen

Maus und Tastatur in Delphi ASCII und VK_ -Codes

Ein Tutorial von karoglan · begonnen am 4. Jan 2010
Antwort Antwort
karoglan
Registriert seit: 23. Mai 2009
Maus und Tastatur in Delphi

(CODES SIEHE UNTEN)

Ereignis
Def.: Ein Ereignis ist ein Mechanismus, der einen Vorgang mit einem Programmtext verknüpft.
Das Ereignis weist einem Vorgang eine festgelegte Handlung zu. Tritt das Ereignis ein wird die Prozedur, die dem Ereignis zugewiesen ist, ausgeführt.
Ereignisse können entweder von Benutzer ausgelöst werden (z.B. OnClick). Diese Ereignisse stehen mit einem Element der Benutzeroberfläche in Zusammenhang. Oder sie können von Programmtext ausgelöst werden (z.B. OnActivate).

Die Prozedur, die die Reaktion auf das Ereignis definiert wird Ereignisbehandlungsroutine genannt. Hier unterscheidet man zwei Möglichkeiten:
Einfache Benachrichtigung
Die Routine regiert darauf, dass ein Ereignis statt gefunden hat. Sie weiß jedoch nur welche Art von Ereignis statt gefunden hat und für welche Komponente es eingetreten ist. (z.B. Klick-Ereignis auf eine Button)
Ereignisspezifische Behandlung
Die Routine stellt nicht nur fest dass ein Ereignis statt gefunden hat, sondern sie bekommt nähere Informationen über das Ereignis. Diese Informationen werden in Form von Variablen übergeben. In der Prozedur kann dann auf diese Werte reagiert werden.
Es ist auch möglich diese Informationen des Ereignis in der Prozedur zu ändern. So ist es z.B. möglich anstatt „a“ immer „1“ auszugeben

Die OnKey-Ereignisse:
Es gibt drei verschiedene Tastatur-Ereignisse:
OnKeyDown (Wenn die Taste(n) runter gedrückt wird/werden)
OnKeyPress (Solange die Taste(n) gedrückt gehalten wird/werden)
OnKeyUp (Wenn die Taste(n) losgelassen wird/werden)
Es gibt jedoch Unterschiede in der Anwendung der Ereignisse:

OnKeyDown und OnKeyUp geben die gedrückten Tasten in Form von „ASCII-Code“ bzw. „Virtuelle Tastencodes“ in der Variablen key aus. Sie unterscheiden nicht zwischen großen und kleinen Buchstaben. In der Variablen „shift“ geben sie an ob die Tasten Alt, Strg oder Shift gedrückt sind.
OnKeyPress gibt die gedrückte Taste in Form eines großen oder kleinen Buchstaben wieder. Es gibt Buchstaben Zahlen und Zeichen wie sie auf der Tastatur abgebildet sind wieder. Tasten wie Alt, Strg, Pfeiltasten, Entf... werden nicht erkannt. Mit # + ASCII-Code Lassen sich Tasten wie Enter(#13) oder Löschen (#8) abfragen.


Um den Wert für eine bestimmte Taste heraus zu finden schreibt man ShowMessage(VarToStr(Key));
In eine OnKey-Prozedur

Die Ereignisse werden von der Schaltfläche empfangen, die den Fokus besitzen. Setzt man die Eigenschaft KeyPreview des Formulars, auf True, empfängt das Formular das Ereignis bevor der fokussierten Schaltfläche.

Beispiel:
OnKeyDown:




Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if key = vk_down then image1.Top:= image1.Top+2;
    if (key = 40) and (Shift = [ssShift]) then image1.Top:= image1.Top+4;
end;
OnKeyPress:
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if key = 'athen Image1.Top:=Image1.Top-2;
    if key = 'Athen Image1.Top:=Image1.Top-4;
end;
Maus:
Wir kennen bisher das Mausereignis OnClick. Es wird jedoch nur aktiviert, wenn der Benutzer auf ein bestimmtes Objekt klickt.
Die Ereignisse OnMouseDown und OnMouseUp werden aktiviert wenn der Benutzer irgendwo auf das Formular klickt. Über die Variablen „X“ und „Y“ wird die Position des Mauszeiger angegeben. Außerdem gibt die Variable „Shift“ an, welche Maustaste betätigt wird, ob es sich um einen Doppelklick handelt und ob Strg, Alt oder Shift gedrückt wird.
OnMouseMove wird ausgeführt, wenn sich die Maus bewegt. Hier wird mit den Variablen X Y und Shift das gleiche angegeben wie bei OnMouseDown.
Delphi-Quellcode:
procedure TForm1.Turtle1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 If Shift=[ssleft] then Turtle1.MoveXY(x,y);
end;
OnMouseWheel, OnMouseWheelUp und OnMouseWheelDown sind Ereignisse die auf Bewegungen des Mausrad reagieren. OnMouseWheel gibt dabei die Bewegungsrichtung durch einen positiven bzw. negativen Wert, der Variablen „WheelDelta“, an.
OnMouseWheelUp und OnMouseWheelDown reagieren nur auf je eine Bewegungsrichtung.



In den untenstehenden Bildern, findet ihr 3 Tabellen für ASCII&VK_ -Codes

MFG
Miniaturansicht angehängter Grafiken
ascii3_836.png   ascii2_202.png   ascii_180.png  
 
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 23:56 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