AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Auf TPaintBox schreiben / Tasten abfangen

Auf TPaintBox schreiben / Tasten abfangen

Ein Thema von Root2k · begonnen am 14. Mär 2012 · letzter Beitrag vom 23. Mär 2012
Antwort Antwort
Root2k

Registriert seit: 7. Jun 2011
Ort: Ulm
49 Beiträge
 
Delphi XE Enterprise
 
#1

Auf TPaintBox schreiben / Tasten abfangen

  Alt 14. Mär 2012, 08:42
Hallo,

ich würde gerne die Tastatureingaben (Buchstaben und Zahlen) des Anwenders auf die Zeichenfläche (Canvas) einer TPaintBox schreiben.
Leider besitzt eine PaintBox kein Ereignis "OnKeyDown" oder dergleichen. Nun weiß ich nicht, wie ich die Tasten abfangen kann.

Über ein TApplicationEvents-Objekt weiß ich leider nicht wie das funktionieren könnte. Egal welche Taste ich drücke, bekomme ich immer die Message "256" und "258".

Diverse Suchmaschinen konnten mir bei dem Problem leider nicht weiterhelfen. Ich hoffe jedoch, dass das einer von euch kann.

Bin für jeden hilfreichen Vorschlag dankbar.
  Mit Zitat antworten Zitat
Benutzerbild von pustekuchen
pustekuchen

Registriert seit: 27. Aug 2010
265 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Auf TPaintBox schreiben / Tasten abfangen

  Alt 14. Mär 2012, 09:02
Versuchs mit dem Parent der TPaintBox. Wenn es TForm ist, besitzt es ein OnKeyDown Event.

Delphi-Quellcode:
if APaintBox.Parent is TForm then
    (APaintBox.Parent as TForm).OnKeyDown := APaintBoxKeyDown;
EDIT: Obwohl das klappt glaub ich auch nicht, da die Form ja kein OnKeyDown Event auslöst :\
Delphi programming is awesome.

Geändert von pustekuchen (14. Mär 2012 um 09:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Auf TPaintBox schreiben / Tasten abfangen

  Alt 14. Mär 2012, 09:07
Ich habe mal einen Rumpf angehängt, das weitere überlasse ich Dir ....

Auf ein Panel legen, Panel mit OnKeyPress erweitern/versorgen ....
Angehängte Dateien
Dateityp: zip Rumpf_Ansatz.zip (84,0 KB, 13x aufgerufen)
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Auf TPaintBox schreiben / Tasten abfangen

  Alt 14. Mär 2012, 09:23
ich würde gerne die Tastatureingaben (Buchstaben und Zahlen) des Anwenders auf die Zeichenfläche (Canvas) einer TPaintBox schreiben
Man kann das machen aber eigentlich ist das eine blöde Idee™ weil eine Paintbox nicht zum Anzeigen von Tasteneingaben konstruiert wurde.
Was willst du eigentlich erreichen?
Kannst du es erklären ohne dich auf bestimmte Delphi Komponenten festzulegen?
  Mit Zitat antworten Zitat
Root2k

Registriert seit: 7. Jun 2011
Ort: Ulm
49 Beiträge
 
Delphi XE Enterprise
 
#5

AW: Auf TPaintBox schreiben / Tasten abfangen

  Alt 14. Mär 2012, 09:54
Erstmal danke für alle Antworten!

Den Code von Bummi werde ich mir gleich mal anschauen.

@sx2008:
Ich schreibe momentan ein kleines Zeichenprogramm, bei dem eben auch die Möglichkeit bestehen soll auf die Zeichenfläche zu schreiben. Das Zeichenprogramm verwendet als Hauptkomponente eine PaintBox, bzw. meine eigene Abwandlung davon (neue Komponente / Vererbung).
Ich habe auch schon einmal ein kleines Zeichenprogramm geschrieben, bei dem ich ein TImage32-Objekt verwendet habe. Aber da stoße ich dann auf ganz andere Probleme (u.A. Flackern).
Ich würde die PaintBox also auch gerne beibehalten.

Geändert von Root2k (14. Mär 2012 um 10:00 Uhr)
  Mit Zitat antworten Zitat
Root2k

Registriert seit: 7. Jun 2011
Ort: Ulm
49 Beiträge
 
Delphi XE Enterprise
 
#6

AW: Auf TPaintBox schreiben / Tasten abfangen

  Alt 14. Mär 2012, 10:33
@Bummi:
Danke für den Code. So werde ich es vermutlich machen.

Da ich aber eine eigene Komponente entworfen habe (abgeleitet von PaintBox) muss ich über die Form/EXE das Handling stuern. Am liebsten wäre es mir aber, wenn ich die Logik direkt in der Komponente verankern könnte. Dann funktioniert das mit dem Panel wohl nicht (meiner Meinung nach), oder kann ich das irgendwie mit in die Komponente einbauen?

--
Edit:
Sorry übrigens für den doppelten Eintrag. Hätte eigentlich den letzten Eintrag editieren sollen.

Geändert von Root2k (14. Mär 2012 um 10:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: Auf TPaintBox schreiben / Tasten abfangen

  Alt 14. Mär 2012, 12:37
ein bisschen tricksen in der Komponente kannst Du schon
Delphi-Quellcode:
procedure TMyKomp.MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
    if not Assigned(FPanel) then
      begin
       FPanel := TPanel.Create(self);
       FPanel.OnKeyPress := MyOnKeyPress;
       FPanel.Width := 0;
       FPanel.Height := 0;
       FPanel.parent := Parent;
      end;
    FPanel.SetFocus;
    Fx := X;
    Fy := Y;
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Root2k

Registriert seit: 7. Jun 2011
Ort: Ulm
49 Beiträge
 
Delphi XE Enterprise
 
#8

AW: Auf TPaintBox schreiben / Tasten abfangen

  Alt 14. Mär 2012, 12:55
Hm, nicht schlecht. Könnte klappen

Danke dir!!

--

Edit:
Funktioniert wunderbar.
Danke für die Hilfe!

*closed*

Geändert von Root2k (14. Mär 2012 um 13:03 Uhr)
  Mit Zitat antworten Zitat
mz23
(Gast)

n/a Beiträge
 
#9

AW: Auf TPaintBox schreiben / Tasten abfangen

  Alt 23. Mär 2012, 05:43
Ich habe mal einen Rumpf angehängt, das weitere überlasse ich Dir ....

Auf ein Panel legen, Panel mit OnKeyPress erweitern/versorgen ....
Das löst auch eines meiner vielen Probleme
Danke Bummi!

Schöne Grüße aus Nürnberg,
Manfred
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:26 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