CASSE-BRIQUE EN DELPHI (GESTION DES IMAGES)

Messages postés
1715
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
2 décembre 2019
- - Dernière réponse : Harvester_
Messages postés
36
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
8 juillet 2007
- 8 juil. 2007 à 17:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43057-casse-brique-en-delphi-gestion-des-images

Harvester_
Messages postés
36
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
8 juillet 2007
-
Bah si nous souhaitons diffuser notre travail, une application complète, sous lisense GPL, c'est qu'on ne veut pas que notre travail serve à l'élaboration d'un logiciel dit propriétaire mais que tout travail basé sur ce code puisse servir encore et encore à d'autres utilisateurs. Certes cette licence est restrictive, même si libre, mais c'est un droit de ne pas vouloir que notre code diffusé sur ce site soit utilisée à des fins commerciales, ou diffusée de manière non libre étant donné que ce sont des applications/API entières qui sont exposées sur DelphiFR...Sinon nous serions sous Codyx.
Bref toute application devrait disposer d'une licence non? Que ce soit sur DelphiFR ou un autre site...

Sinon à ce que je vois, tous les codes du site sont sous licences BSD? ;).

Je m'exprime peut être mal, mais je suis pressé désolé ;).

PS : pour votre dernière phrases, il me semble que vous faîtes amalgame entre libre/OpenSource et gratuit/payant... Le libre peut être payant...
cs_cantador
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
10 -
La question des droits sur le site est simple :
dès l'instant où vous déposez une source, vous remettez votre travail à la communauté de tous les dephinautes, chacun pouvant faire ce qu'il veut avec votre code.
vous n'avez donc PLUS AUCUN DROIT COMMERCIAL DESSUS.
Si vous voulez conserver la paternité d'une oeuvre et pouvoir la vendre, il faut la déposer et la faire protéger et éviter bien sûr de diffuser son source (çà tombe sous le sens)
Certaines sociétés vendent néanmoins leurs produits avec les sources mais les protections sont solides..
C'est effectivement la propriété Intelectuelle qui pose problème..
Pas facile d'ailleurs à vérifier..
Ici, sur ce forum, il faut laisser libre à cours à l'innovation et l'évolution des projets.
Sur ce point c'est à Nix de trancher.

Pour ou contre l'OpenSource ? vaste sujet qui mêle à la fois des avancées technologiques en prenant les idées des autres pour le bien de tous et des intérêts financiers sous-jacents louables.
pas simple de choisir..
Pour ma part, je ne crois pas au retour au troc..
Harvester_
Messages postés
36
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
8 juillet 2007
-
OpenSource n'est pas gratuit!
Je préfère dire libre ( ne signifie pas gratuit ) car MS fait de l'open source...mais pas libre.
Lazarus est distribué avec plusieurs licences et permet de développer des applications propriétaires, libres, payantes, gratuites etc...

Il existe des alternatives libres ( tels que OpenOffice, Firefox ( pas tellement une alternative lui... ), Pidgin, aMSN ) mais aussi des projets bien issus du libre sans être "inspirés" tels que les GNU, Linux, les distribs GNU/LINUX etc...

Bref cracher sur le libre et dire que ça ne fait que copier...moyen moyen ! BIND ( gestion des DNS ) est libre, Apache etc... donc viront le libre et il ne reste que très peu de chose pour internet! Bon faut dire que les OS propriétaires ne sont pas gâtés avec le libre, car nombreux sont réticents à porter vers ces OS ( hey oui aussi des extrémistes du côté du libre ;) ), donc les innovations ne sont pas vues par monsieur Barbichette ;)

Le libre donne lui à des innovations aussi -> onglets, bureaux 3D ( certes futile, mais avec des années d'avance et des fonctionnalités plus poussées et moins gourmandes par rapport à MS Windows ( MacOS cas à part car pompe sur la totale liberté des sources BSD... )...

Bref, le libre c'est un état d'esprit, vous ne l'avez pas, vous comprendrez pas... Ca touche aussi une question sur ce site : les licences. Se serait bien de savoir ce que l'on peut ou ne peut faire avec les codes postés étant donné que des applications complètes sont postées...

Bref euh pour finir libre <> gratuit tout comme propriétaire <> payant...

J'espère ne pas être parti en troll...
snakehill
Messages postés
39
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2008
-
@Caribensila :

Quote " .Mais, à l'INSA, on ne vous apprend qu'à répondre sur la forme? Jamais sur le fond???!!!"

C.A.D. ? vous faites référence à quoi ? :-o
(si je prends pas de temps pour répondre c'est parceque je suis en pleine semaine de partiels ... au moment ou j'écris ces lignes il me reste 45 minutes avant d'aller passer mon partiel d'informatique xD)
Caribensila
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13 -
...Mais, à l'INSA, on ne vous apprend qu'à répondre sur la forme? Jamais sur le fond???!!!

Dommage pour un futur ingénieur 'Open-Source'. lol
Caribensila
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13 -
:)
Excuse ce lapsus linguae...
T'as rien d'un paysan. ;)
snakehill
Messages postés
39
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2008
-
@ Caribensila : c'est l'INSA ... INSA "-_-
Caribensila
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13 -
Barbichette n'a pas tort.
L'Open-Source c'est gratuit, ok.
Mais on devrait se demander pourquoi cela n'existe que pour les logiciels.
Je crois que même s'il y a de grands talents et de l'inventivité chez les auteurs de ce genre de progs, il faut bien admettre qu'il est très facile de pomper sur un logiciel, qui a demandé des mois d'études et de travail, ce qu'il a de plus intéressant; d'y ajouter sa touche perso; et de s'en approprier la paternité (à part Linux qui est une vraie création, mais combien d'autres de simples reprises...). Car enfin, pourquoi n'y aurait-il pas un like-Open-Source pour l' ingénierie par exemple? Où les clients pourraient choisir entre des ingénieurs coûteux et d'autres (grand coeur) gratos?
Si cela était, je ne suis pas sûr que l'INRA continuerait de prôner ce principe. Et encore moins sûr de son avenir et de celui de ses étudiants...
De plus, économiquement parlant, que deviendrions-nous si tout devenait gratuit?
Pourquoi des gens travailleraient-ils gratos?

Alors, pourquoi cette abnégation uniquement dans le monde de la programmation, à votre avis?
Un Open-Source pour de gros projets comme un like-Delphi, ça pue un peu, je trouve.
Oniria
Messages postés
296
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
18 décembre 2014
2 -
Bonjour,

Pour répondre un peu à Barbichette, je suis pour l'Open Source. Un travail comme Lazarus est gratuit mais il faut également voir que ce que l'on fait avec peut être payant, on peut l'utiliser pour créer des programmes qui ne sont pas Open Source.

Deuxièmement, je ne crois pas que le travail fait dans le cadre Opensource soit gratuit, au sens large. Chaque personne donne un peut de son temps pour coder, faire les documentations, juste l'utiliser (ce qui est déja beaucoup). Or le temps c'est de l'argent. En gros, le travail d'une équipe d'un programme est récompensé par un ensemble d'utilisateur qui en feront de la pub, améneront leurs savoir (on le voit bien sur ce site). L'esprit Open source est véritablement un esprit de partage.

Troisièmement, il existe bien des sociètés qui distribuent de l'opensource (Mandriva, Redhat...). Et ces socièté, ne se portent pas mal du tout.

Sur ce à plus.

Oniria
Oniria
Messages postés
296
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
18 décembre 2014
2 -
Pour ma part, je pense qu'il serait vraiment pas mal que delphifr ajoute une petite section lazarus. Il existe bien une section turbo pascal alors qu'un source turbo pascal n'estpas directement compilable sous delphi. De même Kylix n'est compatible avec delphi que si et seulement si on utilise les composants CLX. Lazarus est tout de même un environnement très proche de delphi. Il a franchement des atouts que delphi n'a pas (le nombre de plateformes supportées est impressionant). Mais bon, je pense que la question devait être posée. De plus, si vous regardez le site de lazarus, vous verez que c'est un groupe de développeur très actif.

La décision reste entière....
Francky23012301
Messages postés
400
Date d'inscription
samedi 6 août 2005
Statut
Membre
Dernière intervention
11 février 2016
1 -
Petite remarque pour finir : je rejoins à 200% la remarque de White Hippo. Et pour la justification ("ils refusent les source codées sous borland et n'acceptent que celles codées sous VCpp"), elle tombe à l'eau car dans ce cas, les sources sont compatibles : il n'y a pas tout à refaire. De plus meme si on aime l'OpenSource (et j'en fais partie), il ne faut pas oublier une petite chose : tu as beaucoup moins de composant sur le net pour ton IDE que pour celui de Borland et ca ce n'est pas qu'un détail ;).
Caribensila
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13 -
' Faudrait p'têt d'ailleurs songer à changer le titre du film. C'est enduisant d'erreur : "CASSE-BRIQUE EN DELPHI"...
( Ceci dit sans vouloir être casse-cou... , hein ;)
Francky23012301
Messages postés
400
Date d'inscription
samedi 6 août 2005
Statut
Membre
Dernière intervention
11 février 2016
1 -
@Onaria : "Et oui, le langage Delphi n'existe pas." Regarde bien l'aide de Borland et tu veras qu'il y a écrit textuellement que Delphi est un langage de programmation issu du Pascal.

Du reste quand tu cliques sur l'aide il y a souvent une partie relative au "langage C" et une relative au "Delphi" : Et c'est écrit tel quel. Est ce que tu crois qu'une société comme Borland serait passé devant une telle erreur que de comparer un langage (C) et un IDE (Delphi) ?

Voila comment on dit une grosse boulette et qu'on met le doute à tout le monde.

Ps : Quand on parle d'IDE on inclut le compilateur ou non :( ? (De quoi en rajouter une petite couche lol).

Ps : Tu peux faire de l'OpenSource avec l'IDE de Borland : du reste c'est que l'on fait tous les jours ;).
Oniria
Messages postés
296
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
18 décembre 2014
2 -
BOnjour,

Snakehill : On est bien d'accord, mais delphi améliore l'interface. Turbo Pascal 7 permet également de faire de la programmation objet, de la programmation windows, de programmer en assembleur , j'en passe et des meilleurs. C'est certain que delphi est plus évolué que Turbo pascal mais delphi reste et restera un environnement et non un langage. Regarde chez Borland, ils ont un nouvel environnement pour le langage PHP qui s'appelle ... Delphi PHP.
D'ailleur, encore heureux que l'on fait évoluer les choses dans la programmation pascal sinon le langage serait mort depuis longtemps face à des langages comme C++ (Visual C++ est sympa) pour programmer sous un environnement graphique tel windows ou XFree
Caribensila
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13 -
...Pascal --> Pascal Objet, grâce à Borland.
Et Delphi permet de programmer aussi bien en Pascal que directement en assembleur.
Delphi, un hyper langage de prog??? ;)
snakehill
Messages postés
39
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2008
-
@Oniria :
Ah bon ? notre prof nous a pourtant affirmé que le Delphi était une version évaluée du Pascal (avec gestion des objets, Form , etc etc ... ) o_Ô
Oniria
Messages postés
296
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
18 décembre 2014
2 -
Bonjour,

Bizarre au sujet des else avec Lazarus, moi, j'utilise la 0.9.22 et je n'ai pas ce probléme du tout.

Sinon, pour répondre à Harvester_, Delphi est l'environnement de développement. Le langage s'appelle Pascal. Et oui, le langage Delphi n'existe pas.
Harvester_
Messages postés
36
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
8 juillet 2007
-
Euh faut dire que vous vous plaigniez d'un passage Delphi->Lazarus...mais le passage Lazarus-Delphi n'est-il pas plus contraignant? Si vous voulez compiler, vous télécharger Lazarus qui est libre et gratuit...pour Delphi autre histoire, Delphi 6 est bridé, en version personnelle, impossible de déployer une version commerciale... Donc pour avoir un bon Delphi, il faut obligatoirement passer à la caisse... Bref je pense que Delphifr devrait se moduler un peu ( à moins que se soit un fief du propriétaire extrême, j'espère que ce n'est pas le cas ) pour proposer une catégorie Lazarus en attendant que la compatibilité de Lazarus avec Delphi soit accrue ;)

Delphi désigne le RAD ou le langage? Ou les deux?
snakehill
Messages postés
39
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2008
-
ReBonjour,
Alors oui, niveau ergonomie du code c'est sûr que l'on peut faire mieu , de loin , et encore si Charles n'avait pas fait le ménage , ç'aurait été pire avec tout fait en une unité xD ...

* FCanvas : TCanvas = pourquoi je n'y ai pas pensé avant xD En tout cas merci pour l'astuce :)
* Je ne sais pas pourquoi, mais ce sont les else qui sont fâchés avec Lazarus -_- c'es pour celà que je n'en utilises pas >_<
* les multiples définitions de types sont dûes au fait que la personne qui a réorganisé le code n'était pas totalement à l'aise avec le premier jet de code que j'avais balancé ... :S

* Je ne vois pas l'utilité de faire de TBriquier , TBonuss et TBalles des classes ... Etant donné que le nombre max de balles est fixé de même pour les bonus ainsi que pour les briques .
Il aurait été certes plus judicieux pour la gestion des balles de faire une Pile de pointeurs , mais sur le coup j'ai opté pour la solution de facilité (mea culpa)

Voilou :)
WhiteHippo
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
-
SnakeHill, le fait de dire "je suis sans doutes un débutant en Delphi... " était une boutade.... ;P

Je n'ai rien contre Lazarus, mais je pense à la majorité des membres.
Personnellement, je n'ai pas beaucoup de temps disponible, j'essaye donc de l'optimiser lorsque j'interviens sur le site.
Un code non compilable directement à tendance à me gener. Pourquoi ? Non pas que j'ouvre betement chacun des projets, mais je prefere garder mon temps pour l'analyse de ceux ci.
Je teste presque toujours au préalable les améliorations et/ou les solutions que je propose. Donc, si je devais, en plus, passer du temps à rendre les codes compilables, ... :(

Voici, quelques remarques sur ton code :

* Déjà dans le découpage des unités de ton programme. Une réorganisation de celles-ci s'impose.
C'est uniquement la fiche principale qui devrait utiliser les autres unités et non l'inverse.

Le TElement par exemple classe parente de TJoueur, TBall, TBonus, ... devrait être définie dans une unité à part, appelée par UPlayer, UBall, UBonus,...

La dépendance vient également du fait que tu utilises Form1.PaintBox1.Canvas dans ces mêmes unités. Il serait plus judicieux d'utiliser par exemple un "FCanvas : TCanvas" définie dans la classe commune à tous, c'est à dire TElement, FCanvas qui sera initialisée au moment de la création de l'objet. Tu peux également le passer en paramètre à tes "Draw" et "Redraw".

* T'es faché avec le "else" ? J'ai beau regardé, ben non j'en vois pas :)
Par exemple dans TBalle.Redraw :

if Balle[id].Boolclick=FALSE then
Begin
x_n:=trunc(joueur.fx+joueur.fwidth/2);
y_n:=trunc(joueur.fy-Balle[id].fheight);
End;
if Balle[id].Boolclick=TRUE then
Begin
x_n:=Balle[id].fx+Balle[id].fVx;
y_n:=Balle[id].fy+Balle[id].fVy;
End;

Comme tu l'as écrit, tu fais deux fois le même test. Une fois pour voir si il est vrai, une fois pour voir si il est faux. C'est soit l'un soit l'autre...
Ecrit ainsi, cela serait beaucoup plus propre :

if ( not Balle[id].Boolclick ) then
Begin
x_n:=trunc(joueur.fx+joueur.fwidth/2);
y_n:=trunc(joueur.fy-Balle[id].fheight);
End else
Begin
x_n:=Balle[id].fx+Balle[id].fVx;
y_n:=Balle[id].fy+Balle[id].fVy;
End;

Il existe pleins d'endroits comme celui ci (TBonus.bonustaille,TJoueur.collision_ball,...)

* La constante Maxballes devrait être définie dans UBall et MaxLignes dans UBrick.

* Le type tableau = array [1..MaxLignes,1..10] of char; est défini à deux endroits UPrincipale et UBrick, une fois de trop dans UPrincipale. D'ailleurs une constante à la place du 10 serait préférable.

* De même, pourquoi TBriquier est redéfini dans UBall ???

* TBriquier, TBonuss, TBalles gagneraient à être définies en tant que classes plutôt que des tableaux statiques.

Bon, je vais arrêter là pour l'instant, juste par manque de temps ;P

P.S. Je ne peux pas juger de l'ergonomie, ni du résultat final, faute de pouvoir le tester, mais ça viendra.

Cordialement.
snakehill
Messages postés
39
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2008
-
@ WhiteHippo :
Ok , je suis ouvert à toutes les remarques ^^

P.S. : le pourquoi de l'utilisation de Lazarus est que notre école (L'INSA) prone l'open source , donc l'utilisation de Lazarus , notre centre informatique ne possede que Lazarus sur ses postes, et le cahier des charges de notre projet était :
"[..] Un jeu de Grilles compilable sur les postes du centre informatique , et codé dans l'environnement Lazarus"

Voilou ! sinon bonne journe a tous ! :)

P.P.S. : je suis débutant aussi xD
WhiteHippo
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
-
SnakeHill, je suis sans doutes un débutant en Delphi... Le souci, c'est que ton code n'est pas facilement adaptable (le simple fait de créer une fiche ne solutionne en rien le problème).

P.S. Quand j'aurais plus de temps à disposition (j'espère dans la soirée), je posterais mes remarques liées au code.

Cordialement.
Caribensila
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13 -
...Au début, j'l'trouvais sympa...

Mais qu'au début! ;)
snakehill
Messages postés
39
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2008
-
Euh ... Que je sache le language Utilisé dans Lazarus est le Delphi , je ne crois pas que dans Cppfr ils refusent les source codées sous borland et n'acceptent que celles codées sous VCpp xD ...

Enfin , certes la majorité utilise le logiciel de programmation Delphi , mais il ne faut pas oublier que Delphi reste un langage quelquesoit la plateforme utilisée pour coder ...

Après c'est sûr que je peux vous donner quelques indications en plus pour arriver à porter mon code lazarus sous delphi , mais je pense qu'il vaut mieux lire le code attentivement et voir les objets utilisés , et réfléchir plutot que d'ouvrir bêtement un fichier projet et compiler :p

Sinon , pour ceux qui ne veulent pas se casser la tête :
Dans le form il faut :
- Un TTimer qui sappelle Timer1
- Un TPaintBox qui sappelle PaintBox1
- La form s'appelle Form1.
- Pour le menu il ya new_game , MenuItem1 et MenuItem2 ...
Voilà a vous de créer votre fichier ressource ^^ sur ce , bonne nuit ! :)
WhiteHippo
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
-
Je voudrais pas faire le rabat-joie, mais .... ;P
Nous sommes sur DelphiFr et donc sur un site où sont proposées des sources compilables, ou au minimum éditables, avec Delphi, ce qui n'est pas le cas ici (Pas facile d'ouvrir un .lfm ;).
Ton travail n'est pas directement exploitable, malheureusement :(, par la majorité des membres. C'est pourquoi, je me demande si ce site est vraiment la place pour une source développée en FreePascal/Lazarus ? Dans une section spécifique, peut être ?

Cordialement.
Albedo039
Messages postés
18
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
31 janvier 2008
-
@snakehill:
Hmmm... le principe d'utilisation de InvalidateRect est que tu peux :
1) redessiner "tout" mais
2) actualiser uniquement une certaine partie de l'écran

En fait, "redessiner" est seulement une opération "logique" en préparation d'un refresh complet alors que le rafraichissement physique "manuel" se contente lui d'une portion de l'écran.

De plus, tu peux aussi dire au canvas qu'il "clippe" les actions de dessin (par draw entre autre) c.a.d. tu redéfinis "logiquement" tout le canvas mais "physiquement" seulement une partie.
En gros:
-> instruire le canvas de clipper une petite partie de la planche à dessin.
-> dessiner sur tout le canvas, sans se soucier de la partie concernée.

Je l'avoue, les techniques de type "InvalidateRect" ne sont pas faciles à mettre en oeuvre... mais elles sont très efficaces :)
snakehill
Messages postés
39
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2008
-
@ ALBEDO039 :
Je m'étais déjà renseigné au sujet du scintillement .
On m'avait déjà proposé cette solution , mais elle ne fonctionne pa pour moi , car , si tu regardes bien le code, j'ai un PaintBox1.Canvas.Draw(0,0,Fond); (Fond étant une image de 800*600 ... ce qui fait qu'elle se redessine toujours par dessus.
Albedo039
Messages postés
18
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
31 janvier 2008
-
Pour réduire le scintillement, utilise la fonction "windows.InvalidateRect(...)".
Il y a aussi une fonction qui fait le contraire c.a.d. qui exclue la partie inchangée du rafraichissement... "ValidateRect(...)".
snakehill
Messages postés
39
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2008
-
si ce n'est que ça ... tant que ce n'est pas plus dur qu'un système dont il faut étudier la cinématique ... -_- ... avec le Pitching/ Rolling et tout ce qui touche aux équations de contraintes T_T ...

H.S. ... H.S. ...
Caribensila
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13 -
Héhéhé
Tu verras, c'est pas plus dur que les torseurs lol
snakehill
Messages postés
39
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2008
-
Oh la classe !
c'est ce qu'il me fallait !! ^^
Je finis de réviser mon partiel de mécanique et je m'y mets :p
Caribensila
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13 -
Bein, l'aide de Delphi est généralement bien foutue...
On y trouve ça aussi: lol

"Cet exemple crée une région et la sélectionne comme rectangle pour le canevas du composant Image.Il définit ensuite la couleur du pinceau du canevas en rouge et appelle FillRecten utilisant ClipRectcomme zone àremplir.Enfin,ClipRect est redéfini àla valeur originale qu'il contenait en appelant SelectClipRectavec nilcomme deuxième paramètre et supprime la région."

procedureForm1.Button1Click(Sender:TObject);
var

MyRgn:HRGN ;

begin

MyRgn :=CreateRectRgn(100,100,200,200);
SelectClipRgn(Image1.Canvas.Handle,MyRgn);
Image1.Canvas.Brush.Color :=clRed;
Image1.Canvas.FillRect(Image1.Canvas.ClipRect);
Image1.Invalidate;
SelectClipRgn(Image1.Canvas.Handle,nil);
DeleteObject(MyRgn);

end;
snakehill
Messages postés
39
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2008
-
@ Caribensila
Oh Merci ! :)
J'ai bien trouvé ClipRect dans le PaintBox1.Canvas mais le prob est que je ne vois pas comment utiliser cette propriété o_Ô

Syntaxe ?

Merci en tout cas pour l'info ! :)
Caribensila
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13 -
@ snakehill
Extrait de l'aide Delphi: ;)

ClipRect,propriété(TCanvas)
Utilisez la propriétéClipRect pour déterminer oùle canevas a besoin d'être redessiné.ClipRect délimite la zone de dessin de sorte que tout dessin qui se produit àun endroit extérieur àClipRect soit rognéet ne s'affiche pas àl'écran.

Dans la gestion de l'événement OnPaint d'une fiche,la propriétéClipRect du canevas est utilisée pour spécifier le rectangle devant être redessiné.Les parties de l'image qui ne chevauchent pas le rectangle défini par ClipRect n'ont pas besoin d'être dessinées.Les routines OnPaint peuvent donc tirer profit de la valeur de la propriétéClipRect pour optimiser les réaffichages,en améliorant les performances de l'application.

@ autres
Merci, les gars.
Et on a une idée de l'avenir de Delphi?
snakehill
Messages postés
39
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
20 novembre 2008
-
Bonjour a tous ! :)
Alors je vous explique le pourquoi du scintillement ... Eh bien en fait c'est parceque tout le PaintBox est redessiné tout les 50 ms ce qui entraine une phase d'écran noire (plus ou moins longue selon la puissance des PéCés xD) .

Mon idée : ne redessiner que les parties modifiées du PaintBox , et pour celà il faut :

Stocker dans un TBitmap , la région avant le passage de la balle, bouger la balle puis, redessiner à l'ancienne position de la balle le Bitmap que l'on a stocké ... Seul petit bémol , je ne connais pas la fonction qui fait ça -_- ..

Je ne sais pas si un Type TRect peut contenir un Canvas ... Enfin , que ceux qui peuvent m'éclairer , merci : ) .

P.S : Oui c'est sous Lazarus (we love the free world ! :p) et Lazarus fonctionne parfaitement sous Vista ;)
Harvester_
Messages postés
36
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
8 juillet 2007
-
Oh non c'est mieux que ça ;)
C'est un RAD/EDI qui est fait pour rapprocher de Delphi le compilateur FreePascal ( LIBRE et multi plateforme ). Donc Lazarus est libre aussi et l'avantage c'est que la LCL ( ~VCL ) est multiplateformes ( toutes ! ) donc aucun changement de code pour passer de W32 ( je sais pas si Vista est couvert ) à un GNU/Linux ou un MAC ( en prenant des compos compatibles bien sûr ;) ) donc très peu de choses à modifier. Un petit défaut, la LCL est légèrement plus lourde.
Sinon communauté hyper active, les grands composants sont portées pour Lazarus ( GLScene DCPipher... ).
Bref que du bonheur et enfin une alternative gratuite et libre à Delphi... Voilà super HS, sinon pas encore testé le code...
Oniria
Messages postés
296
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
18 décembre 2014
2 -
Bonjour,

Pour présenter un peu lazarus à Caribensila, c'est un environement comme delphi mais entièrement gratuit. Il est encore en cours de développement mais il est très prometteur car son principal avantage est qu'il est multiplateforme (windows, linux, mac os X).
Caribensila
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13 -
Je n'arrive pas à le compiler (mais 'suis pas une référence non plus).
Et Lazarus, je n'ai jamais été présenté.
Dommage, ça semblait sympa...
japee
Messages postés
1715
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
2 décembre 2019
2 -
A compiler avec Lazarus, assurément.
Sinon en effet, qu'est-ce que ça scintille !
Sur mon pauvre ordi asthmatique, c'est limite injouable.
Vite, vite, la "petite amélioration" promise... ;-)