Avatar billede azs Nybegynder
23. december 2000 - 00:47 Der er 13 kommentarer og
1 løsning

TListBox Farve og dum streg

Kan man skifte den farve som kommer når man markere noget i en listbox og kan man få den dumme streg væk ?

Hvis ja hvordan så?

/azs
Avatar billede borrisholt Novice
24. december 2000 - 12:53 #1
Hej azs

Løsningen er at du skal sætter Ownder draw propertyen på en listbox til OwnerDrawedFixed, og så skal du implemtere et ondraw event hvor du for tæller dinlist box hvad der skal ske hvornår ...

På Http://borrisholt.com under VCL Tricks finder du er eksempel på hvordan man gør der. Et mere kompiliceret eksempel på samme teknik finder du under FileIo hvor fra du kan downloade eksemplet ThreadSearch.

Jens B
Avatar billede azs Nybegynder
24. december 2000 - 18:11 #2
jeg tror ikke helt du forstår hvad jeg mener !

det er den windows farve som er når man trykker på noget i en list box !

det vil jeg lave til min egen farve !

også vil jeg havde den strek væk som er rund om den !
Avatar billede borrisholt Novice
26. december 2000 - 15:10 #3
Yep excatly mon ami ... Du tegner blot det selv den farve du vil have ...

jens B
Avatar billede azs Nybegynder
26. december 2000 - 16:08 #4
Det som er på din side - Der er den kun den den streg som skifter farve og ikke det man har trykket på altså !

Kan du måske ikke lave en eks. specielt til mig ?

For jeg forstår ikke lige det helt !
Avatar billede azs Nybegynder
26. december 2000 - 16:09 #5
Du tror vil ikke at den er en icon som jeg vil have i listboxen ?

for det er det ikke !
Avatar billede borrisholt Novice
27. december 2000 - 11:17 #6
azs> Jeg kan godt lave en speciel til dig som laver det du spørget om ... Det kræver dog du venter til efter nytår hvor jeg igen er i nærheden af en Delphi Compiler.

Jens B
Avatar billede azs Nybegynder
27. december 2000 - 13:46 #7
borrisholt > Det må du meget gerne !
Avatar billede borrisholt Novice
28. december 2000 - 16:22 #8
prøv det her :

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
With ( Control As TListBox ).Canvas Do
  Begin
    Case Index Of
      0:
      Begin
        Font.Color  := clBlue;
        Brush.Color := clYellow;
      End;
      1:
      Begin
        Font.Color  := clRed;
        Brush.Color := clLime;
      End;
      2:
      Begin
        Font.Color  := clGreen;
        Brush.Color := clFuchsia;
      End;
    End;
    FillRect(Rect);
    TextOut(Rect.Left, Rect.Top, ( Control As TListBox ).Items[Index]);
  End;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i : Integer;
begin
  randomize;

  for i:= 0 to 50 do
    ListBox1.Items.Add(IntToStr(Random(50000)));
end;

end.


jens B
Avatar billede azs Nybegynder
29. december 2000 - 17:57 #9
borrisholt -> Det virker ikke !

Den laver ikke om på noget når jeg bruger den kode der !

Avatar billede borrisholt Novice
30. december 2000 - 13:02 #10
og du har sat OwnerDrawState på din listbox til OwnerdrawedFixed ?

Jens B
Avatar billede borrisholt Novice
30. december 2000 - 13:11 #11
Hvis du ændere FormCreate til det følgende så virker det :

procedure TForm1.FormCreate(Sender: TObject);
var
  i : Integer;
begin
  randomize;

  for i:= 0 to 50 do
    ListBox1.Items.Add(IntToStr(Random(50000)));
  ListBox1.Style := lbOwnerDrawFixed;
end;


Jens B
Avatar billede azs Nybegynder
11. januar 2001 - 13:29 #12
Kan man ikke lave det sådan at det kun skifter farve på den ting i listboxen som man har makeret ?
Avatar billede borrisholt Novice
11. januar 2001 - 13:31 #13
Jo som sagt du tegner bare den virkelighed du ønsker ....

It\'s ALL up to you mate ...

Jens B
Avatar billede azs Nybegynder
14. januar 2001 - 16:56 #14
borrisholt -> Nu har jeg prøvet mig frem og tilbage men jeg kan ikke få det til at virke sådan at den kun skifter farve når man markere noget i Listbox\'en !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester