Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Rahmen wieder löschen

  Alt 7. Mai 2007, 14:01
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat