Hallo Leute,
ich entwickle gerade ein Programm eines ehem. Kollegen weiter zu dem ich keinen Kontakt habe.
Es geht darum, dass eine Klasse TZeichenBand (von TComponent abgeleitet) auf einem TBitmap mit Canvas verschiedene Zeichnungen erstellt und diese Zeichnungen dann auf einem TBitmap auf einer Form anzeigt.
Das funktioniert soweit ganz gut. Das Problem ist jetzt aber, dass die Zeichnugen so groß werden, dass TBitmap dafür nicht mehr geeignet ist (Windows kann Bitmaps nur bis zu einer bestimmten Größe erzeugen).
Jetzt habe ich die Bitmaps auf der Form durch Paintboxen ausgetauscht, was auch gut funktioniert hat.
Das eigentliche Problem ist, dass wenn ich das Bitmap in TZeichenBand durch eine PainBox austausche dann bekomme ich die Fehlermeldung :
" " hat kein ein uebergeordnetes Fenster" . Jetzt habe ich hier im Forum gelesen, dass ich meiner Paintbox ein Parent zuordnen muss, was aber leider nichts gebracht hat.
Hat jemand von euch eine Idee wie ich dieses Problem lösen kann? Hier mal der code wo die Fehlermeldung auftritt:
Delphi-Quellcode:
constructor TZeichenBand.create(sender: TComponent);
begin
inherited create(sender);
Bitmap:=TPaintBox.create(nil);
Bitmap.Parent:=frmGraphik; //habe ich versuchsweise mal ausprobiert
width:=50;
height:=800;
with Bitmap.Canvas do begin
CopyMode:=cmWhiteness;
CopyRect(Rect(0,0,Bitmap.Width,Bitmap.Height),Bitmap.canvas,rect(0,0,Bitmap.Width,BItmap.Height));
CopyMode:=cmSrcCopy; //hier tritt der Fehler auf
end;
//.....