auf Canvas zeichnen ist schon das richtige. (MIt Backpuffer arbeiten)
Ich benutzte ganz gerne TGraphicControl das würde dann so aussehen:
Delphi-Quellcode:
unit U_Diagramm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, ExtCtrls;
type
TDiagramm =
class(TGraphicControl)
private
Fbild: TBitmap;
public
procedure paint;
override;
constructor CreateCreate(parent: TWinControl);
reintroduce;
virtual;
destructor destroy;
override;
end;
implementation
constructor TFortschritsAnzeige.Create(parent: TWinControl);
begin
inherited Create(parent );
Fbild := TBitmap.create;
end;
destructor TFortschritsAnzeige.destroy;
begin
Fbild.Free;
inherited;
end;
procedure TFortschritsAnzeige.paint;
begin
inherited;
//zeichen was....................
BitBlt(canvas.handle, 0, 0, Width, height, fbild.canvas.handle, 0, 0, srccopy);
end;
end.
Vorteil ist: Einfach wiederverwendbar(in einer
Unit), Man muss sich um das neuzeichnen(nach minimieren usw) kümmern und man hat noch eigene events.
mfg