Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3247 connectés 

 


Dernière réponse
Sujet : Delphi 4 : comprend pas !
evode 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

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
evode 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
Georges Moustaki 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]

evode 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]

Georges Moustaki 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]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)