AGB  ·  Datenschutz  ·  Impressum  







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

Taschenrechner über Tastatur bedienen

Offene Frage von "ghost1601"
Ein Thema von Stefan92 · begonnen am 10. Jan 2007 · letzter Beitrag vom 19. Jan 2007
Antwort Antwort
Seite 6 von 6   « Erste     456   
Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#51

Re: Taschenrechner über Tastatur bedienen

  Alt 15. Jan 2007, 07:16
Mal zur erläuterung was deine Methode macht:

Du setzt easterstring auf ''
dann ergänzt du die gedrückte Taste zu deinem String, z.B: 'T'
dann vergleichst du Das erste Zeichen des Strings (es ist ja nur ein Zeichen drin) mit dem String selber, und das ergibt natürlich immer true, also wird die message ausgegeben
Richard Mahr
  Mit Zitat antworten Zitat
Stefan92

Registriert seit: 9. Jan 2007
146 Beiträge
 
Delphi 7 Enterprise
 
#52

Re: Taschenrechner über Tastatur bedienen

  Alt 15. Jan 2007, 18:42
Hm... dann weiss ich nicht, wie ichs richtig machen soll. Ich meine, wenn ichs mit ner If-Abfrage löse, klappts auch nicht:
Code:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
var easterstring:string;
begin
  easterstring:='';
  case key of
    '1' : button1.click;
    '2' : button2.click;
    '3' : button3.click;
    '4' : button4.click;
    '5' : button5.click;
    '6' : button6.click;
    '7' : button7.click;
    '8' : button8.click;
    '9' : button9.click;
    '0' : button10.click;
    ',' : button11.click;
    '.' : button11.click;
    'n' : button12.click;
    chr(13) : button13.click;
    '-' : button14.click;
    '+' : button15.click;
    '*' : button16.click;
    '/' : button17.click;
    chr(8) : button19.click;
    'p' : button20.click;
    'w' : button21.click;
    'q' : button22.click;
    'r' : button23.click;
  else
  begin
    easterstring:=easterstring+key;
    if Copy('test', 1, Length(easterstring))<>easterstring then easterstring:='';
    if easterstring='test' then showmessage('hui');
  end;
  end;
end;
Ich kriegs einfach nicht hin.

Gruß

Stefan
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#53

Re: Taschenrechner über Tastatur bedienen

  Alt 15. Jan 2007, 19:08
Hallo Stefan,

die Variable easterstring mußt du im private Teil des Formulars unterbringen, damit ihr Inhalt mehrere Aufrufe der FormKeyPress-Routine überlebt. Der Löschbefehl zu Beginn der Routine schadet auch nur, oder?

Probiere es einmal so:

Delphi-Quellcode:
type
  TForm1 = class (TForm)
  ...
  private
    easterstring : string;
  end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
const
  MAGICTEXT = 'test';
begin
  case key of
    '1' : button1.click;
    ...
    'r' : button23.click;
  else
    easterstring := easterstring + key;
    if (easterstring <> Copy(MAGICTEXT, 1, Length(easterstring)) then
      easterstring := ''
    else
      if (easterstring = MAGICTEXT) then
        begin
          showmessage('hui');
          easterstring := '';
        end;
  end;
end;
Wenn der MAGICTEXT auch Zeichen enthalten soll, die für die Bedienung der Buttons benötigt werden, dann solltest du die Überprüfung aus dem ELSE-Zweig herausnehmen und hinter die CASE-Anweisung verschieben.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Stefan92

Registriert seit: 9. Jan 2007
146 Beiträge
 
Delphi 7 Enterprise
 
#54

Re: Taschenrechner über Tastatur bedienen

  Alt 16. Jan 2007, 18:57
Ups, nicht zu fassen wie blöd ich manchmal bin . Jetzt kann ich es aber nicht mehr auf den armen Schlauch schieben...
Naja, ich danke dir auf jeden Fall für die Hilfe.

Gruß

Stefan

Edit: Aber nur mal so aus reiner Neugier, wie würde es denn funktionieren, wenn man auf Tasten reagieren will, die gleichzeitig gedrückt werden? Ich meine, dass z.B. wenn man t,e,s und t gleichzeitig drückt, wird eine Messagebox aufgerufen. Oder ist das zu komplex?
  Mit Zitat antworten Zitat
Stefan92

Registriert seit: 9. Jan 2007
146 Beiträge
 
Delphi 7 Enterprise
 
#55

Re: Taschenrechner über Tastatur bedienen

  Alt 19. Jan 2007, 14:34
Da ich immer noch auf Antwort warte, nehme ich mal an, dass ihr diesen Thread vergessen habt.
Hier die noch offene Frage:
Zitat:
Edit: Aber nur mal so aus reiner Neugier, wie würde es denn funktionieren, wenn man auf Tasten reagieren will, die gleichzeitig gedrückt werden? Ich meine, dass z.B. wenn man t,e,s und t gleichzeitig drückt, wird eine Messagebox aufgerufen. Oder ist das zu komplex?
Ich verwende daher absichtlich nicht die Editfunktion, um den Thread in die aktuelle Themenliste zu bringen.
Bitte um Verständnis und baldige Antwort.

Gruß

Stefan
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#56

Re: Taschenrechner über Tastatur bedienen

  Alt 19. Jan 2007, 15:41
Das solltest du dann am Besten mit einem Timer machen und Hier im Forum suchenGetAsyncKeyState benutzen
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Stefan92

Registriert seit: 9. Jan 2007
146 Beiträge
 
Delphi 7 Enterprise
 
#57

Re: Taschenrechner über Tastatur bedienen

  Alt 19. Jan 2007, 21:08
Ok, vielen Dank, ich werd mich dann mal schlau machen.

Gruß

Stefan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 6   « Erste     456   


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:39 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