Bonjour
j'ai deux procedure dont l'une provient d'un combobox et l'autre d'un listbox
comment puis-je faire pour faire qu'une seule procedure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 PROCEDURE Tform1.combobox1drawitem(Control: Twincontrol; Index: LONGINT; Rect: TRECT; STATE: Townerdrawstate); VAR Itemtext: STRING; S1:LONGINT; BEGIN WITH control as Tcombobox DO BEGIN Itemtext := ITEMS[Index]; S1:=LONGINT(ITEMS.OBJECTS[Index]); // doit contenir la couleur IF Odselected IN STATE THEN BEGIN Canvas.Font.Color := S1; Canvas.Brush.Color := 0; END ELSE BEGIN Canvas.Font.Color := S1; Canvas.Brush.Color:= Clwindow; END; Canvas.Fillrect(Rect); Canvas.Textout(Rect.Left + 2 , Rect.Top, Itemtext); END; {Tform1} END; PROCEDURE Tform1.list1drawitem(Control: Twincontrol; Index: LONGINT; Rect: TRECT; STATE: Townerdrawstate); VAR Itemtext: STRING; S1:LONGINT; BEGIN WITH control as TListbox DO BEGIN Itemtext := ITEMS[Index]; S1:=LONGINT(ITEMS.OBJECTS[Index]); // doit contenir la couleur IF Odselected IN STATE THEN BEGIN Canvas.Font.Color := S1; Canvas.Brush.Color := 0; END ELSE BEGIN Canvas.Font.Color := S1; Canvas.Brush.Color:= Clwindow; END; Canvas.Fillrect(Rect); Canvas.Textout(Rect.Left + 2 , Rect.Top, Itemtext); END; {Tform1} END;
j'ai tester
WITH control as Tcombobox or TListbox
mais cela ne fonctionne pas
ensuite essayer avec
var sender:Tobject;
mais je ne sais pas comment faire.
merci de me donner quelques suggestions:
ma solution serai de faire
mais je veux juste que le WITH soit commun.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 IF (control is Tcombobox) THEN WITH control as Tcombobox DO BEGIN Itemtext := ITEMS[Index]; S1:=LONGINT(ITEMS.OBJECTS[Index]); // doit contenir la couleur IF Odselected IN STATE THEN BEGIN Canvas.Font.Color := S1; Canvas.Brush.Color := 0; END ELSE BEGIN Canvas.Font.Color := S1; Canvas.Brush.Color:= Clwindow; END; Canvas.Fillrect(Rect); Canvas.Textout(Rect.Left + 2 , Rect.Top, Itemtext); END IF (control is TListbox) THEN WITH control as TListbox DO BEGIN Itemtext := ITEMS[Index]; S1:=LONGINT(ITEMS.OBJECTS[Index]); // doit contenir la couleur IF Odselected IN STATE THEN BEGIN Canvas.Font.Color := S1; Canvas.Brush.Color := 0; END ELSE BEGIN Canvas.Font.Color := S1; Canvas.Brush.Color:= Clwindow; END; Canvas.Fillrect(Rect); Canvas.Textout(Rect.Left + 2 , Rect.Top, Itemtext); END; {Tform1}
j'ai fait des recherches sur le net mais pas trouvé.
Partager