Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zeichnen einer farbigen Linie (https://www.delphipraxis.net/102475-zeichnen-einer-farbigen-linie.html)

Panni-Fuchs 29. Okt 2007 17:23


Zeichnen einer farbigen Linie
 
Grüße...
Ich wollte mal fragen wie ich in Delphi eine Linie zeichen kann, diese muss auch in verschiedenen Farben aufgeteilt werden!

Würde mich sehr über einige Tipps freuen schonmal im Vorraus vielen dank!

mkinzler 29. Okt 2007 17:26

Re: Zeichnen einer farbigen Linie
 
Willst du einen Farbverlauf zeichnen oder so was ähnliches?
Entweder du musst die Linie in mehreren abschnitten Zeichen (Linienzug) oder mit transparenter Farbe und dann Farben im Alpha-Image

lbccaleb 29. Okt 2007 17:27

Re: Zeichnen einer farbigen Linie
 
hallo und willkommen in der dp ;-)



linien kannst du folgendermaßen zeichnen:

Delphi-Quellcode:
procedure DrawLine(Index: Integer; Canvas: TCanvas; var Rect: TRect; DrawingHintText: Boolean; DoDraw: Boolean; var
 DefaultDraw: Boolean);

SirThornberry 29. Okt 2007 17:53

Re: Zeichnen einer farbigen Linie
 
oder mit
Delphi-Quellcode:
canvas.moveto(StartPunkt.X, StartPunkt.Y);
canvas.lineto(EndPunkt.X, EndPunkt.Y);

mimi 29. Okt 2007 18:55

Re: Zeichnen einer farbigen Linie
 
aus eigener Intresse habe ich mal was zusammen geschrieben, für dich:
Delphi-Quellcode:
procedure DrawColorLine(aCanvas:TCanvas;x,y,w,h:Integer; colors:array of TColor);
var
  len,aw,ah,i:Integer;
begin
  len:=High(colors); aw:=w div len; ah:=h div len;
  for i:=0 to len do begin
    acanvas.Pen.color:=Colors[i];
    acanvas.MoveTo(x,y);
    acanvas.LineTo(x+aw,y+ah);
    x:=x+aw; y:=y+ah;
  end; // for i:=0
end;

// So kann es verwendet werden
procedure TForm1.Button1Click(Sender: TObject);
begin
  DrawColorLine(Paintbox1.Canvas,10,10,50,10,[clLime, ClRed, clBlue,clBlack,clWhite, clAqua],30);
end;
Die Anzahl der Farben spielt hier eine Rolle, je mehr Farben, desto bunter wird die Line Logischer weise,
Ich war etwas überrascht das es so einfach ist. Was meint ihr ? ich habe einige Tests gemacht, anscheid klappt es so.

mimi 29. Okt 2007 19:10

Re: Zeichnen einer farbigen Linie
 
habe gerade bemerkt das die Funktion ein kleinen BUG hat.

Leider kann man damit keine Vertikalen oder Horizontalen Linen Zeichnen.
Nur Schräge. bzw.
normalerweise
DrawColorLine(Paintbox1.Canvas,10,10,50,10,[clLime, ClRed, clBlue,clBlack,clWhite, clAqua],30);
müsste dieser Aufruf doch eine Horizontale Linen ergeben die 40 Pixel Lang/breit ist, oder nicht ?
wenn ich die erste 50 gegen 45 austausche geht es.... ich vermute ich müsste noch was mit dem Winkel machen richtig ?

Aber wie berechne ich einen Winkel und setzte ihn ein ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 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