Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
Delphi 12 Athens
|
AW: Farbe zur Laufzeit verändern?
3. Jun 2014, 09:42
Ich weiß zwar nicht so genau, was Du mit "gewölbt" meinst, aber prinzipiell könntest Du so etwas versuchen:
Delphi-Quellcode:
type
TPanel = class(ExtCtrls.TPanel)
private
(* privates Feld hinzufügen *)
FLeftValue: integer;
(* Setter-Methode *)
procedure SetLeftValue(const Value: integer);
protected
(* Paint-Methode überschreiben *)
procedure Paint; override;
public
(* Property hinzufügen für den Zugriff von außen *)
property LeftValue: integer read FLeftValue write SetLeftValue;
end;
TfrmTest = class(TForm)
TestPanel: TPanel;
btnUpdate: TButton;
procedure btnUpdateClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
...
procedure TPanel.Paint;
begin
inherited;
Canvas.Brush.Color := clBlue;
Canvas.FillRect(Rect(0, 0, FLeftValue, Height));
Canvas.Brush.Color := clYellow;
Canvas.FillRect(Rect(FLeftValue, 0, Width, Height));
end;
procedure TPanel.SetLeftValue(const Value: integer);
begin
if FLeftValue <> Value then
begin
FLeftValue := Value;
Invalidate;
end;
end;
procedure TfrmTest.btnUpdateClick(Sender: TObject);
begin
TestPanel.LeftValue := TestPanel.LeftValue + 10;
end;
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|