ffert
Messages postés63Date d'inscriptionsamedi 18 janvier 2003StatutMembreDernière intervention15 décembre 2009
-
14 juin 2006 à 14:04
ffert
Messages postés63Date d'inscriptionsamedi 18 janvier 2003StatutMembreDernière intervention15 décembre 2009
-
15 juin 2006 à 09:45
Voilà, j'ai besoin d'aide.... j'en perds mon latin
Je créer une List box dynamiquement :
// création la boite
LB := TListBox.Create(CB);
LB.Parent := CB;
LB.Color := CB.Color;
LB.Width := (CB.Parent As TPanel).Width - 6;
LB.Style := lbOwnerDrawVariable;
LB.ItemHeight := 26;
LB.OnDrawItem := OnDrawItem;
à la compilation il me donne un message d'erreur :
Incompatible Types : 'method pointer and regular procedure'
Hors, la précédure est déclarée précédement (avant la création dynamique) comme suit :
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 14 juin 2006 à 18:12
Salut ffert,
Ajoute cet événement manuellement (n' oublie pas de la déclarer plus haut comme les autres événements de ta form) :
procedure TForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
// mets le code que tu veux ...
end;
Ensuite tu fais:
LB := TListBox.Create(CB);
LB.Parent := CB;
LB.Color := CB.Color;
LB.Width := (CB.Parent As TPanel).Width - 6;
LB.Style := lbOwnerDrawVariable;
LB.ItemHeight := 26;
LB.OnDrawItem := ListBox1DrawItem;
Voilà, change le nom de l' événament biensûr !!!!
A+
ffert
Messages postés63Date d'inscriptionsamedi 18 janvier 2003StatutMembreDernière intervention15 décembre 2009 15 juin 2006 à 09:45
Désolé Mauricio, mais je ne peux pas faire cela, car je ne suis pas
dans un Form, je suis dans une unité simple unité, comportant ses
propres classes, ses propres procédures, ses propres variable, mais lié
à aucune form (puisqu'elle gère les données et non l'affichage)
J'ai testé le code de F0xi (le deuxième) qui marche super bien : celui là :
interface
type
TProcLayout = class(TObject)
public
procedure DoChange(Sender : TObject);
end;
var
ProcLayout : TProcLayout = nil;
implementation
procedure TProcLayout.DoChange(Sender : TObject);
begin
// code //
end;
initialization
if not assigned(ProcLayout) then
ProcLayout := TProcLayout.Create;
finalization
if assigned(ProcLayout) then
FreeAndNil(ProcLayout);
end.