View Full Version : [Delphi6]Sfarfallio del canvas
Argosoft
30-09-2003, 13:31
volevo creare una specie di Paint con delphi, viene abbastanza bene, ma c'è un difetto molto fastidioso... quando per esempio, OnMouseMove, se il tasto destro del mouse è schiacciato, Image1.Canvas.LineTo(x,y); viene disegnata una linea, ma nel frattempo l'immagine sfarfalla! si può evitare sta cosa e come? THANKS!
Originariamente inviato da Argosoft
volevo creare una specie di Paint con delphi, viene abbastanza bene, ma c'è un difetto molto fastidioso... quando per esempio, OnMouseMove, se il tasto destro del mouse è schiacciato, Image1.Canvas.LineTo(x,y); viene disegnata una linea, ma nel frattempo l'immagine sfarfalla! si può evitare sta cosa e come? THANKS!
Non ho capito, come sfarfalla? P
Argosoft
30-09-2003, 20:04
eh... pork, non posso nemmeno postare un esempio... pork va bè reinstallo Delphi e torno :)
Argosoft
30-09-2003, 20:27
mannaggia! Delphi su questo computer non funziona, e l'altro è fuori uso! :nera: devo scrivere il codice qui :( ...
allora:
1) metto una TImage e con Canvas.Rectangle la riempio di bianco;
2) OnMouseDown: Canvas.MoveTo(X,Y)
3) OnMouseMove: if mbLeft in Shift then Canvas.LineTo(X,Y)
se provi a disegnare sulla Image vedrai che.... ffrfrfffrrfrrr! :muro:
raga se riuscite a risolvermi questo problema vi includo negli Special Thanks del prossimo programma di grafica che rilascio :D
Originariamente inviato da Argosoft
mannaggia! Delphi su questo computer non funziona, e l'altro è fuori uso! :nera: devo scrivere il codice qui :( ...
allora:
1) metto una TImage e con Canvas.Rectangle la riempio di bianco;
2) OnMouseDown: Canvas.MoveTo(X,Y)
3) OnMouseMove: if mbLeft in Shift then Canvas.LineTo(X,Y)
se provi a disegnare sulla Image vedrai che.... ffrfrfffrrfrrr! :muro:
raga se riuscite a risolvermi questo problema vi includo negli Special Thanks del prossimo programma di grafica che rilascio :D
Purtroppo al momento neanche io ho installato Delphi (ho superato l'esame pochi giorni fa e per festeggiare ho formattato la partizione con windows), hai provato a fare il disegno su una PaintBox ?
Prova con il componente TPaintBox.
Ciao
Argosoft
30-09-2003, 20:35
o_O
hmmm!
se funziona ti sposo :sofico:
e naturalmente ti includerò negli Special Thanks :D
Originariamente inviato da Argosoft
o_O
hmmm!
se funziona ti sposo :sofico:
e naturalmente ti includerò negli Special Thanks :D
Prova a dare un'occhiata a questo codice (by la mia prof. di Laboratorio di Delphi), magari ti può servire.
http://www.cs.unipa.it/dl/materie/labprog/15_05/disegna.zip
Ciao
Il fenomeno che tu chiami sfarfallio si chiama "flicker". :D
Un fenomeno tipico dovuto alla complessa gestione di windows del messaggio WM_PAINT.
Si può ridurre o risolvere in modi diversi.Per esempio nei controlli Borland
TPaintBox si può aggiungere csOpaque al ControlStyle della PaintBox.
in c++ si fa così
PaintBox1->ControlStyle = PaintBox1->ControlStyle << csOpaque;
quindi ti basta tradurre in delfi l'operatore di bit < <
Cioè tutto viene disegnato in background fino a quando non ha finito e poi ti fa vedere tutto in una botta.Tè Capì? :)
Altra soluzione :trovare un componente TPaint box che gestisce il tutto automaticamente (perchè la soluzione sopra non è delle migliori)
http://www.ciemmesoft.com/
Argosoft
01-10-2003, 13:44
Thankssss!!!!! SIIIIII ho risolto con il PaintBox!
quindi ti basta tradurre in delfi l'operatore di bit < <
humm.... per caso è shl() o qualcosa di simile? hmm, mi pare di ricordarmelo...
OK Grazie a tutti e 2!! :mano: :cincin:
Di Niente :)
Se vuoi il Paint-box flicker-free eccolo.
Originariamente inviato da Argosoft
Thankssss!!!!! SIIIIII ho risolto con il PaintBox!
humm.... per caso è shl() o qualcosa di simile? hmm, mi pare di ricordarmelo...
OK Grazie a tutti e 2!! :mano: :cincin:
De nada
:D
Puoi dare un'occhiata al sito http://www.g32.org/ dove sono disponibili dei componenti di Delphi potenziati non di poco, sono un'ottima scelta, se hai intenzione di fare un pò di grafica con Delphi.
Dai un'occhiatina ai sorgenti dei bei esempi proposti.
Ciao
Argosoft
01-10-2003, 20:46
Originariamente inviato da gokan
http://www.g32.org/
:eek: cazzarola! superthanks!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.