Moin, ich hab ein total nerviges Problem und komme nicht auf die Lösung.
Ich schreibe grade an einer kleinen Turnierverwaltung rum, man soll sich Turniere
erstellen können, von denen dann ein Spielplan als Image erstellt wird.
Wenn ich jedoch die Form resize, dann verändert sich die Größe des Bildes nicht,
obwohl ich entsprechenden Code ins onResize Event der Form geschrieben habe.
Zum Zeichnen verwende ich ein TImage, das auf einem Panel liegt.
Das Panel ist doublebuffered, da es sonst flackert.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| var Form1: TForm1; AktivesTurnier:TTurnier; AktivesBild:TImage; procedure TForm1.FormCreate(Sender: TObject); begin Panel2.DoubleBuffered:=true; AktivesBild:=TImage.Create(Panel2); AktivesBild.Parent:=Panel2; end;
procedure TForm1.FormResize(Sender: TObject); begin if AktivesTurnier<>nil then AktivesTurnier.Zeichnen(AktivesBild); end;
procedure TKoEinzel.Zeichnen(Bild:TImage); begin Bild.Top:=0; Bild.Left:=0; Bild.Height:=Bild.Parent.Height; Bild.Width:=Bild.Parent.Width; Bild.Canvas.Pen.Color:=clBlack; Bild.Canvas.Brush.Color:=clWindow; Bild.Canvas.Rectangle(Rect(0,0,Bild.Width,Bild.Height)); Bild.Canvas.MoveTo(0,0); Bild.Canvas.LineTo(Bild.Width,Bild.Height); Bild.Canvas.MoveTo(0,Bild.Height); Bild.Canvas.LineTo(Bild.Width,0); end; |
Resultat:
Wie man sehen kann, verändert sich die Größe des Bildes nicht.
Die diagonalen Linien jedoch wissen anscheinend sehr genau, wo die Ecken sein müssten.
Woran kann es liegen ?