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

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] /\ editeur de tiles /\ page2: pb de onMouseWheel event !

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[Delphi] /\ editeur de tiles /\ page2: pb de onMouseWheel event !

n°190348
trueslash
(╯°□°)╯︵ MMM
Posté le 05-08-2002 à 23:49:42  profilanswer
 

comme je trouvais pas mon bonheur parmis les composants, j'ai fait un truc tout seul ce soir et j'aimerais bien que qqun télécharge le .exe et le teste chez lui pour me donner des conseils ...
 
une bonne âme ? :jap:


Message édité par trueslash le 30-09-2002 à 13:07:14
mood
Publicité
Posté le 05-08-2002 à 23:49:42  profilanswer
 

n°190349
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-08-2002 à 23:50:53  profilanswer
 

:??: faut faire quoi ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°190350
trueslash
(╯°□°)╯︵ MMM
Posté le 05-08-2002 à 23:53:07  profilanswer
 

antp a écrit a écrit :

:??: faut faire quoi ?




 
essayer et critiquer

n°190351
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-08-2002 à 23:53:35  profilanswer
 

ok mais je vois pas de lien dans ton post :heink:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°190352
zion
Plop
Posté le 05-08-2002 à 23:55:32  profilanswer
 

Je parie qu'il y avait ce que tu voulais dans la JVCL
 
Y en a un dedans
 
http://jvcl.sourceforge.net
 
(J'ai déjà dit que c'est sous MPL donc gratos?  :ange: )


---------------
Informaticien.be - Lancez des défis à vos amis
n°190353
trueslash
(╯°□°)╯︵ MMM
Posté le 05-08-2002 à 23:55:33  profilanswer
 

ah ben faut le temps que j'upload :D
 
http://gardenofeden.free.fr/images [...] inZoom.exe
 
318 ko :sweat:

n°190354
trueslash
(╯°□°)╯︵ MMM
Posté le 05-08-2002 à 23:56:34  profilanswer
 

bon, les 3 edit sont les valeurs des composantes en R, G et B et en 16 bits
 
apres, on peut jouer avec la grille
 
vala

n°190355
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-08-2002 à 23:58:09  profilanswer
 

ha ouais c'est pas mal.
un peu spécial quand même :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°190358
trueslash
(╯°□°)╯︵ MMM
Posté le 06-08-2002 à 00:01:53  profilanswer
 

c'est pas aussi bien que ce que je pensait en fait, dans le carré à gauche des TEdit, ya des couleurs qui se répètent ... :(
 
chaque ligne du carré correspond à la couleur courante que l'on fait varier selon une ou plusieurs compsantes, c normal d'avoir des doublons ? :??:
 
(premiere ligne, selon R, ensuite G, B, RG, RB et enfin GB)

n°190362
zion
Plop
Posté le 06-08-2002 à 00:02:31  profilanswer
 

antp a écrit a écrit :

ha ouais c'est pas mal.
un peu spécial quand même :D




 
+1 c'est pas méga intuitif, mais c'est nouveau comme concept, j'avais jamais vu  :jap:


---------------
Informaticien.be - Lancez des défis à vos amis
mood
Publicité
Posté le 06-08-2002 à 00:02:31  profilanswer
 

n°190363
trueslash
(╯°□°)╯︵ MMM
Posté le 06-08-2002 à 00:03:30  profilanswer
 

>> Zion, je vais quand même jeter un coup d'oeil à sourceforge  :)

n°190365
zion
Plop
Posté le 06-08-2002 à 00:05:07  profilanswer
 

y en a 4 ou 5 différents dans le pack  ;)


---------------
Informaticien.be - Lancez des défis à vos amis
n°190371
trueslash
(╯°□°)╯︵ MMM
Posté le 06-08-2002 à 00:12:19  profilanswer
 

pour info, c'est pour faire un éditeur de tile et mon problème de doublons + haut n'apparait pas à chaque fois donc ça doit être naturel ...
 
sinon, je pense faire barre en dessous qui affichera les dernières couleurs sélectionnées pour pouvoir revenir en arrière.
 
à part ça et décrire un peu plus la form, qu'est ce que je pourrais facilement améliorer ?

n°190379
zion
Plop
Posté le 06-08-2002 à 00:26:14  profilanswer
 

améliorer?
Euh, y a 2 compos, je vois pas ce que tu veux améliorer :o
 
Faudrait ptre en faire une application  ;)


---------------
Informaticien.be - Lancez des défis à vos amis
n°190550
trueslash
(╯°□°)╯︵ MMM
Posté le 06-08-2002 à 10:45:32  profilanswer
 

bon, avant d'aller plus loin, je voudrais améliorer le code qui est bien dégueux :sweat:
 
pour l'instant, j'ai une classe avec une méthode raffraichir qui prend en entrée un pointeur sur un canvas et qui dessine ...
 
je voudrais faire hériter cette classe et faire qqchose de plus propre mais j'hésite entre un TPanel t un TGraphicsControl pour l'ancetre ...
 
lequel prendre ? :??:

n°190704
zion
Plop
Posté le 06-08-2002 à 13:53:30  profilanswer
 

trueslash a écrit a écrit :

bon, avant d'aller plus loin, je voudrais améliorer le code qui est bien dégueux :sweat:
 
pour l'instant, j'ai une classe avec une méthode raffraichir qui prend en entrée un pointeur sur un canvas et qui dessine ...
 
je voudrais faire hériter cette classe et faire qqchose de plus propre mais j'hésite entre un TPanel t un TGraphicsControl pour l'ancetre ...
 
lequel prendre ? :??:




 
 
 :lol: Tu nous demandes un avis sur un code qu'on voit pas... Joli  :jap:  
 
et le TGraphicControl c'est suffisant


---------------
Informaticien.be - Lancez des défis à vos amis
n°190719
trueslash
(╯°□°)╯︵ MMM
Posté le 06-08-2002 à 14:23:04  profilanswer
 

c bon, je l'ai fait avec le TGraphicControl :o:o:o
 
c'est tout beau maintenant :o:o:o
 
l'héritage, ça roxx  [:gui42] :love:

n°191257
trueslash
(╯°□°)╯︵ MMM
Posté le 07-08-2002 à 08:39:22  profilanswer
 

nouveau problème:
 
avec ma clase héritant d'un TGraphicControl, je voudrais détecter quand la souris cesse de survoler mon objet mais j'ai pas trouvé d'évènement qui fasse ça :/
 
une idée ? :??:
 
:jap:

n°191330
trueslash
(╯°□°)╯︵ MMM
Posté le 07-08-2002 à 10:53:47  profilanswer
 

:bounce:

n°191457
zion
Plop
Posté le 07-08-2002 à 13:58:30  profilanswer
 

CM_MOUSEENTER
 
et
 
CM_MOUSELEAVE
 
 :hello:


---------------
Informaticien.be - Lancez des défis à vos amis
n°191506
trueslash
(╯°□°)╯︵ MMM
Posté le 07-08-2002 à 15:08:25  profilanswer
 

mais le problème, c'est que comme évènement du TControl, j'ai que ça:
 

Code :
  1. OnCanResize
  2. OnClick
  3. OnConstrainedResize
  4. OnContextPopup
  5. OnDblClick
  6. OnDragDrop
  7. OnDragOver
  8. OnEndDock
  9. OnEndDrag
  10. OnMouseDown
  11. OnMouseMove
  12. OnMouseUp
  13. OnResize
  14. OnStartDock
  15. OnStartDrag


 
il faut pas utiliser d'évenements ? :??:

n°191517
zion
Plop
Posté le 07-08-2002 à 15:14:51  profilanswer
 

http://www.google.com/search?sourc [...] TER+delphi
 
http://groups.google.com/groups?so [...] TER+delphi
 
T'es pas limité a ce que borland te propose, faut intercepter le message toi même.
 
 :hello:


---------------
Informaticien.be - Lancez des défis à vos amis
n°191520
trueslash
(╯°□°)╯︵ MMM
Posté le 07-08-2002 à 15:21:42  profilanswer
 

ok merci :jap:
 
j'ai jamais fait ça, c'est l'occasion d'apprendre

n°191525
zion
Plop
Posté le 07-08-2002 à 15:28:54  profilanswer
 

La meilleure facon d'apprendre, c'est de regarder les sources des autres.
 
http://jvcl.sourceforge.com
Y a + de 300 composants, tu trouveras ton bonheur en sources à analyser ;-)
 
 
Ex:
 

Code :
  1. type
  2.   TJvEdit = class(TEdit)
  3.    [...]
  4.   protected
  5.     procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
  6.     procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
  7.    [..]


 
 
 


---------------
Informaticien.be - Lancez des défis à vos amis
n°191526
trueslash
(╯°□°)╯︵ MMM
Posté le 07-08-2002 à 15:29:08  profilanswer
 

ça roxx
 

Code :
  1. procedure ZoomMouseLeave(var msg : TMessage); message CM_MOUSELEAVE;
  2.   procedure TDessinZoom.ZoomMouseLeave(var msg : TMessage);
  3.   begin
  4.     clicGauche := false;
  5.   end;


 

n°193245
trueslash
(╯°□°)╯︵ MMM
Posté le 09-08-2002 à 23:16:52  profilanswer
 

attention, nouvelle question !!!!!!!!!
 
alors, je suis obligé de décrire un peu le code, désolé :/ :
 
j'ai une classe TTileSet
 

Code :
  1. TTileSet = class(TGraphicControl)
  2. public
  3. ...
  4.    constructor create(...)
  5.    procedure addNewTile(...)
  6. ...
  7. protected
  8. ...
  9.    tiles: array of TTile
  10. ...
  11. private


 
tiles est un tableau dynamique , dans le constructeur, j'utilise setlength pour initialiser sa longueur à 1, dans addNewTile, je refais des setlength pour ajouter une case à la fin du tableau.
 
pour l'instant je n'ai pas de desrtucteur et donc quand j'essaye de quitter le prog avec plus d'une case dans le tableau, ça plante ...
 
le problème c que je sais pas détruire sa proprement, j'ai essayé de surcharger le destructeur comme ça:
 

Code :
  1. destructor TTileSet.destroy()
  2. var
  3.   i: integer;
  4. begin
  5.   for i:=0 to length(tiles) - 1 do tiles[i].free();
  6. end;


 
sa plante toujours :cry:
 
je crois que c pas bien de faire des setlength dans les méthodes non ?
 
chuis un peu coincé là :P

n°193246
antp
Super Administrateur
Champion des excuses bidons
Posté le 09-08-2002 à 23:19:24  profilanswer
 

perso j'utiliserais un TList (liste chaînée)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°193247
zion
Plop
Posté le 09-08-2002 à 23:22:03  profilanswer
 

antp a écrit a écrit :

perso j'utiliserais un TList (liste chaînée)




 
 
un TObjectList, il se démerde tout seul pour virer les objets, c'est mieux :o


---------------
Informaticien.be - Lancez des défis à vos amis
n°193248
trueslash
(╯°□°)╯︵ MMM
Posté le 09-08-2002 à 23:23:19  profilanswer
 

:jap:
 
je reéssaye ...
 
je rame un peu avec les destructeurs, je sais jamais quand le papa destructeur suffit et quand il faut en faire un nouveau :/

n°193252
antp
Super Administrateur
Champion des excuses bidons
Posté le 09-08-2002 à 23:28:34  profilanswer
 

Zion a écrit a écrit :

 
 
 
un TObjectList, il se démerde tout seul pour virer les objets, c'est mieux :o




 
sauf quand, comme dans mon cas, tu as parfois deux lists qui pointent vers les mêmes objets :D
(parce que la seconde des deux listes représente ce qui est sélectionné dans la première par ex)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°193258
zion
Plop
Posté le 09-08-2002 à 23:31:32  profilanswer
 

Quand tu alloues un truc, tu dois le désallouer dans ton constructeur
 
pour utiliser un TObjectList, je ferais un truc du genre
 
TTaClass = class(TComponent)
private
  FList: TObjectList;
public
  constructor Create(AOwner: TComponent); override;
  destructor Destroy;override;
end;
 
constructor TTaClass.Create(AOwner: TComponent);
begin
  inherited;  //Pour le constructeur, tu le fous au début ca
  FList := TObjectList.Create;
end;
 
destructor TTaClass.Destroy;
begin  
  FList.Free;
  inherited; //Le destructor c'est a la fin l'inherited
end;
 
si c'est un array statique, pas besoin de surcharge, mais dès que tu alloues un truc, ca c'est la jolie soluce.


---------------
Informaticien.be - Lancez des défis à vos amis
n°193260
zion
Plop
Posté le 09-08-2002 à 23:32:21  profilanswer
 

antp a écrit a écrit :

 
 
sauf quand, comme dans mon cas, tu as parfois deux lists qui pointent vers les mêmes objets :D
(parce que la seconde des deux listes représente ce qui est sélectionné dans la première par ex)




 
Alors tu lui dis  
OwnsObjects := false;  :D


---------------
Informaticien.be - Lancez des défis à vos amis
n°193275
antp
Super Administrateur
Champion des excuses bidons
Posté le 09-08-2002 à 23:51:13  profilanswer
 

ha ok :D
C'est toujours bon à savoir :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°193295
trueslash
(╯°□°)╯︵ MMM
Posté le 10-08-2002 à 00:26:33  profilanswer
 

le TObjectList, c'est bieng, mais comment je fais pour accéder à ce qu'il y a dedans ...
 
par exemple, si j'ai ça:
 

Code :
  1. tiles: TTile
  2. ...
  3. tiles[0].drawTile();


 
en il me jette parce qu'il est pas censé savoir que c un TTile le TObject ...
 
faut que je fasse avec des with à chaque fois :heink:
 

Code :
  1. with tiles[0] as TTile do drawTile();

n°193296
zion
Plop
Posté le 10-08-2002 à 00:35:39  profilanswer
 

non pas des with
 
Cast avec check du type (exception si c pas la bonne classe)
(tiles[0] as TTile).Machin
 
Cast brute - genre C/C++ (aucun check, plantage assuré si c pas la bonne classe)
TTile(Tiles[0]).Machin


---------------
Informaticien.be - Lancez des défis à vos amis
n°193297
trueslash
(╯°□°)╯︵ MMM
Posté le 10-08-2002 à 00:42:25  profilanswer
 

erf je savais même pas que yavait des casts en pascal :D
 
merchi :jap:

n°193298
antp
Super Administrateur
Champion des excuses bidons
Posté le 10-08-2002 à 00:44:55  profilanswer
 

le with dans ce cas-ci c'est quand même pas mal si tu dois accéder à plusieurs propriétés/méthodes :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°193347
trueslash
(╯°□°)╯︵ MMM
Posté le 10-08-2002 à 10:58:29  profilanswer
 

merci à tous les deux, voilà le fruit de mon dur travail :/
 
http://gardenofeden.free.fr/images [...] inZoom.exe
 
est-ce que c'est posible de faire du double-buffering avec les TCanvas des TGraphicControl :??:
 

n°193361
antp
Super Administrateur
Champion des excuses bidons
Posté le 10-08-2002 à 11:41:37  profilanswer
 

Je pense que tu dois l'appliquer au TWinControl le plus proche (Panel ou Form sur lequel est ton compo si jamais le composant dont tu dérives ne le supporte pas)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°193468
zion
Plop
Posté le 10-08-2002 à 14:48:48  profilanswer
 

Eh benh c'est pas mal tout ca, chez moi ca flicker pas du tout en tout cas ;)
 
Pour le double-buffering, en fait c'est tout con, tu sais le gérer toi même en interne, suffit de faire tout tes dessins sur un TBitmap et de faire un Draw du TBitmap dans le OnPaint, c'est tout ce que fait le double-buffering. Sinon comme l'a dit antp, tu l'appliques au compo parent qui le supporte et c'est bon aussi.


---------------
Informaticien.be - Lancez des défis à vos amis
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] /\ editeur de tiles /\ page2: pb de onMouseWheel event !

 

Sujets relatifs
Explorer sous delphi[Newbie] Programme C (editeur, compilateur etc...) ???
Editeur de ressource (.res)[Algo/Delphi] Detection de collision par triangularisation.
Est ce que c Possible avec Delphiinterbase - delphi
prendre en compte le clavier ds un app delphi en opengl??Prob à l'install [delphi 4 pro}
[Delphi]BDE libre? 
Plus de sujets relatifs à : [Delphi] /\ editeur de tiles /\ page2: pb de onMouseWheel event !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR