Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi TPanel mit Farbverlauf (https://www.delphipraxis.net/127658-tpanel-mit-farbverlauf.html)

draeger1980 16. Jan 2009 19:04


TPanel mit Farbverlauf
 
guten Abent,

ich habe da mal eine kleine Frage gibt es eine möglichkeit einem TPanel einen Farbverlauf zuzuweisen?

Es gibt ja eine Funktion die das über TCanvas macht aber ein TPanel hat keinen Canvas, mit einer Form funktioniert das sehr gut.

hat jemand eine lösung?

Forlan 16. Jan 2009 19:16

Re: TPanel mit Farbverlauf
 
Stichwort: RaizeKomponente ;)

Dort sollte es IMHO die Eigenschaft Farbverlauf geben...

Hawkeye219 16. Jan 2009 19:32

Re: TPanel mit Farbverlauf
 
Hallo,

warum sollte ein Panel keinen Canvas besitzen?

Delphi-Quellcode:
type
  TMyPanel = class (TPanel)
  protected
    procedure Paint; override;
  end;

//procedure TPanel.Paint;
procedure TMyPanel.Paint;
var
  R : TRect;
  i : Integer;
  b : Byte;
begin
  inherited;

  R := ClientRect;
  AdjustClientRect (R);

  for i := R.Left to R.Right - 1 do
    begin
      b := Trunc(255 * (i - R.Left) / (R.Right - 1 - R.Left));
      Canvas.Pen.Color := RGB(0, 144, b);
      Canvas.MoveTo (i, 0);
      Canvas.LineTo (i, Height);
    end;
end;
Gruß Hawkeye

//Edit: Methoden-Header korrigiert, Dank an Sunlight7!

Sunlight7 17. Jan 2009 07:42

Re: TPanel mit Farbverlauf
 
Zitat:

Zitat von Hawkeye219
Delphi-Quellcode:
procedure TPanel.Paint;

Du meinst sicher
Delphi-Quellcode:
procedure TMyPanel.Paint;

Helmi 17. Jan 2009 10:10

Re: TPanel mit Farbverlauf
 
Hallo,

wie wendet man Hawkeyes Code an?

jfheins 17. Jan 2009 10:17

Re: TPanel mit Farbverlauf
 
Entweder leitest du dir eine Komponenten vom Panel ab, z.B. TGradientPanel, die dann einen Farbverlauf zeichnet, oder du klebst den Code mit einem ClassHelper dran ;)

turboPASCAL 17. Jan 2009 10:22

Re: TPanel mit Farbverlauf
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von jfheins
Entweder leitest du dir eine Komponenten vom Panel ab, z.B. TGradientPanel, die dann einen Farbverlauf zeichnet, oder du klebst den Code mit einem ClassHelper dran ;)

So ist es.

Irgend wo in der DP schwirrt die Kompo GPanel noch rum von mir...

draeger1980 17. Jan 2009 19:36

Re: TPanel mit Farbverlauf
 
danke für die Tips muss ich mal ausprobieren

Apollonius 17. Jan 2009 20:06

Re: TPanel mit Farbverlauf
 
Class Helper dürften nicht funktionieren, da man von dort nicht auf virtuelle oder dynamische Methoden Einfluss nehmen kann - das wäre auch technisch kaum zu machen. Außerdem würde man so alle Panels ändern.
Falls man das tun möchte, wäre es am einfachsten, die neue Klasse ebenfalls TPanel zu nennen und entweder oberhalb vom Formular zu deklarieren oder in einer Unit, die am Ende der Uses-Klausel steht. Dann erhält man ohne zusätzliche Komponente das gewünschte Verhalten.

Andreas L. 17. Jan 2009 20:18

Re: TPanel mit Farbverlauf
 
Oder TJvGradient von den Jedis aufs Panel legen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz