SÉLECTIONNNER, DÉPLACER, ÉTIRER DES LIGNES DANS UN CANVAS.
florenth
-
10 août 2006 à 16:13
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
22 juil. 2008 à 17:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 22 juil. 2008 à 17:46
@Cari et Mauricio :
Et c'est tellement vrai !
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 22 juil. 2008 à 12:30
Même si on poste pas de commentaires, on suit la conversation et l' évolution des sources ^^
"les débutants ayant une fâcheuse inclination à poster leurs questions sur le forum au 1er contre-temps, de nos jours" Je pense que l' ajout de questions sur le forum devrait être bloqué de temps en temps pour obliger les membres à penser par eu même au lieu de poser une question pour chaque ligne de leur code. Pour certains, on arrive presque à refaire leur projet rien qu' en regroupant les réponses à leurs questions.
Surtout que c' est en cherchant que l' on trouve des réponses ... sur d' autres sujets lol
A+ et bonnes vacances à tous!!!
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 22 juil. 2008 à 12:10
C'est exact, Cantador.
Mais, sans prétendre que cela était voulu, pour cette démo c'est pas trop grave je pense.
En tout cas je suis heureux de constater qu'il y a encore des gens qui cherchent et deterrent de vieux sources. Et pas un débutant ( les débutants ayant une fâcheuse inclination à poster leurs questions sur le forum au 1er contre-temps, de nos jours ;) !
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 20 juil. 2008 à 14:38
@cari :
il manque Randomize (juste en début de create),
pour que à l'ouverture les lignes s'affichent aléatoirement.
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 13 août 2006 à 16:50
Oui, je m'en souviens... c'était sur un code de Grandvizir il me semble.
En fait, il suffirait d'introduire un paramètre variable correspondant à la date de passage Julien->Grégorien, à charge à l'utilisateur de connaître cette date, sinon date officielle...
Cirec> m'en rappelle plus, j'avais un mal de tête carabiné au réveil, lol !
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 13 août 2006 à 16:45
Ouais, un vrai casse-tête!
Il y a un décalage temporel couplé à un décalage géographique (tu te souviens de notre discussion, Japee?).
Si ton code résoud tous ces problèmes, il faudrait le publier! lol
Mais c'est un sacré boulot d'historien-géographe...
Alors ?
Le monsieur vous demande :
Que faisiez-vous dans la nuit du 5 au 14 octobre 1582? ;)
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 13 août 2006 à 16:36
Tout à fait, Caribensila.
J'ai même en réserve un code basé sur le calendrier perpétuel Moret afin de déterminer le jour de la semaine en fonction de la date, tenant compte effectivement de la nuit du 5 au 14, lol ;-)
Mais je ne suis pas sûr que ce travail soit très intéressant, c'est plutôt un exercice de programmation, quoique...
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 13 août 2006 à 16:29
"je pense revenir un jour à ma motivation initiale"
Je comprends mieux ta connaissance poussée des problèmes de dates grégoriennes et de dates juliennes... :)
Que faisiez-vous dans la nuit du 5 au 14 octobre 1582? ;)
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 13 août 2006 à 16:16
Mais ce que je voulais dire, surtout : c'est vrai que beaucoup de logiciels nécessitent un apprentissage, un formatage made in Microsoft pour tout dire, et qu'il me parait intéressant d'envisager une approche plus intuitive et plus ergonomique des dits logiciels. Ce que tu sembles envisager.
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 13 août 2006 à 16:11
"Quelque chose comme un générateur d'arbre généalogique..."
Marrant, c'est le prix dissuasif des logiciels "sérieux" de généalogie qui m'a, entre autres choses, amené à la programmation. Mais je me suis un peu perdu en route je crois, même si je pense revenir un jour à ma motivation initiale...
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 13 août 2006 à 15:43
--> Florenth Ce n'est pas un éditeur de formes que je cherche à faire. Ce serait plutôt un exemple montrant comment mettre en relation de dépendance diverses entités de façon ergonomique et intuitive. Quelque chose comme un générateur d'arbre généalogique ou un éditeur de plan pour un rapport écrit... Je cherche une idée qui apporterait quelque chose de nouveau et pas seulement une ressucée de ce code. J'attends l'inspiration... :)
@ Japee : Merci pour cette précision.
Tu te souviens des dialogues et des noms de personnages ?
Wouaou ... je me rappel bien du film mais c'est tout.
Bravo belle culture.
Il est vrai qu'Audiard ce sont des dialogues à part, ce langage fleuri sans jamais être vulgaire ni même ridicule nous laisse de bons souvenirs. Dommage qu'il n'y ait pas de relève.
@ Florenth : Ben on a pas de grande différence à part le HT désactivé.
J'ai autant de ram que toi et ma carte vidéo est moins bonne que la tienne
(Il me semble Ati pro 9200 128DDR 400Mhz AGP8) F0xi dirait c'est une daube :-)
Tu as désactivé le HT pour des raisons de compatibilités avec certaines applications ? (The Gimp par Ex.)
Je ne vois pas autre chose c'est quand même pas la petite différence de fréquence (2.8 à 3.0 Ghz) qui vont faire clignoter ta fiche !
Pour le bug, oui, c'est admirablement bien trouvé. En fait, tout le monde sait qu'il n'existe pas d'équation réduite pour une droite verticale (seulement cartésienne) mais je n'y a ait pas pensé en lisant le code.
C'est vrai que Cirec à l'oeil. Et comme il dit, vu que c'est bien commenté, ça facilite drolement la tâche.
@Caribensila : alors, c'est quoi ton exemple ? Je sens d'ici soit un éditeur de formes avec sauvegarde dans un fichier binaire, soit ... autre chose !
@Cirec: J'ai un P4 2.8 GHz (HT désactivé), 512 Mo de RAM et une GeForce4 4600. C'est quand même étrange qu'une simple opération graphique de ce genre fasse clignoter la fiche
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 12 août 2006 à 08:39
Citation approximative de Raoul Boltoni (Bernard Blier) dans "Les tontons flingueurs", film savoureux dialogué par l'immense Michel Audiard :
"je vais lui montrer qui c'est, Raoul, au gugusse de Montauban..." etc...
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 12 août 2006 à 02:10
Ça y est elles ont pétées ... mes chevilles ... et y en a partout ? mdr
Merci beaucoup mais comme dit c'est parfois plus facile pour moi de corriger que de créer.
et en plus ça me fait plaisir et j'apprend toujours un peut plus comme ça !
"J'espère pouvoir vous montrer un exemple bientôt"
Bonne continuation pour la suite :-)
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 12 août 2006 à 01:56
'tain! Ce Cirec!
Comme dit Japee, quel oeil de lynx!
...J'étais en train de me dire, tranquille, que "A" devait se balader vers l'infini... Et Cirec nous donne le code tout corrigé!!!
Si on pouvait te donner une note, Cirec, ce serait 10/10 et le premier prix de gentillesse, en prime! :)
"Rien n'échappe à ton oeil de lynx, Cirec"
Arrête j'ai les chevilles qui enfles ... mdr
Moi je dirais :
- Une bonne dose de chance
- Un écran 19" TFT ( à 20 cm des yeux) ça aide à voir claire :-)
- Et surtout Caribensila qui à fait 95° du travail, repasser derrière quand le code
est bien commenté c'est beaucoup plus facile (enfin pour moi)
- Euh c'est qui Raoul ? mdr
Merci quand même ;-)
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 12 août 2006 à 01:05
Rien n'échappe à ton oeil de lynx, Cirec.
Et tu fonds sur le bug comme le rapace sur sa proie. Tu le réduis inexorablement à l'état de néant... Tu le ventiles, tu le disperses, en quelque sorte. Tu lui montres qui c'est, Raoul, quoi...
Voici ce que j'ai modifier pour que ça fonctionne.
Et dans tous les sens : :-)
j'ai laissé le code original en commentaire
function ToucheLigne(Pt, Pt1, Pt2: TPoint): Boolean;
{Détermne si Pt est proche du segment Pt1-Pt2 (fonction de Ecart).}
var
A,B,Dist : Double;
begin
//result := false; // voir plus loin ****
{Calcul des coefficients de la droite Pt1-Pt2 d'équation y = Ax+B}
if (Pt1.X - Pt2.X) = 0
then //A:= 0 à la place de A := 0 j'effectue le calcule inverse ...
Begin
A := (Pt1.X - Pt2.X) / (Pt1.Y - Pt2.Y);
B := Pt1.X - A * Pt1.Y;
{Calcul de la distance de Pt à la droite Pt1-Pt2}
Dist := Abs(Pt.X - A * Pt.Y - B) / Sqrt(1 + Sqr(A));
End
else
Begin // ... du calcule originale
A := (Pt1.Y - Pt2.Y) / (Pt1.X - Pt2.X);
B := Pt1.Y - A * Pt1.X;
{Calcul de la distance de Pt à la droite Pt1-Pt2}
Dist := Abs(Pt.Y - A * Pt.X - B) / Sqrt(1 + Sqr(A));
End;
{Vérification}
//if (Dist <= Ecart)
//and (Distance(Pt,Pt1) + Distance(Pt,Pt2) <= Dist + Distance(Pt1,Pt2))
//then result := true;
// *** on peut aussi écrir la condition comme suit ce qui évite l'initialisation
// en début de fonction : Result := False;
Result := (Dist <= Ecart)
and (Distance(Pt,Pt1) + Distance(Pt,Pt2) <= Dist + Distance(Pt1,Pt2));
end;
c'est génial (avec un effet d'ombre en plus)
j'ai décelé un petit bug
quand tu selectionnes une ligne et que tu la modifies en une ligne parfaitement verticale
(tant qu'elle est selectionnée tu peux la modifier) mais si tu la laisses dans cette position tu n'arrives plus à la selectionner pour la modifier.
A l'horizontale ça fonctionne très bien.
@ Florenth : je pense effectivement que tu as une lada (chez moi ça ne clignote pas) (P4 3Ghz HT ATI pro )
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 11 août 2006 à 13:21
Je crois que je n'échapperai pas à une initiation au calcul vectoriel. Si vous connaissez un bon tuto... ^^
PS: J'ai un PC assez récent: Pentium D 830 Dual Core 3GHz et une GeForce 6700 XL...
Les régions de Windows dis-tu ?
A oublier pour ton projet je pense. Elles ne sont bonnes que pour donner des formes particuliaires aux fiches et composants, c'est tout.
C'est bien trop lourd en mémoire et en plus, une fois créees, c'est pas évident à modifier.
Non, rien ne remplace quelques lignes de calcul vectoriel (mais non c'est pas compliqué ^^).
PS: Pas de sautillement chez toi ? Tu as une Ferrari dans ton PC ? (ou c'est moi qui ai une lada ...)
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 11 août 2006 à 12:02
Salut à tous.
--> FLORENTH Ca me semblait plus polyvalent de le faire dans un TImage. Mais tu as raison, ce serait plus logique sur la fiche. Et comme tu as expliqué comment faire...
J'oublie tj ce foutu DoubleBuffered. 'Faut dire que chez moi il n'y a pas de "sautillements". Il y en a chez vous?
--> JAPEE Tu verras qu'il n'y a rien de transcendant dans ce code. C'est vraiment pour débutant. Une bonne logique et qq notions de géométrie suffisent.
--> JFS59 & MAURICIO C'est çui qui dit qui y est! lol
Des vecteurs? 'connais pas trop... J'avais plutôt pensé utiliser les régions de Windows... à tester?
En tout cas, merci pour vos idées les gars.
cs_jfs59
Messages postés178Date d'inscriptionmardi 29 avril 2003StatutMembreDernière intervention 2 février 2010 10 août 2006 à 19:49
un bon exemple .. j'avais fait ca différemment .. reste a developper un container de vecteurs et de creer des formes vectorielles de rectangle, cercle, ellipse ou autres poligones ... et ensuite fonction copier coller ... impression sauvegarde etc ...
Ca ne simplifie rien.
Il suffit juste de changer Img_Surface.Canvas par (Self.)Canvas et de mettre les evenements OnMouseDown, OnMouseMove et OnMouseUp du TImage sur ceux de la fiche. Ensuite tu enlève ton TImage.
Rien n'est compliqué !
Par contre, si tu ne veux pas que cela prenne toute la surface de la fiche, un TImage (ou TPaintBox) est plus adapté, bien sûr.
Le sol est plus facile à cirer, OK, mais à quoi ça sert si c'est du carrelage ? ^^
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 10 août 2006 à 16:44
Salut,
J'ai pas encore regardé le code, mais j'ai envie de dire à Florent :
Mais pourquoi pas, justement, dans un TImage, ça simplifie, non ?
Et puis c'est plus facile d'entretien : lignes dociles à sol facile à cirer, quoi...
J'aime beaucoup.
C'est joli, utile et pas forcément évident pour autant.
Et en plus, c'est 100% GDI : légèreté absolue niveau ressources.
Par contre, au lieu de dessiner dans un TImage, pourquoi ne pas le faire directement sur la fiche ? en appelant Redessiner() dans le OnPaint.
Un petit DoubleBuffered := True dans le OnCreate serait aussi le bienvenu.
22 juil. 2008 à 17:46
Et c'est tellement vrai !
22 juil. 2008 à 12:30
"les débutants ayant une fâcheuse inclination à poster leurs questions sur le forum au 1er contre-temps, de nos jours" Je pense que l' ajout de questions sur le forum devrait être bloqué de temps en temps pour obliger les membres à penser par eu même au lieu de poser une question pour chaque ligne de leur code. Pour certains, on arrive presque à refaire leur projet rien qu' en regroupant les réponses à leurs questions.
Surtout que c' est en cherchant que l' on trouve des réponses ... sur d' autres sujets lol
A+ et bonnes vacances à tous!!!
22 juil. 2008 à 12:10
Mais, sans prétendre que cela était voulu, pour cette démo c'est pas trop grave je pense.
En tout cas je suis heureux de constater qu'il y a encore des gens qui cherchent et deterrent de vieux sources. Et pas un débutant ( les débutants ayant une fâcheuse inclination à poster leurs questions sur le forum au 1er contre-temps, de nos jours ;) !
20 juil. 2008 à 14:38
il manque Randomize (juste en début de create),
pour que à l'ouverture les lignes s'affichent aléatoirement.
13 août 2006 à 16:50
En fait, il suffirait d'introduire un paramètre variable correspondant à la date de passage Julien->Grégorien, à charge à l'utilisateur de connaître cette date, sinon date officielle...
Cirec> m'en rappelle plus, j'avais un mal de tête carabiné au réveil, lol !
13 août 2006 à 16:45
Il y a un décalage temporel couplé à un décalage géographique (tu te souviens de notre discussion, Japee?).
Si ton code résoud tous ces problèmes, il faudrait le publier! lol
Mais c'est un sacré boulot d'historien-géographe...
13 août 2006 à 16:37
Nous avons la nuit la plus longue :-)
Alors ?
Le monsieur vous demande :
Que faisiez-vous dans la nuit du 5 au 14 octobre 1582? ;)
13 août 2006 à 16:36
J'ai même en réserve un code basé sur le calendrier perpétuel Moret afin de déterminer le jour de la semaine en fonction de la date, tenant compte effectivement de la nuit du 5 au 14, lol ;-)
Mais je ne suis pas sûr que ce travail soit très intéressant, c'est plutôt un exercice de programmation, quoique...
13 août 2006 à 16:29
Je comprends mieux ta connaissance poussée des problèmes de dates grégoriennes et de dates juliennes... :)
Que faisiez-vous dans la nuit du 5 au 14 octobre 1582? ;)
13 août 2006 à 16:16
13 août 2006 à 16:11
Marrant, c'est le prix dissuasif des logiciels "sérieux" de généalogie qui m'a, entre autres choses, amené à la programmation. Mais je me suis un peu perdu en route je crois, même si je pense revenir un jour à ma motivation initiale...
13 août 2006 à 15:43
12 août 2006 à 14:14
Tu te souviens des dialogues et des noms de personnages ?
Wouaou ... je me rappel bien du film mais c'est tout.
Bravo belle culture.
Il est vrai qu'Audiard ce sont des dialogues à part, ce langage fleuri sans jamais être vulgaire ni même ridicule nous laisse de bons souvenirs. Dommage qu'il n'y ait pas de relève.
@ Florenth : Ben on a pas de grande différence à part le HT désactivé.
J'ai autant de ram que toi et ma carte vidéo est moins bonne que la tienne
(Il me semble Ati pro 9200 128DDR 400Mhz AGP8) F0xi dirait c'est une daube :-)
Tu as désactivé le HT pour des raisons de compatibilités avec certaines applications ? (The Gimp par Ex.)
Je ne vois pas autre chose c'est quand même pas la petite différence de fréquence (2.8 à 3.0 Ghz) qui vont faire clignoter ta fiche !
12 août 2006 à 10:31
C'est vrai que Cirec à l'oeil. Et comme il dit, vu que c'est bien commenté, ça facilite drolement la tâche.
@Caribensila : alors, c'est quoi ton exemple ? Je sens d'ici soit un éditeur de formes avec sauvegarde dans un fichier binaire, soit ... autre chose !
@Cirec: J'ai un P4 2.8 GHz (HT désactivé), 512 Mo de RAM et une GeForce4 4600. C'est quand même étrange qu'une simple opération graphique de ce genre fasse clignoter la fiche
12 août 2006 à 08:39
"je vais lui montrer qui c'est, Raoul, au gugusse de Montauban..." etc...
12 août 2006 à 02:10
12 août 2006 à 02:06
Merci beaucoup mais comme dit c'est parfois plus facile pour moi de corriger que de créer.
et en plus ça me fait plaisir et j'apprend toujours un peut plus comme ça !
"J'espère pouvoir vous montrer un exemple bientôt"
Bonne continuation pour la suite :-)
12 août 2006 à 01:56
Comme dit Japee, quel oeil de lynx!
...J'étais en train de me dire, tranquille, que "A" devait se balader vers l'infini... Et Cirec nous donne le code tout corrigé!!!
Si on pouvait te donner une note, Cirec, ce serait 10/10 et le premier prix de gentillesse, en prime! :)
Merci!
12 août 2006 à 01:56
Arrête j'ai les chevilles qui enfles ... mdr
Moi je dirais :
- Une bonne dose de chance
- Un écran 19" TFT ( à 20 cm des yeux) ça aide à voir claire :-)
- Et surtout Caribensila qui à fait 95° du travail, repasser derrière quand le code
est bien commenté c'est beaucoup plus facile (enfin pour moi)
- Euh c'est qui Raoul ? mdr
Merci quand même ;-)
12 août 2006 à 01:05
Et tu fonds sur le bug comme le rapace sur sa proie. Tu le réduis inexorablement à l'état de néant... Tu le ventiles, tu le disperses, en quelque sorte. Tu lui montres qui c'est, Raoul, quoi...
Bien vu. ;-)
12 août 2006 à 00:54
Et dans tous les sens : :-)
j'ai laissé le code original en commentaire
function ToucheLigne(Pt, Pt1, Pt2: TPoint): Boolean;
{Détermne si Pt est proche du segment Pt1-Pt2 (fonction de Ecart).}
var
A,B,Dist : Double;
begin
//result := false; // voir plus loin ****
{Calcul des coefficients de la droite Pt1-Pt2 d'équation y = Ax+B}
if (Pt1.X - Pt2.X) = 0
then //A:= 0 à la place de A := 0 j'effectue le calcule inverse ...
Begin
A := (Pt1.X - Pt2.X) / (Pt1.Y - Pt2.Y);
B := Pt1.X - A * Pt1.Y;
{Calcul de la distance de Pt à la droite Pt1-Pt2}
Dist := Abs(Pt.X - A * Pt.Y - B) / Sqrt(1 + Sqr(A));
End
else
Begin // ... du calcule originale
A := (Pt1.Y - Pt2.Y) / (Pt1.X - Pt2.X);
B := Pt1.Y - A * Pt1.X;
{Calcul de la distance de Pt à la droite Pt1-Pt2}
Dist := Abs(Pt.Y - A * Pt.X - B) / Sqrt(1 + Sqr(A));
End;
{Vérification}
//if (Dist <= Ecart)
//and (Distance(Pt,Pt1) + Distance(Pt,Pt2) <= Dist + Distance(Pt1,Pt2))
//then result := true;
// *** on peut aussi écrir la condition comme suit ce qui évite l'initialisation
// en début de fonction : Result := False;
Result := (Dist <= Ecart)
and (Distance(Pt,Pt1) + Distance(Pt,Pt2) <= Dist + Distance(Pt1,Pt2));
end;
Voilà c'est tout
@+
Cirec
12 août 2006 à 00:15
je vais regarder le code d'un peut plus près ...
@+
Cirec
12 août 2006 à 00:06
c'est génial (avec un effet d'ombre en plus)
j'ai décelé un petit bug
quand tu selectionnes une ligne et que tu la modifies en une ligne parfaitement verticale
(tant qu'elle est selectionnée tu peux la modifier) mais si tu la laisses dans cette position tu n'arrives plus à la selectionner pour la modifier.
A l'horizontale ça fonctionne très bien.
@ Florenth : je pense effectivement que tu as une lada (chez moi ça ne clignote pas) (P4 3Ghz HT ATI pro )
11 août 2006 à 13:21
PS: J'ai un PC assez récent: Pentium D 830 Dual Core 3GHz et une GeForce 6700 XL...
11 août 2006 à 12:15
A oublier pour ton projet je pense. Elles ne sont bonnes que pour donner des formes particuliaires aux fiches et composants, c'est tout.
C'est bien trop lourd en mémoire et en plus, une fois créees, c'est pas évident à modifier.
Non, rien ne remplace quelques lignes de calcul vectoriel (mais non c'est pas compliqué ^^).
PS: Pas de sautillement chez toi ? Tu as une Ferrari dans ton PC ? (ou c'est moi qui ai une lada ...)
11 août 2006 à 12:02
--> FLORENTH Ca me semblait plus polyvalent de le faire dans un TImage. Mais tu as raison, ce serait plus logique sur la fiche. Et comme tu as expliqué comment faire...
J'oublie tj ce foutu DoubleBuffered. 'Faut dire que chez moi il n'y a pas de "sautillements". Il y en a chez vous?
--> JAPEE Tu verras qu'il n'y a rien de transcendant dans ce code. C'est vraiment pour débutant. Une bonne logique et qq notions de géométrie suffisent.
--> JFS59 & MAURICIO C'est çui qui dit qui y est! lol
Des vecteurs? 'connais pas trop... J'avais plutôt pensé utiliser les régions de Windows... à tester?
En tout cas, merci pour vos idées les gars.
10 août 2006 à 19:49
c'est un bon début ...
10 août 2006 à 17:16
Il suffit juste de changer Img_Surface.Canvas par (Self.)Canvas et de mettre les evenements OnMouseDown, OnMouseMove et OnMouseUp du TImage sur ceux de la fiche. Ensuite tu enlève ton TImage.
Rien n'est compliqué !
Par contre, si tu ne veux pas que cela prenne toute la surface de la fiche, un TImage (ou TPaintBox) est plus adapté, bien sûr.
Le sol est plus facile à cirer, OK, mais à quoi ça sert si c'est du carrelage ? ^^
10 août 2006 à 16:44
J'ai pas encore regardé le code, mais j'ai envie de dire à Florent :
Mais pourquoi pas, justement, dans un TImage, ça simplifie, non ?
Et puis c'est plus facile d'entretien : lignes dociles à sol facile à cirer, quoi...
10 août 2006 à 16:13
C'est joli, utile et pas forcément évident pour autant.
Et en plus, c'est 100% GDI : légèreté absolue niveau ressources.
Par contre, au lieu de dessiner dans un TImage, pourquoi ne pas le faire directement sur la fiche ? en appelant Redessiner() dans le OnPaint.
Un petit DoubleBuffered := True dans le OnCreate serait aussi le bienvenu.