Folgende Situation: Dargestellt werden zwei Images neben einander. Der Benutzer soll nun per KLick auswählen köbnnen, mit welche er arbeiten will. Damit man sieht, welches Image das aktuelle ist, soll ein Rahmen um das Image gezeichnet werden. Und dieser soll natürlich auch wieder verschwinden, wenn man das andere Image auswählt. Bisher sieht mein Code so aus:
Delphi-Quellcode:
procedure TfrmMain.PageClick(Sender: TObject);
begin
FotoBook.CurrentPage := TImageEnVect(Sender);
FotoBook.DrawBorder;
end;
CurrentPage ist die Seite, die gerade angeklickt wurde.
Delphi-Quellcode:
procedure TFotoBook.DrawBorder;
begin
// erst Rahmen entfernen
if Assigned(LeftPage) then
begin
with LeftPage do
begin
IEBitmap.Canvas.Pen.Width := 3;
IEBitmap.Canvas.Pen.Mode := pmNotXor;
IEBitmap.Canvas.Pen.Style := psSolid;
IEBitmap.Canvas.Pen.Color := clBlue;
IEBitmap.Canvas.Rectangle(0, 0, Width, Height);
end;
end;
if Assigned(Rightpage) then
begin
with RightPage do
begin
IEBitmap.Canvas.Pen.Width := 3;
IEBitmap.Canvas.pen.Mode := pmNotXor;
IEBitmap.Canvas.Pen.Style := psSolid;
IEBitmap.Canvas.Pen.Color := clBlue;
IEBitmap.Canvas.Rectangle(0, 0, Width, Height);
end;
end;
with CurrentPage do
begin
IEBitmap.Canvas.Pen.Width := 3;
IEBitmap.Canvas.pen.Mode := pmCopy;
IEBitmap.Canvas.Pen.Style := psSolid;
IEBitmap.Canvas.Pen.Color := clBlue;
IEBitmap.Canvas.Rectangle(0, 0, Width, Height);
Update;
end;
end;
Mit dem ersten Teil des Codes, dachte ich, würde ich den Rahmen wieder löschen, aber leider ist das nicht der Fall. Wenn ich auf die andere Seite Klicke, bleibt der Rahmen auf der vorherigen Seite erhalten und wenn ich dann wieder auf die vorherige Seite klicke, "zwinkert" der Rahmen nur mal kurz.
Wichtig: Ich kann den Rahmen nicht mit einer festgelegten Farbe überzeichnen, da der Rahmen eventuell auf einem Bild gezeichnet wird.