AGB  ·  Datenschutz  ·  Impressum  







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

Buchstaben auf Tastendruck ...

Ein Thema von Dunkelbunt27 · begonnen am 19. Feb 2011 · letzter Beitrag vom 19. Feb 2011
Antwort Antwort
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#1

Buchstaben auf Tastendruck ...

  Alt 19. Feb 2011, 15:07
Hallo Delphi-Praxis,

ich möchte auf Tastendruck das Zeichen der gedrückten Taste dem aktuellen Ort meines zweidimensionalen Dynamsichen Arrays zuweisen, eine Spalte weiterrutschen und den Buchstaben an die gewünschte Position zeichnen...

Ich hab mir das so vorgestellt:
Delphi-Quellcode:
procedure ... .FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  buchstabe[PositionSpalte,PositionZeile].Zeichen := char(Key);
  ...
  Spalteweiterrutschen; // funktioniert, muss also nicht gepostet werden
end;
...

procedure buchstaben_zeichnen;
begin
  Paintbox.Canvas.TextOut(PositionSpalte,PositionZeile,buchstabe[PositionSpalte,PositionZeile].zeichen);
end;
Wenn ich also eine Taste drücke, dann rutsche ich eine Zeile weiter, aber zeichne keinen Buchstaben...

Was mache ich falsch?

FG Dunkelbunt

Geändert von Dunkelbunt27 (20. Feb 2011 um 14:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#2

AW: Buchstaben auf Tastendruck ...

  Alt 19. Feb 2011, 15:57
Ist es auch möglich das Ganze außerhalb von OnKeyDown abzufragen...

Weiß niemand einen Vorschlag?

[Edit] Sorry für Doppelpost [/Edit]
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#3

AW: Buchstaben auf Tastendruck ...

  Alt 19. Feb 2011, 16:06
Ja die möglickeit gibt es schon ,aber warum? (GetAsyncKexState z.B.)
Was steht denn in Key drin?
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#4

AW: Buchstaben auf Tastendruck ...

  Alt 19. Feb 2011, 16:09
Es muss nicht unbedingt außerhalb sein, wenn es funktioniert mit OnKeyDown wär ich ja mehr als zufrieden. Was meinst du mit was steht in Key drin? Key müsste doch die gedrückte Taste sein in ASCII oder?
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Buchstaben auf Tastendruck ...

  Alt 19. Feb 2011, 16:10
Ich kann in dem von dir gepostetem Quelltext-Ausschnitt nirgends einen Aufruf deiner Zeichen-Routine sehen...
Des Weiteren sollte man auf eine PaintBox-Canvas nur in dem TPaintBox-Event "OnPaint" zeichnen, nicht in einer x-beliebigen Funktion (wobei man natürlich einzelne Fragmente in andere Methoden auslagern kann, aber die müssen dann eben aus der OnPaint-Routine raus aufgerufen werden), da sonst der Inhalt der PaintBox-Canvas beim nächsten Paint-Aufruf verloren ist. Deshalb also entweder einmalig auf ein Bitmap-Canvas malen und im OnPaint der PaintBox dann das Bitmap auf der Canvas ausgeben, oder im OnPaint-Ereigniss jedes mal alle Buchstaben aufs neue auf der PaintBox-Canvas ausgeben.

Edit: Beim OnKeyPress bekommst du übrigens gleich einen Parameter vom Typ char übergeben. Außerdem solltest du unbedingt die Eigenschaft "KeyPreview" deines Formulars auf true setzen, da es sonst passieren kann, dass das Key-Event nicht an dein Formular "durchgereicht" wird!
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/

Geändert von patti (19. Feb 2011 um 16:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#6

AW: Buchstaben auf Tastendruck ...

  Alt 19. Feb 2011, 16:12
Sorry, mein Fehler, natürlich wird gezeichnet, im OnPaint wird natürlich mein buchstaben_zeichnen ausgeführt.
Ich weiß nur nicht wieso de rzu ezichnende buchstabe dort eventuell nicht ankommt.
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: Buchstaben auf Tastendruck ...

  Alt 19. Feb 2011, 16:19
Rufst du denn auch irgendwo die Routine zum Neuzeichnen der PaintBox auf (z.B. PaintBox.Repaint; )?
Übrigens ist es im Moment so, dass du nur EINEN Buchstaben ausgibst. Wenn die OnPaint-Routine aufgerufen wird, ist die Canvas - vereinfacht ausgedrückt - leer. Wenn du dann nur einen Buchstaben per TextOut ausgibst, dann wirst du auch bloß einen sehen...

Bitte Edit in meinem oberen Post beachten...
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#8

AW: Buchstaben auf Tastendruck ...

  Alt 19. Feb 2011, 16:21
Key Preview ist auf true, es wird neugezeichnet, alles hat ja vorher auch funktionier wie rahmen zeichnen usw.
Gibt es nicht schon einen "Algorithmus" um per Tastendruck die Buchstaben auf einer Paintbox auszugeben?
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#9

AW: Buchstaben auf Tastendruck ...

  Alt 19. Feb 2011, 16:56
Darf ich vielleicht fragen was genau du vorhast, bzw Warum. (Nur Interressehalber)
Und könntest du vielleicht den gesamten (relevanten) Code posten?
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#10

AW: Buchstaben auf Tastendruck ...

  Alt 19. Feb 2011, 19:15
Ich habe nur vor eine taste zu drücken, dann das Zeichen an die dafür vorgesehene Stelle zu zeichnen.
Die Stellenberechnung ist fertig. Ich möchte nur noch wissen, wie man auf Tastendruck genau das Zeichen in den Speciher bekommt, bzw auf eine Variable (in meinem Fall ein Array) legt. Das ausgeben, ist ebenfalls kein Problem.

EDIT:
Hab das Problem gelöst. Man muss nachdem man Key dem richtigen Platz im Array zugewisen hat sofort danach den buchstaben zeichnen. Dann kann man erst weiterrutschen.

Danke für eure Anregungen und Hilfen =)

Geändert von Dunkelbunt27 (20. Feb 2011 um 14:12 Uhr)
  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 14:23 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