[Delphi] Optimisation

Optimisation [Delphi] - Programmation

Marsh Posté le 26-02-2002 à 19:16:04    

Hello,
 
Voila la question que je me pose :
Sachant que mon appli doit pouvoir créer dynamiquement un nombre indéterminé de boutons, qu'a chaque bouton doivent êtres associés 4 valeurs (2 strings, un boolean et un integer) et un popupmenu, et que ces valeurs doivent êtres accessibles depuis une autre form que celle où est le bouton ;  vaut-il mieux  
- dériver une classe (MyButton) de TButton en ajoutant les 4 valeurs en variables et le popup
- dériver une classe (MyButton) de TButton en ajoutant les 4 valeurs en property et le popup
- faire un tableau ouvert de records MyButton avec MyButton contenant 6 champs (TButton, string, string, boolean, integer, Tpopupmenu)
 
Quand je dis "vaut-il mieux, je parle en terme d'utilisation mémoire, pas en terme de simplicité du code  :crazy:  
Toute autre solution est la bienvenue :)
 
PS : Pas besoin de m'expliquer comment créer dynamiquement le bouton, j'ai trouvé un topic très chouette qui l'explique !


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 26-02-2002 à 19:16:04   

Reply

Marsh Posté le 26-02-2002 à 19:42:52    

record contenant un TButton + des autres trucs ou bien un TMyButton, je crois que ça sera pareil. La property ajoute peut-être un peu...
Pour le tableau ouvert, je dirais une TList plutôt.


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

Marsh Posté le 26-02-2002 à 22:13:05    

test les diverses méthodes tu pourras savoir laquelle est la plus performantes...
essaye en créant 5000 bouton...


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 26-02-2002 à 22:30:25    

y a intérêt à faire ça sous NT/2k/xp
si on fait ce genre de trucs sous win98, on explose les ressources :D


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

Marsh Posté le 27-02-2002 à 09:23:18    

antp Ciler fait la partie DiviDivX


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
Reply

Marsh Posté le 27-02-2002 à 09:52:34    

ha, mais ça ne change rien au fait que faire un test avec des milliers de boutons tu risque de crasher Win9X :D


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

Marsh Posté le 27-02-2002 à 11:05:26    

Test avec 5000 boutons... pkoi pas...
 
Sinon un problème, comment faire pour signifier au popupmenu associé à chaquze bouton que c'est le bouton qui l'appelle genre avoir dans le menu un "Delete" qui ferait
Bouttoncorrespondant.Free ?


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 27-02-2002 à 14:22:34    

heu un truc, c'est pas des boutons comme ça qu'il faut :) il faut qu'ils soit transparents car video derriere oblige (bon je me tait tu le savais dejà)


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
Reply

Marsh Posté le 27-02-2002 à 14:50:06    

Ciler a écrit a écrit :

Sinon un problème, comment faire pour signifier au popupmenu associé à chaquze bouton que c'est le bouton qui l'appelle genre avoir dans le menu un "Delete" qui ferait
Bouttoncorrespondant.Free ?  




 
y a un paramètre "Sender" dans chaque événement qui donne un pointeur vers l'objet ayant déclanché l'événement ;)


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

Marsh Posté le 27-02-2002 à 18:12:14    

Voui, mais là, le sender c'est un TMenuItem, pas un bouton... alors pour savoir qui est le boton qui a sollicité le menu :??:


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 27-02-2002 à 18:12:14   

Reply

Marsh Posté le 27-02-2002 à 19:12:45    

tu dois avoir une propriete popupcomponent dans ton popupmenu qui fait ce que tu veux


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 27-02-2002 à 19:40:03    

En effet.
 
Et il y a l'évenement suivant qui est déclanché juste avant d'afficher le menu:
 
TPopupMenu.OnPopup:

Citation :

Occurs just before the pop-up menu appears.
 
property OnPopup: TNotifyEvent;
 
Description
 
Write an OnPopup event handler to take specific action just before the pop-up menu appears. For example, use an OnPopup event handler to set the Checked, Enabled, or Visible property of individual items in the menu so that they are appropriate to the PopupComponent.

 

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


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

Marsh Posté le 28-02-2002 à 09:30:16    

:jap:
 
Tu saurais pas comment faire un bouton avec le fond transparent mais pas les bordures des fois aussi ? :crazy:

 

[jfdsdjhfuetppo]--Message édité par Ciler--[/jfdsdjhfuetppo]


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 28-02-2002 à 15:15:03    

os2 a écrit a écrit :

test les diverses méthodes tu pourras savoir laquelle est la plus performantes...
essaye en créant 5000 bouton...  




 
 :sweat: Ca crashe effectivement...
 
Quoi, que signifie NbrButton: Byte ? A c'est pour ça que je peut pas en créer plus que 256  :sarcastic:


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 28-02-2002 à 15:51:47    

Ciler a écrit a écrit :

 
Quoi, que signifie NbrButton: Byte



tu vois ca ou ? :??:

 

[jfdsdjhfuetppo]--Message édité par JWhy--[/jfdsdjhfuetppo]


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 28-02-2002 à 16:22:26    

JWhy a écrit a écrit :

 
tu vois ca ou ? :??:  
 
 




 
 :sweat:  
C'était une blague... Plus haut, os2 me proposait de tester mon prog avec 5000 boutons, j'ai essayé et ça a planté, mais ce n'étais pas une question de ressource, tout simplement qu ele compteur n'en permet pas plus  
(byte: unsigned sur 8 bits -> 0-255)


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 28-02-2002 à 16:36:48    

ah ok, ... pardon... ch'ui fatigué ;)


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 28-02-2002 à 18:09:17    

Ciler a écrit a écrit :

:jap:
 
Tu saurais pas comment faire un bouton avec le fond transparent mais pas les bordures des fois aussi ? :crazy:  
 
 




 
TSpeedButton je crois


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

Marsh Posté le 01-03-2002 à 08:01:13    

Ciler tu lit tes mails des fois ?


---------------
PowerDivX NextGen 3.12 sur: http://www.powerdivx.com
Reply

Marsh Posté le 01-03-2002 à 09:17:53    

antp a écrit a écrit :

 
TSpeedButton je crois  




 
Pas exactement, mais moyennant bidouille on arrive à ça effectivement !m :D  
 
@ Sun : oui, quand la connexion marche... Mais bon, je crois que je vais regarder ça avec attention, car de tout point de vue sauf ce :gun: d'overlay, il est mieux que qui tu sais...

Reply

Sujets relatifs:

Leave a Replay

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