Timage.canvas
Timage.canvas
Beim Aufruf von form1.image1.canvas.brush.color:=clgreen bleibt der Standardwert bsSolid erhalten.
Wie bringe ich den Standardwert weg?
Danke
WeHei
Wie bringe ich den Standardwert weg?
Danke
WeHei
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Timage.canvas
So bekomme ich ein rotes Rechteck.
Man müsste mehr Code sehen, das man bei dir einen Fehler erkenne kann.
So nebenbei kannst du die das form1.xxx sparen, wen es sich in der gleiche Klasse befindet.
Code: Alles auswählen
procedure TForm1.FormPaint(Sender: TObject);
begin
Image1.Canvas.Brush.Color := clRed;
Image1.Canvas.Rectangle(10, 10, 100, 100);
end;
Man müsste mehr Code sehen, das man bei dir einen Fehler erkenne kann.
So nebenbei kannst du die das form1.xxx sparen, wen es sich in der gleiche Klasse befindet.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Timage.canvas
Hallo Mathias, als Anhang der Code
Danke
Danke
- Dateianhänge
-
- Graphik.zip
- (6.08 MiB) 159-mal heruntergeladen
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Timage.canvas
Für das Zeichen von Linien muss man Pen (Stift) nehmen, Brush (Füllfarbe), wird zB. für Rechtecke gebraucht.
Code: Alles auswählen
procedure TForm1.zeichnebild(Sender: TObject);
begin
with form1.image1.canvas do begin
font.color := clred;
textout(20, 20, 'adam');
brush.color := clGreen;
pen.color := clRed;
moveto(40, 40);
lineto(100, 170);
Rectangle(100, 100, 200, 200); // da sieht man Brush und Pen gut.
end;
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Timage.canvas
Das Problem ist teilweise gelöst, ABER , der voreingestellte Wert "bsSolid" ist immer noch aktiv. Deine Programmzeilen bewirken ein farbiges Rechteck auf schwarzem Grund. Ich suche im Eigenschaftsbereich von Timages eine Einstellmöglichkeit.
Danke
Danke
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Timage.canvas
WeHei hat geschrieben:Das Problem ist teilweise gelöst, ABER , der voreingestellte Wert "bsSolid" ist immer noch aktiv. Deine Programmzeilen bewirken ein farbiges Rechteck auf schwarzem Grund. Ich suche im Eigenschaftsbereich von Timages eine Einstellmöglichkeit.
Danke
Was willst du genau machen ?
Willst du, wen du eine neue Images erzeugst, das sie eine andere Farbe als schwarz hat ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Timage.canvas
Du sagst es.
Im Entwurfsmodus ist das Image weiß,
zur Laufzeit wird es schwarz, auf diesem Hintergrund kann man arbeiten, den Hintergrund möchte ich weiß haben.
Danke
Im Entwurfsmodus ist das Image weiß,
zur Laufzeit wird es schwarz, auf diesem Hintergrund kann man arbeiten, den Hintergrund möchte ich weiß haben.
Danke
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Timage.canvas
Im Entwurfsmodus ist das Image weiß,
Wie hast du dies hingekriegt, bei mir hat das Images die gleiche Farbe, wie die darunterliegende Komponente (Form/Panel).
zur Laufzeit wird es schwarz, auf diesem Hintergrund kann man arbeiten, den Hintergrund möchte ich weiß haben.
Bis jetzt habe ich auch nichts schlaueres gefunden, als einfach ein farbiges Rechteck zu zeichnen.
Code: Alles auswählen
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Image1.Width := 400;
Image1.Height := 400;
with Image1.Picture.Bitmap do begin
SetSize(400, 400);
Canvas.Brush.Color := clRed;
Canvas.FillRect(0, 0, Width, Height);
end;
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Timage.canvas
Weiß im Entwufrsmodus war nicht weiß sondern die Farbe des Panels.
Deine farbigen Rechtecke gelingen, aber wenn etwas hineingezeichnet wird, ist alles beim alten.
Das Problem scheint nicht trivial zu sein.
Deine farbigen Rechtecke gelingen, aber wenn etwas hineingezeichnet wird, ist alles beim alten.
Das Problem scheint nicht trivial zu sein.
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Timage.canvas
Kannst du nochmals deinen Code posten, vielleicht sieht man dann mehr.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Timage.canvas
Der Code ist nicht sehr lang, ich suche eine Einstellung, die den Default-Wert schwarz ausschaltet.
- Dateianhänge
-
- Timage.zip
- (6.08 MiB) 132-mal heruntergeladen
Re: Timage.canvas
Du musst natürlich vorher die Fläche des Bitmaps in der gewünschten Hintergrundfarbe füllen:
Code: Alles auswählen
procedure TForm1.zeichne(Sender: TObject);
begin
with Image1.canvas do
begin
Brush.Color := clSilver; // Hintergrundfarbe des Bildes festlegen
FillRect(0, 0, Image1.Width, Image1.Height); // Hintergrund in dieser Farbe füllen
Brush.Color:=clred;
pen.color:=clyellow;
Pen.width:=1;
MoveTo(200,200);
LineTo(500,500);
ellipse(200,100,100,300);
MoveTo(100,300);LineTo(300,300);
Brush.Style := psClear; // Verhindert gelb umrandeten roten Hintergrund des Textes
Pen.Style := psClear;
TextOut(100,400,'Sinus');
end;
end;