Delphi 4 : comprend pas ! - Programmation
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]
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]
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 
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]