Timage.canvas

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.

Timage.canvas

Beitragvon WeHei » 15. Nov 2016, 16:57 Timage.canvas

Beim Aufruf von form1.image1.canvas.brush.color:=clgreen bleibt der Standardwert bsSolid erhalten.
Wie bringe ich den Standardwert weg?
Danke
WeHei
WeHei
 
Beiträge: 11
Registriert: 30. Okt 2016, 08:03

Beitragvon Mathias » 15. Nov 2016, 17:28 Re: Timage.canvas

So bekomme ich ein rotes Rechteck.
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 gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4351
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon WeHei » 16. Nov 2016, 13:18 Re: Timage.canvas

Hallo Mathias, als Anhang der Code
Danke
Dateianhänge
Graphik.zip
(6.08 MiB) 21-mal heruntergeladen
WeHei
 
Beiträge: 11
Registriert: 30. Okt 2016, 08:03

Beitragvon Mathias » 16. Nov 2016, 16:47 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 gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4351
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon WeHei » 17. Nov 2016, 11:23 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
WeHei
 
Beiträge: 11
Registriert: 30. Okt 2016, 08:03


Beitragvon Mathias » 17. Nov 2016, 17:35 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 gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4351
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon WeHei » 22. Nov 2016, 15:48 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
WeHei
 
Beiträge: 11
Registriert: 30. Okt 2016, 08:03

Beitragvon Mathias » 22. Nov 2016, 16:49 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 gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4351
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon WeHei » 23. Nov 2016, 11:17 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.
WeHei
 
Beiträge: 11
Registriert: 30. Okt 2016, 08:03

Beitragvon Mathias » 23. Nov 2016, 16:58 Re: Timage.canvas

Kannst du nochmals deinen Code posten, vielleicht sieht man dann mehr.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4351
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon WeHei » 27. Nov 2016, 08:47 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) 14-mal heruntergeladen
WeHei
 
Beiträge: 11
Registriert: 30. Okt 2016, 08:03

Beitragvon wp_xyz » 27. Nov 2016, 10:55 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;
wp_xyz
 
Beiträge: 3007
Registriert: 8. Apr 2011, 08:01

Beitragvon WeHei » 29. Nov 2016, 11:31 Re: Timage.canvas

Danke, es läuft.
WeHei
 
Beiträge: 11
Registriert: 30. Okt 2016, 08:03

• Themenende •

Zurück zu Lazarus - Bugs



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried