So, hab heut mah versucht datt eh bissl umzusetzen mit dem canvas, aber irgenwie will nix so recht.
, sobald ich die Auflösung verändere streiken die Bildchen.
Klappt nich wirklich, sieht sch... aus.(Siehe Bild, nach der auflöungsveränderung wirds im ImageButton weis)
Delphi-Quellcode:
procedure TForm1.AllMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
itag:wideString;
begin
iTag := IntToStr((Sender as TControl).Tag);
//(FindComponent('Image'+(iTag)) as TImage).Picture.Assign(Buttonunten[(Sender as TImage).Tag]);
(FindComponent('Image'+(iTag)) as TImage).Picture:=nil;
ImageList1.Draw((FindComponent('Image'+(iTag)) as TImage).Canvas, 0, 0, 0);
end;
Klappt so halb, durch die auflösungsveränderung wills nich wirklich.(siehe Bild)
Der bereich um den der ImageButton verkleinert wird, wird nur neu gezeichnet beim auslösen des onclick's
und bei diesem Befehl
(FindComponent('Image'+(iTag)) as TImage).Picture.Assign(Buttonunten[(Sender as TImage).Tag]);
sonst nicht. Ich habs in form.create auch mah mit Form1.Canvas.Refres Form1.Refresh;Form1.Repaint; probiert, aber keines der drei will den komischen Rand verschwinden lassen.
Gibt es da einen Befehl?der das Bild nach der Auflöungsveränderung noch einmal neu zeichnet oder so?
Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject);
begin
Form1.Canvas.Draw(0, 0, MainBitmap);
end;