ich will folgendes machen.
Ich will eine Visuelle Komponente schreiben. Dazu hab ich sie von TGraphicControl abgeleitet.
Ich hab dann im überschriebenen Create eine Bitmap erzeugt.
Im überschriebenen Destroy wird sie wieder freigegeben.
Nun will ich folgende Paint-Mehode benutzen.
Code: Alles auswählen
procedure TCEProgressbar.Paint;
begin
if (FBitmap <> Nil) then begin
if (FBitmap.Width <> Width) or (Fbitmap.Height <> Height) then Erstellen;
canvas.Draw(0,0,FBitmap);
end;
end;
Code: Alles auswählen
procedure TCEProgressbar.Erstellen;
begin
if FBitmap <> Nil then begin
Case FStyle of
CpProgressbar : begin
if FBitmap.Height <> Height then FBitmap.Height:=Height;
if FBitmap.Width <> Width then Fbitmap.Width:=Width;
With Fbitmap.Canvas do begin
Pen.Color:=FBoarderColor;
Brush.Color:=clwhite;
ellipse(0,0,width,Height);
end;
end;
Cpgauge : begin
if FBitmap.Height <> Height then FBitmap.Height:=Height;
if FBitmap.Width <> Width then Fbitmap.Width:=Width;
FBitmap.Canvas.TextOut(0,0,'test');
end;
end;
end;
end;
Ich will einen Kreis in die gesammte Bitmap zeichnen(von 0|0 bis Width|Height)
Im paint soll, falls die Abmessungen der Bitmap sich von der der Komponente unterscheiden ein neuer kreis in das Bitmap gezeichnet werden.
Leider klappt es nicht.
Zwar bekomme ich den kreis hin, aber....
am anfang(nach dem aufziehen der Komponente auf die Form), ist das gesammte Bild schwarz, obwohl im Create Erstellen ausgeführt wird(voher wird das Bitmap erstellt).
Wenn ich nun Erstellen ausführe, und danach ein Paint mache, dann hab ich den kreis.
Wenn ich dann die abmessungen der Komponente verändere wird aber nichts neues gemalt, sondern alles wird wieder schwarz.
gruß Flashbanger