Delphi 4 : comprend pas !

Delphi 4 : comprend pas ! - Programmation

Marsh Posté le 17-10-2001 à 12:35:24    

constructor TExplorerTreeView.Create(AOwner: TComponent);
begin
   inherited Create(AOwner);
   ListIcones := TImageList.create(Self);
   self.getImageSysList();
 
   Self.Items.BeginUpdate;
   addDesktopRoot();
   addDriveRoot();
   addDrives();
   addNetworkRoot();
   addTrashRoot();
   Self.items.EndUpdate();
end;
 
 
 
bon, ça sa marche, le seul problème, c'est que quand j'ajoute ce composant dans une fiche, à l'execution, il me dit :'Classe TImageList introuvable' ou un truc dans le style alors que l'unité Controls est bien inclu dans le source de la fiche et celui du composant...
le pb disparait si j'ajoute une TimageList à la fiche mais je perd du coup mes icones...

 

[edtdd]--Message édité par Georges Moustaki--[/edtdd]

Reply

Marsh Posté le 17-10-2001 à 12:35:24   

Reply

Marsh Posté le 17-10-2001 à 12:40:59    

C koa ton getImageSysList ?
 
NB1 : pour les methodes sans paramatres, tu peux te passer des parenthese
NB2 : le self de self.membreQuelconque est facultatif

 

[edtdd]--Message édité par evode--[/edtdd]


---------------
Hyndex - Meuaarf !! ReZo !!!
Reply

Marsh Posté le 17-10-2001 à 14:10:06    

Le self et les (), c'est juste pour la lisibilité du code... je m'y suis habitué avec Java
 
pour ce qui est de GetImageSysList, voilà le code :
 
procedure TExplorerTreeView.getImageSysList;
var
  sfi: TSHFileInfo;
  SysIL: UInt;
begin
   // retourne un handle sur la liste d'images système
   SysIL := SHGetFileInfo('', 0, sfi, SizeOf(TSHFileInfo),
      SHGFI_ICON or SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
  if SysIL <> 0 then
  begin
    ListIcones.Handle := SysIL;
    ListIcones.ShareImages := true;
  end;
end;
 
 
si je rajoute dans la méthode create
Self.Items := TTreeNodes.create(Self);
juste avant le Self.Items.BeginUpdate, l'erreur se retrouve sur Self.Items := (...);
mais c'est sur que c'est pas GetImageSysList : ça se voit bien quand j'execute en pas à pas...

 

[edtdd]--Message édité par Georges Moustaki--[/edtdd]

Reply

Marsh Posté le 17-10-2001 à 14:48:46    

ton constructeur est t'il appele dans le constructeur du owner ?
 
je m'explike :
 
dans l'aide sur TWinControl, je suis tombe sur : n'utilisez pas la propriété Handle lors de la création ou du transfert sur flux d'un composant.
 
donc si tout ce lance avant la creation du composant principal (CP), on peu imaginer ke le handle necessaire a Items remonte jusqu'a CP mais ca marche po parce ke justement CP n'est po encore completement cree


---------------
Hyndex - Meuaarf !! ReZo !!!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed