begin process at 2010 02 10 06:06:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Graphique

 > 

probleme rafrèchissement


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme rafrèchissement

mardi 11 janvier 2005 à 23:08:02 | probleme rafrèchissement

damomospike

tout d'abord bonjour à tous!

voila, j'essaye de faire un petit programme pour "dessiner" comme sous paint pour ensuite l'intégrer dans un autre programe.

le programe marche mais lorsque que je dessine sur un Timage pas directement sur la form, des espèce de lignes parasites apparaissent lorsque ma suiris bouge (lorsque je dessine) comme si il y avait un probleme de rafraichisment.

mon code est:
procedure TForm1.i1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
form1.i1.Canvas.LineTo(p1.X-form1.Left-1.left-5,p1.Y-form1.Top-i1.top-30);
end;
(le code n'est pas entier, p1 est un Tpoint et i1 et un Timage)

que dois-je faire pour supprimer ce probleme de lignes (de la couleur de la form)
(escusez moi pour ces informations mal exprimées).

merci beau

mercredi 12 janvier 2005 à 09:24:18 | Re : probleme rafrèchissement

sim51

Membre Club
Je pense que cela vient d'une des propriétés de ton Timage. Il faut que tu mette le valeur false à la propriété incrementalDisplay (elle permet de rafraichir l'image lorsqu'une opération n'est pas terminée). J'ai eu ce problème et je l'ai réglé comme sa.
Dis moi si c'est ça, car cela peut venir d'ailleur, et j'ai d'autres idées, mais celle-ci est la plus vraissemblable.
Si cela ne vient pas de là peut tu donner le code en entier de ta procédure.
Allez bon courage !!!


mercredi 12 janvier 2005 à 12:54:56 | Re : probleme rafrèchissement

damomospike

j'ai essayé et ce n'est pas cela :-/
voici mon code (la partie traitant l'image)

var
  Form1: TForm1;
 p1 :Tpoint;
 pact: boolean;
 text: integer;

procedure TForm1.FormActivate(Sender: TObject);
begin
form1.i1.Canvas.Pen.Width := 10;
end;

procedure TForm1.i1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
pact := false;
end;

procedure TForm1.i1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
getcursorpos(p1);
pact := true;
form1.i1.Canvas.MoveTo(p1.X-form1.Left-i1.left-5,p1.Y-form1.Top-i1.top-30);
end;

procedure TForm1.i1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if pact = true  then begin
form1.i1.Canvas.LineTo(p1.X-form1.Left-i1.Left-5,p1.Y-form1.Top-i1.Top-30);
getcursorpos(p1);
 end;
end;


de plus je but sur un truc tout con: pour n'importe quel canvas, une fois que l'on a utilisé une fonction comme LineTo, comment fait ton pour retrouver un canvas vierge, tou effacer en gros?.

merci

mercredi 12 janvier 2005 à 17:07:25 | effacement

sim51

Membre Club
tiens voilà pour l'effacement de ton canvas

Canvas.brush.color:=ClWhite;
Canvas.FillRect(rect(0,0,Width,Height))

ou width et height sont les ceux de ton timage

mercredi 12 janvier 2005 à 18:54:39 | Re : probleme rafraichissement

sim51

Membre Club
En fait ton problème vient du rafraichissement automatique du Timage qui s'opère des qu'un pixel est changé. D'où cet effet de scintillement de ton image. Donc deux possibilité s'offre à toi :
- Soit utilisé la source qui suit : http://www.delphifr.com/code.aspx?ID=24123 qui te permet de créer un Timage avec un rafraichissement "manuel" en appelant la procedure image.canvas.repaint.
-Soit de faire toute tes modification sur le canvas d'un Tbitmap puis de recopier le canvas du Tbitmap sur celui de ton Timage.
Voilà, maintenant amuse toi bien et dis moi si cela fonctionne


lundi 24 janvier 2005 à 00:00:48 | Re : probleme rafrèchissement

TkILLA

Salut,

a propos de la remarque de Sim51 : j'utilise un buffer Tbitmap pour dessiner, mais le rafraichissement n'est pas assez rapide :

Au premier clic, je stocke les coordonnées de mon point de départ.
OnMouseMove : j'efface le buffer, je dessine la ligne de mon point de départ jusqu'à la position du curseur de la souris, puis je copie le buffer dans mon Timage. Image1.draw(0,0,buffer);

et au deuxième clic je trace mon trait.

Mon probleme est que le rafraichissement n'est pas assez rapide, ca fait comme la trainée du curseur dans windows ..

quelqu'un a til une idée pour palier ce probleme?



Cette discussion est classée dans : probleme, p1, programe, i1, rafrèchissement


Répondre à ce message

Sujets en rapport avec ce message

urgence probleme recordcount [ par youhibadelphi ] Salut tlm J'ai besoin de votre aide <p probleme min max [ par youhibadelphi ] UN GRAND BONJOUR POUR TLM Besoin d'aide <p class="MsoNormal" probleme de composant delphi [ par diabloa ] salut a tous j'ai un problème avec une application une erreur me demande d'installer QFileCtrs.dcu et QFileCtrs.pas le même message pour ExcelXP.pas Probleme d'execution [ par lyoko17 ] Voila, je n'arrive pas a trouvé l'erreur de ce code var i : integer; begin for i := 0 to checklistbox1.items.Count-1 do begin if probleme alias [ par dehmoune81 ] salut tout le monde je suis debutont on delphi je fait une petite application et je prepare le setup avec installshield mais qu'on je l'installer s [Déplacé VBS --> VBA] probleme de formule sur excel [ par ericpivo ] Bonjour à tous, je voudrais faire une formule de calcul qui me permettrai de gérer le conditionnement de mon stock, c a d, sur une feuille excel, je v Microsoft voice SAM [ par Pris1000 ] Bonjour à tous, Merci à celui pourrait m'éclairer sur le probleme suivant : j'ai une application qui utilise la voix "Microsoft SAM" avec le morceau impossible que mon service fasse un logoff sur le systeme. [ par Pris1000 ] Bonjour, Merci aux gouroux Microsoft de bien aider un programmeur du Dimanche. j'ai utlisé Delphi 2009 pour creer un service sous Vista qui utilise


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,203 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales