/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Farvede linier
Fra : Henning Madsen


Dato : 07-10-02 09:52

Jeg må indrømme at jeg ikke forstår ret meget af dette program , men det
virker.
Problemet er at programmet automatisk køre når det startes op.
Hvordan får jeg det til at køre, når der klikkes på en Button knap ?
Et svar skåret ud i pap vel være dejligt.

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
Var
T,F : Integer;
begin
// Det er forudsat at MultiSelect og ExtendedSelect er sat til False.
If Edit3.Text = '1' Then F := clRed; //Farven på linien.
If Edit3.Text = '5' Then F := clWhite; //Farven på linien.
T := StrToInt(Edit2.Text); //Linienummeret der skal farves.
with ListBox1 do
begin
begin
If (Index = T) Then canvas.brush.Color := (F); //clWhite; //clRed;
end;
canvas.fillrect(rect); //tegn baggrundsfarven
canvas.textout(rect.left, rect.top, items[index]); //skriv teksten
end;
end;
På forhånd tak
----
Med venlig hilsen
Henning Madsen




 
 
Harald (07-10-2002)
Kommentar
Fra : Harald


Dato : 07-10-02 12:34

"Henning Madsen" <henning.k.madsen@teliamail.dk> skrev i en meddelelse
news:3da14c32$0$389$d40e179e@nntp01.dk.telia.net...
> Jeg må indrømme at jeg ikke forstår ret meget af dette program , men det
> virker.
> Problemet er at programmet automatisk køre når det startes op.
> Hvordan får jeg det til at køre, når der klikkes på en Button knap ?
> Et svar skåret ud i pap vel være dejligt.

Først fjerner du henvisningen til ListBox1DrawItem i din Object Inspector,
derefter indtaster du følgende kode til din Button:

ListBox1.OnDrawItem:=ListBox1DrawItem;

Mvh
HK


> procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
> Rect: TRect; State: TOwnerDrawState);
> Var
> T,F : Integer;
> begin
> // Det er forudsat at MultiSelect og ExtendedSelect er sat til False.
> If Edit3.Text = '1' Then F := clRed; //Farven på linien.
> If Edit3.Text = '5' Then F := clWhite; //Farven på linien.
> T := StrToInt(Edit2.Text); //Linienummeret der skal farves.
> with ListBox1 do
> begin
> begin
> If (Index = T) Then canvas.brush.Color := (F); //clWhite; //clRed;
> end;
> canvas.fillrect(rect); //tegn baggrundsfarven
> canvas.textout(rect.left, rect.top, items[index]); //skriv teksten
> end;
> end;



Thomas Due (08-10-2002)
Kommentar
Fra : Thomas Due


Dato : 08-10-02 07:12

> Problemet er at programmet automatisk køre når det startes op.
> Hvordan får jeg det til at køre, når der klikkes på en Button knap ?
> Et svar skåret ud i pap vel være dejligt.

Det jeg ville gøre vare at indføre en variabel som hændelsen checker på:
TForm1 = Class(TForm)
// komponenter
ListBox1DrawItem(...);
private
FCustomDraw : Boolean;
// andre ting
public
// andre ting
end;

Se efter // ---- INDSAT ---- // mærker.

> procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
> Rect: TRect; State: TOwnerDrawState);
> Var
> T,F : Integer;
> begin
// ---- INDSAT ---- //
if FCustomDraw then
begin
// ---- INDSAT ---- //
> // Det er forudsat at MultiSelect og ExtendedSelect er sat til False.
> If Edit3.Text = '1' Then F := clRed; //Farven på linien.
> If Edit3.Text = '5' Then F := clWhite; //Farven på linien.
> T := StrToInt(Edit2.Text); //Linienummeret der skal farves.
> with ListBox1 do
> begin
> begin
> If (Index = T) Then canvas.brush.Color := (F); //clWhite; //clRed;
> end;
> canvas.fillrect(rect); //tegn baggrundsfarven
> canvas.textout(rect.left, rect.top, items[index]); //skriv teksten
> end;
// ---- INDSAT ---- //
end;
// ---- INDSAT ---- //
> end;

Derefter tildeler du en OnClick event til din button og skriver f.eks.:

TForm1.Button1OnClick(Sender : TObject);
begin
FCustomDraw := not FCustomDraw;
end;

Så har du en on/off toggle button som slår funktionen til og fra.

--
Thomas Due
Software Developer
Scanvaegt Nordic A/S



Søg
Reklame
Statistik
Spørgsmål : 177495
Tips : 31968
Nyheder : 719565
Indlæg : 6408489
Brugere : 218886

Månedens bedste
Årets bedste
Sidste års bedste