[Delphi 6] création de composant... contenant une image...

création de composant... contenant une image... [Delphi 6] - Programmation

Marsh Posté le 23-01-2002 à 11:55:33    

j'aimerais mettre une image dans mon composant.. le pb, c'est qu'il n'accepte pas les chargements d'image du style LoadFromFile...
il faudrait donc utiliser des ressources et LoadFromRessource...
mais là, je comprends pas bien comment il faut faire...
quelqu'un peut m'expliquer ?

Reply

Marsh Posté le 23-01-2002 à 11:55:33   

Reply

Marsh Posté le 23-01-2002 à 11:59:02    

il faut un bitmap dans le exe (fichier res à créér puis à inclure)
ensuite il faut charger le bitmap depuis les ressources et l'assigner au bitmap de ton composant
 
créér le fichier res:
faire un .rc avec dedans NOMDELARESSOURCE BITMAP "nom du fichier.bmp"
ensuite lancer brcc32 fichier.rc
ça te créera un .res contenant le bitmap spécifié
 
pour charger la ressource:  
toncompo.tonTbitmap.LoadFromResourceName(Instance, "NOMDELARESSOURCE" );
 
un truc du genre
 
ou alors tu crées un TBitmap pour charger la ressource et ensuite tu transfères les données vers ton image.
 
l'image dans ton composant c'est un TBitmap ? Normalement il prévois le LoadFromFile...

 

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


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-01-2002 à 12:11:22    

oui, ya LoadFromFile... seulement, comme c'est un composant, il vaut mieux que le bitmap y soit inclu dans le comp plutôt que dans un fichier à part... tu vois ce que je veux dire ?
 
toncompo.tonTbitmap.LoadFromResourceName(Instance, "NOMDELARESSOURCE" );
 
tu tombes pile poil sur mon pb : c'est quoi "Instance" ???  
 
dans mon composant, j'ai mis un TImage, et je veux lui attribuer un bitmap par sa propriété picture... ça peut se faire comme ça ?

Reply

Marsh Posté le 23-01-2002 à 12:17:29    

le Instance c'est une fonction de Delphi qui renvoie l'instance de l'application :)
(un vieux machin de l'API Win 3.x, je sais même pas si cette histoire d'instance joue encore un rôle en win32)
 
pour le second truc, je comprends pas très bien...
 
toncompo.leTImage.Picture.Bitmap.Assign(un_autre_TBitamp) par exemple

 

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


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-01-2002 à 12:31:34    

en fait, je vais essayer de t'expliquer ce que je veux faire, c'est assez simple :
 
j'aimerais faire un composant héritant de TPanel et contenant deux images :  
 
une statique : elle est contenue dans le composant en tant que ressource et ne peut pas être modifiée.
 
l'autre dynamique : deux images pourront être affichées en alternance (un peu comme la case à cocher dans un checkbox), les deux images pourront être modifiées par le biais des propriétés.
 
voilà, c'est tout simple mais j'en chie. d'abord parceque je n'arrête pas d'avoir des erreurs avec les propriétés (un peu le même style qu'avec les prop font de l'aut' fois  :D ), et puis à cause des ressources que je ne savais pas utiliser.
 
bon, j'essayerais pour les ressources cette aprèm' et si j'arrive pas à faire marcher les prop, bin, yaura un autre post !  :D  
 
à plus!

Reply

Marsh Posté le 23-01-2002 à 12:45:41    

sinon tu peux aussi prendre un compo de ce genre et regarder le source, c'est parfois plus facile pour apprendre...
y a ce genre d'images à plusieurs images (:D) dans les compos du BUPack, sur www.buypin.com


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-01-2002 à 13:28:41    

ok ! merci !

Reply

Marsh Posté le 23-01-2002 à 15:05:53    

antp a écrit a écrit :

le Instance c'est une fonction de Delphi qui renvoie l'instance de l'application :)
(un vieux machin de l'API Win 3.x, je sais même pas si cette histoire d'instance joue encore un rôle en win32)
 
pour le second truc, je comprends pas très bien...
 
toncompo.leTImage.Picture.Bitmap.Assign(un_autre_TBitamp) par exemple  




 
alors je ne trouve pas l'unité qui contient cette fonction... et l'aide me balance sur TDragObject.Instance...
c'est où que ça se trouve ?

Reply

Marsh Posté le 23-01-2002 à 15:17:21    

j'viens de trouver... en fait c'était HInstance :)

Reply

Marsh Posté le 23-01-2002 à 16:48:37    

ha ouais, pardon
hinstance c une variable globale contenant l'instance (ce dont tu as besoin donc), tandis que la fonction instance renvoie l'instance d'un objet (c'est une méthode donc)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

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