Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Zeichnen (https://www.delphipraxis.net/130271-zeichnen.html)

delphi-projekt 6. Mär 2009 20:43

Re: Zeichnen
 
Vielen Dank
und ausgeben tu ich das über image oder?

mkinzler 6. Mär 2009 20:46

Re: Zeichnen
 
Besser eine TPaintBox. Und Zeichenoperationen nur in der Paint-Methode durchführen, da der Canvas sonst beim Redraw überschrieben wird

delphi-projekt 6. Mär 2009 20:55

Re: Zeichnen
 
Ich hab das jetzt so geschrieben
Delphi-Quellcode:
image1.Canvas.Linieto(X+LinieHorizontal,Y+LinieVertikal);
wie mach ich das mit einer Painbox?

und es ist noch folgender Fehler aufgetreten damit meint er die -5

[Fehler] uWinIOTest.pas(454): E1012 Konstantenausdruck verletzt untere Grenzen

MfG Delphi-Projekt

[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]

delphi-projekt 6. Mär 2009 21:04

Re: Zeichnen
 
Ich hab euch mal meinen Quelltext reingestellt. Eine Sache ist noch wenn "W" gedrückt wird soll er eine Line nach oben malen. Wenn "A" gedrückt wird soll er eine Line nach links malen.Wenn "S" gedrückt wird soll er eine Line nach unten malen. Wenn "D" gedrückt wird soll er eine Line nach rechts malen. Und er soll nur solange die line malen bis ich von der Taste runter bin.

Delphi-Quellcode:
 if GetAsyncKeyState(ord('W'))<0
     then
       begin
         cbData1.checked:=false;
         cbStrobe.checked:=false;
         LinieHorizontal:=0;
         LinieVertikal:=-5;
       end
     else
       begin
         cbData1.checked:=true;

     end;

   if GetAsyncKeyState(ord('D'))<0
     then
       begin
         cbData5.checked:=false;
         cbStrobe.checked:=false;
         LinieHorizontal:=5;
         LinieVertikal:=0;
       end
     else
       begin
         cbData5.checked:=true;

     end;

        if GetAsyncKeyState(ord('A'))<0
     then
       begin
         cbData7.checked:=false;
         cbStrobe.checked:=false;
         LinieHorizontal:=-5;
         LinieVertikal:=0;
       end
     else
       begin
         cbData7.checked:=true;
     end;
     Paintbox1.Canvas.LineTo(X+LinieHorizontal,Y+LinieVertikal);

end;
[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]

mkinzler 6. Mär 2009 21:05

Re: Zeichnen
 
Wie gesagt Zeichnen nur in der dafür zuständigen Methode

delphi-projekt 6. Mär 2009 21:23

Re: Zeichnen
 
Wenn ich jetzt einen Timer erstelle. Und ich einen doppelclick auf den Timer mache.
Was schreib ich denn da in die Procedure rein?

mkinzler 6. Mär 2009 21:26

Re: Zeichnen
 
Den Code, den du jeweils bei Ablauf des Intervalls ausführen willst

Noedel 6. Mär 2009 21:33

Re: Zeichnen
 
also die abfrage, welcher key grade aktuell ist und der code s.o.das wärs auch schon

mkinzler 6. Mär 2009 21:40

Re: Zeichnen
 
Die Berechnung der Position ja, das Zeichnen aber nicht.

delphi-projekt 6. Mär 2009 21:59

Re: Zeichnen
 
Scheiße das klappt nicht so wie ich mir das vorstelle.
Geht das überhaupt, wenn ich "D" drücke das der dann langsam eine line zieht und wenn ich
von "D" los lasse das er dann automatisch aufhört die line zu zeichnen.

Ich hab echt keine Ahnung mehr wie ich weiter machen soll.

Muss ich so was wirklich in einem Timer machen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr.
Seite 2 von 3     12 3      

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