Einzelnen Beitrag anzeigen

Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#3

Re: ListBox Weiterentwicklung

  Alt 28. Mai 2004, 14:06
Hi hier mal mein ausschnitt aus dem Source.Ich habe es versucht mit dem überschreiben der Methode aber irgendwie gehts trotzdem nicht.Könnt ihr mir bitte helfen?
Mfg Alex

Delphi-Quellcode:
unit ColorListBox;

interface

uses
  SysUtils, Classes, Controls, StdCtrls, Graphics, Windows, Messages;

type
  MyColorListBox = class(TListBox)
  private
    { Private-Deklarationen }
    FColor : TColor;
    FRect : TRect;
    FIndex : Integer;
    procedure SetColor(Value:TColor);
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    constructor Create(AOwner:TComponent); override;
    destructor destroy; override;

    procedure DrawItem(Index: Integer; Rect: TRect;
                       State: TOwnerDrawState); override;

  published
    { Published-Deklarationen }
    property DrawColor : TColor read FColor write SetColor;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [MyColorListBox]);
end;

{ ColorListBox }

constructor MyColorListBox.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Width := 100;
  Height := 100;
end;

destructor MyColorListBox.destroy;
begin
  inherited Destroy;
end;

procedure MyColorListBox.DrawItem(Index: Integer; Rect: TRect;
  State: TOwnerDrawState);
begin
  inherited;
  FRect := Rect;
  FIndex := Index;
end;

procedure MyColorListBox.SetColor(Value: TColor);
begin
  FColor := Value;
  if ItemIndex = -1 then exit;

  Canvas.Brush.Color := FColor;
  Canvas.FillRect(FRect);
  Canvas.TextOut(FRect.Left,FRect.Top, Items[FIndex]);
end;
  Mit Zitat antworten Zitat