![]() |
Zeichnen
Hallo,
wie funktioniert das, wenn ich eine Strecke von Delphi zeichnen lassen möchte. Also, das heißt folgendes: Ich drücke die Taste "W" und Delphi soll eine Linie nach oben zeichnen, drücke ich die Taste "A" soll es die Linie vom letzten Punkt bei W nach Links zeichnen. Was benötige ich nun also alles? Bzw. Hat jemand einen Quelltext? |
Re: Zeichnen
du brauchst eine/mehrere Variable(n) um die Position zu speichern
und dann zeichnest du einfach von dieser Position aus und speicherst die neue Position. |
Re: Zeichnen
Ähm, ja,
und wie geht das :gruebel: ? Ich habe was das angeht echt keinen Plan, ich habe noch nie etwas mit zeichnen gemacht. |
Re: Zeichnen
üder das
![]() und dann darin z.B. ![]() ![]() |
Re: Zeichnen
Ich finde einfach nichts dazu,
soll ich außerdem ein TImage nehmen? oder was sonst? |
Re: Zeichnen
du kannst direkt auf die Form zeichnen (Form1.Canvas)
oder TPaintBox, oder TImage ... im Notfall ginge auch ein TPanel ... sehr viele Komponenten bieten ein Canvas an. oder such einfach mal nach ![]() [add] ok, ich dachte TPanel hätte ein TCanvas :oops: |
Re: Zeichnen
Zitat:
Am besten ist IMO die TPaintbox, da diese speziell für diesen Zweck gedacht ist. Allerdings muss beachtet werden, dass Zeichnungen verschwinden, sobald man mit einem anderen Fenster darüber fährt. Um das zu verhindern muss das Bild im OnPaint-Ereignis dann jedes mal neu gezeichnet werden. Beim TImage muss man sich darum nicht kümmern, weil alle Zeichenvorgänge auf das Bitmap im Speicher (Image.Picture.Bitmap) übertragen werden, und automatisch wieder auf das canvas kopiert werden, wenn teile neu gezeichnet werden müssen. |
Re: Zeichnen
Zitat:
|
Re: Zeichnen
Danke für die Infos,
jetzt ist folgendes Problem aufgetreten: Ich möchte mit Hilfe der Tastatur zeichnen. Das soll wie folgt aussehen. Z.B. so lange wie ich die Taste "A" gedrückt halte, soll er mir einen Strich malen z.B. nach rechts. und wenn ich die Taste "W" gedrückt halte, soll er mir einen strich nach oben malen. Leider habe ich keine Ahnung wie ich das machen soll? Bitte helft mir nochmal |
Re: Zeichnen
mit nem Timer liest du aus, ob eine Taste gedrückt ist (--> getansikeystate), dann malst du mit lineto eine Linie in die gewünschte Richtung.
also sähe dann im pseudocode so aus
Delphi-Quellcode:
Anweisung Zeichnen(Zeichen:Char; JetztX,JetztY:Integer)
Variable LinieVertikal, LinieHorizontal: byte; beginne Wenn zeichen='W' dann Beginne LinieHorizontal:=0; LinieVertikal:=-5; Ende Wenn zeichen='S' dann Beginne LinieHorizontal:=0; LinieVertikal:=5; Ende Wenn zeichen='A' dann Beginne LinieHorizontal:=-5; LinieVertikal:=0; Ende Wenn zeichen='D' dann Beginne LinieHorizontal:=5; LinieVertikal:=0; Ende Bild.Zeichenfläche.LinieZu(JetztX+LinieHorizontal,JetztY+LinieVertikal) Ende |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz