Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#22

AW: Bitmap soll gelegentlich unsichtbar sein

  Alt 29. Jan 2014, 17:27
Warum leitest du nicht einfach eine Klasse von TBitmap ab? Überall wo eine TBitamp erstellt werden soll, erstellst du statt dessen eine TZauberbitmap und fertig.
Delphi-Quellcode:
type
  TZauberbitmap = class(TBitmap)
    procedure Draw(ACanvas : TCanvas; const Rect : TRect); override;
  private
    FInvisible: Boolean;
  public
    property Invisible: Boolean read FInvisible write FInvisible;
  end;

procedure TZauberbitmap.Draw(ACanvas : TCanvas; const Rect : TRect);
begin
  if Invisible then
    Exit;

  inherited;
end;
Alternativ könntest du die Eigenschaft "Invisible" auch in der Ebenen-Klasse implementieren.
TZauberbitmap bekommt ein Property der Klasse Ebene (oder ein Interface) und kann darüber vor dem Zeichnen die Eigenschaft prüfen.
Es genügt dann die Eigenschaft bei der Ebene zu setzen und die Anzeige zu aktualisieren.

Ich gewinne den Eindruck das in deinem Projekt ein grundsätzliches Problem in der Trennung von Daten, Funktion und Oberfläche liegt.
Auch wenn sich einzelne Probleme umgehen lassen, wird das Ganze immer nur noch komplizierter.
Deine Versuche das nur an der Oberfläche zu lösen sind vermutlich langfristig zum scheitern verurteilt.
  Mit Zitat antworten Zitat