Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#18

Re: Benötige Hilfe beim Entwickeln einer Komponente

  Alt 30. Aug 2007, 06:09
Moin Torud,
nichts leichter als das. Verpasse dem Property eine Setter-Methode und lasse beim Setzen das Control neu zeichnen.
Delphi-Quellcode:
type
  TmyPanel = class(TCustomControl)
  private
    FBgColorFrom : TColor;
    FBgColorTo : TColor;
    procedure SetBgColorFrom(Value : TColor);
    procedure SetBgColorTo(Value : TColor);
  published
    property BgColorFrom : TColor read FBgColorFrom write SetBgColorFrom;
    property BgColorTo : TColor read FBgColorTo write SetBgColorTo;
  end;

procedure TmyPanel.SetBgColorFrom(Value : TColor); // Settermethode
begin
  If Value = FBgColorFrom then Exit; // wenn gleiche Farbe nichts tun
  FBgColorFrom := Value; // Farbe abspeichern
  Invalidate; // Control neu zeichnen
end;

procedure TmyPanel.SetBgColorTo(Value : TColor);
begin
  If Value = FBgColorTo then Exit;
  FBgColorFrom := Value;
  Invalidate;
end;
Praktisch heisst das jetzt, immer wenn du dein Property BgColorFrom veränderst, wird nicht direkt in FBgColorFrom geschrieben, sondern die Settermethode SetBgColorFrom aufgerufen und der neue Farbwert übergeben. Das läuft übrigens automatisch.
Sind die Farben unterschiedlich, so wird FBgColorFrom gesetzt und mit Invalidate das Control veranlasst sich neu zu zeichnen.

Gruß oki
42
  Mit Zitat antworten Zitat