AGB  ·  Datenschutz  ·  Impressum  







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

Zeichnen

Ein Thema von delphi-projekt · begonnen am 5. Mär 2009 · letzter Beitrag vom 15. Mai 2009
Antwort Antwort
Seite 1 von 3  1 23      
delphi-projekt
(Gast)

n/a Beiträge
 
#1

Zeichnen

  Alt 5. Mär 2009, 20:20
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#2

Re: Zeichnen

  Alt 5. Mär 2009, 20:23
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
delphi-projekt
(Gast)

n/a Beiträge
 
#3

Re: Zeichnen

  Alt 5. Mär 2009, 20:27
Ähm, ja,

und wie geht das ?
Ich habe was das angeht echt keinen Plan, ich habe noch nie etwas
mit zeichnen gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#4

Re: Zeichnen

  Alt 5. Mär 2009, 20:31
üder das Delphi-Referenz durchsuchenCanvas der Komponente worauf zu zeichnen willst
und dann darin z.B. Delphi-Referenz durchsuchenCanvas.MoveTo und Delphi-Referenz durchsuchenCanvas.LineTo
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
delphi-projekt
(Gast)

n/a Beiträge
 
#5

Re: Zeichnen

  Alt 5. Mär 2009, 20:38
Ich finde einfach nichts dazu,
soll ich außerdem ein TImage nehmen? oder was sonst?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#6

Re: Zeichnen

  Alt 5. Mär 2009, 20:40
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 Hier im Forum suchenCanvas MoveTo


[add]
ok, ich dachte TPanel hätte ein TCanvas
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Zeichnen

  Alt 5. Mär 2009, 22:09
Zitat von himitsu:
im Notfall ginge auch ein TPanel ... sehr viele Komponenten bieten ein Canvas an.
An das Canvas eines TPanel kommt man aber nur über die WinAPI!

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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Zeichnen

  Alt 5. Mär 2009, 22:19
Zitat:
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.
Und das gilt für jeden Canvas
Markus Kinzler
  Mit Zitat antworten Zitat
delphi-projekt
(Gast)

n/a Beiträge
 
#9

Re: Zeichnen

  Alt 6. Mär 2009, 20:04
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
  Mit Zitat antworten Zitat
Noedel

Registriert seit: 7. Aug 2008
204 Beiträge
 
Delphi 7 Professional
 
#10

Re: Zeichnen

  Alt 6. Mär 2009, 20:32
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
-"Was studierst du eigentlich? Nerdologie?"
-"Informatik..."
-"Wusst ich´s doch!"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 06:58 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