AGB  ·  Datenschutz  ·  Impressum  







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

Ton OnKeyPress

Ein Thema von Pseudemys Nelsoni · begonnen am 16. Feb 2003 · letzter Beitrag vom 17. Feb 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Ton OnKeyPress

  Alt 16. Feb 2003, 23:07
moin,

ich habe folgenden befehl bei "OnKeyPress" meines edit feldes:

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
  begin
  if edit1.Text <> 'then
    begin
    memo1.Lines.Add('[' + Nick + '] ' + edit1.text);
    idirc1.Say('#chan', edit1.text);
    edit1.Text := '';
    end;
  end;
end;
funzt auch alles, aber bei jedem enter drücken gibt es einen piepton...woher kommt der und wie schalt ich das ab?

gruss silent
Mario
  Mit Zitat antworten Zitat
Benutzerbild von City Light
City Light

Registriert seit: 17. Sep 2002
314 Beiträge
 
#2
  Alt 17. Feb 2003, 00:03
Delphi-Quellcode:
{mit....}

Key := #0;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
  begin
  if edit1.Text <> 'then
    begin
    memo1.Lines.Add('[' + Nick + '] ' + edit1.text);
    idirc1.Say('#chan', edit1.text);
    edit1.Text := '';
    end;
    Key := #0;
  end;
end;
Bis bald man liest sich
Tino
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3
  Alt 17. Feb 2003, 00:10
danke, funzt super

kannst mir auch noch sagen was #0 genau ist, bzw bewirkt?

gruss silent
Mario
  Mit Zitat antworten Zitat
Benutzerbild von City Light
City Light

Registriert seit: 17. Sep 2002
314 Beiträge
 
#4
  Alt 17. Feb 2003, 00:19
Hallo silent

ASCII-Zeichen = #0
Leider weiß ich das auch nicht so genau in moment ,aber was ich sagen kann ist das Key := #0; eine taste ist nur welche jetzt weiß ich auch nicht


#9 = tabtaste
#13 = entertaste usw.
Bis bald man liest sich
Tino
  Mit Zitat antworten Zitat
Benutzerbild von Robert
Robert

Registriert seit: 4. Jan 2003
36 Beiträge
 
#5
  Alt 17. Feb 2003, 00:23
Nee nee - also der ASCII-Code #0 kann mit keiner Tastenkombination erzeugt werden - den kann man nicht eingeben. Wenn dieser Wert auf Key zugewiesen wird, wird die weitere Abarbeitung dieser Tastatureingabe (in diesem Fall Enter) abgebrochen und gilt als behandelt. Lässt Du ihn auf #13, dann tritt die weitere Abarbeitung ein (versuch's mal mit nem Memo *g*).

Also die Zuweisung bei OnKeyPress auf #0 stoppt die weitere Verarbeitung der Tastatureingabe.

Bei OnKeyDown / -up die Key-Variable (ein Word, kein Char!) auf 0 setzen und die Verarbeitung wird nicht fortgesetzt. Man signalisiert Windows damit, dass man den Code abgefangen hat und verarbeitet hat. "Windows, Du brauchst Dich nich mehr drum zu kümmern!"
Wer hat gesagt, dass Borland NUR ein Begriff für ein Ölfeld sei!?

Ban Visual BASIC 4ever
  Mit Zitat antworten Zitat
Benutzerbild von City Light
City Light

Registriert seit: 17. Sep 2002
314 Beiträge
 
#6
  Alt 17. Feb 2003, 00:29
Danke Robert

für die Vorbildliche Schulung
wieder was dazu gelernt danke
Bis bald man liest sich
Tino
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#7
  Alt 17. Feb 2003, 00:31
ah danke ihr 2

das piepen hat schon auf die dauer genervt

btw: wieso sollte da mehr abgearbeitet werden, sagt das "end;" nicht das ende ist?

gruss silent
Mario
  Mit Zitat antworten Zitat
Benutzerbild von City Light
City Light

Registriert seit: 17. Sep 2002
314 Beiträge
 
#8
  Alt 17. Feb 2003, 00:35
nein ,halte doch mal deine Entertaste auf entlos gedrückt
Bis bald man liest sich
Tino
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#9
  Alt 17. Feb 2003, 03:02
jo leuchtet mir auch irgendwie ein, aber für mich heisst

"if key = #13 then" = "wenn enter gedrückt wird" aber sie wird ja nur 1 mal gedrückt oder?

heh sorry schnall das nicht so ganz, ich kapier nur gerne was ich immer schreibe

danke btw
Mario
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#10
  Alt 17. Feb 2003, 06:26
Hallo Silent!

Mit dem OnKeyPressed-Ereignis erhält Dein Programm die Chance, auf das eingegebene Zeichen zu reagieren, bevor die "normalen" Routinen der Komponente was damit anfangen. Es gibt also quasi eine vordefinierte OnKeyPressed, die auf jeden Fall und nach der benutzerdefinierten Routine bearbeitet wird.
Findet eine tEdit-Komponente ein Return (#13 oder #$0A), dann ist das ein ungültiges Zeichen und wird mit einem Piepser beantwortet.

Nachdem Deine OnKeyPressed-Routine die vor Dir gewünschte Aktion beendet hat, muß natürlich noch irgendwie signalisiert werden, daß das eingegebene Zeichen schon bearbeitet wurde. Dazu dient #0.

Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
  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 11:04 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