Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-03-2012
Suriu Suriu is offline
Miembro
 
Registrado: abr 2007
Posts: 48
Poder: 0
Suriu Va por buen camino
Question Ayuda con este problema

Hola, estoy creando una aplicacion que realiza algo paresido al pincel en el paint, pero utilizando la propiedad canvas de in TImagen. E estado mirando por hay y ya he hecho algo parecido.

El TImagen es de color predeterminado ( Blanco ) y sobre este pinto una linea de estilo libre mediante canvas.Pen, la cual pongo en blanco mediante el evento OnCreate del Form; y en megro mediante un Timer la propiedad Interval en 1000 , para que al acabar el tiempo lanse un evento mediante el OnTimer que cambie el canvas.Pen a negro.

Hasta aqui todo bien el problema es que al hacer clik en el TImagen me enpiesa a pintar en blanco y trascurrodo el tiempo es que empiesa a pintar en negro. Este es el problema " como diminuir el tiempo para cambiar de un color a otro de forma que paresca instantaneo ". La otra pregunta seria " Como hacerlo sin el Timer".

Codigo:

Código Delphi [-]
unit Unit2; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, jpeg, Buttons,ExtCtrls, ShellAPI, TypInfo; 
       
type 
  TForm2 = class(TForm) 
    Image11: TImage; 
    Timer1: TTimer; 
    procedure Image11MouseDown(Sender: TObject; Button: TMouseButton; 
      Shift: TShiftState; X, Y: Integer); 
    procedure Image11MouseMove(Sender: TObject; Shift: TShiftState; X, 
      Y: Integer); 
    procedure Image11MouseUp(Sender: TObject; Button: TMouseButton; 
      Shift: TShiftState; X, Y: Integer); 
    procedure FormCreate(Sender: TObject); 
    procedure Timer1Timer(Sender: TObject); 
    procedure Image11DblClick(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
    img: TImage; 
  end; 
 
var 
  Form2: TForm2; 
 
implementation 
 
uses Unit3, Unit1; 
 
{$R *.dfm} 
 
var 
 Rect: TRect = (Left: -1); 
 z,c: integer; 
 hola : boolean; 
  
procedure TForm2.Image11MouseDown(Sender: TObject; Button: TMouseButton; 
  Shift: TShiftState; X, Y: Integer); 
begin 
  if Button = mbLeft then 
  Rect.TopLeft := Point(X,Y); 
  Rect.BottomRight := Point(X, Y); 
  hola := true; 
  Timer1.Enabled := true; 
end; 
 
procedure TForm2.Image11MouseMove(Sender: TObject; Shift: TShiftState; X, 
  Y: Integer); 
begin 
  if Rect.Left > -1 then 
   Rect.TopLeft := Point(X,Y); 
   z := x; 
   c := y; 
   if hola then 
    Image11.Canvas.LineTo(x,y); 
end; 
 
procedure TForm2.Image11MouseUp(Sender: TObject; Button: TMouseButton; 
  Shift: TShiftState; X, Y: Integer); 
begin 
  if Button = mbLeft then 
   Rect.Left := -1; 
   hola := false; 
   Image11.Canvas.Pen.Color := clWhite; 
end; 
 
procedure TForm2.FormCreate(Sender: TObject); 
begin 
  Image11.Canvas.Pen.Color := clWhite; 
end; 
 
procedure TForm2.Timer1Timer(Sender: TObject); 
begin 
  Image11.Canvas.Pen.Color := clBlack; 
  Timer1.Enabled := false; 
end; 
 
procedure TForm2.Image11DblClick(Sender: TObject); 
begin 
  hola := False; 
end; 
 
end.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda con este procedimiento Ledian_Fdez Varios 1 01-04-2011 21:35:12
Ayuda con este error kdemia Internet 3 12-09-2010 13:12:11
Ayuda Con Este Error :s darnnezt Varios 9 27-07-2010 15:43:45
Ayuda con este problema emiliano_b OOP 36 25-07-2010 03:36:27
una ayuda con este error please dariana20 SQL 3 14-06-2006 23:14:06


La franja horaria es GMT +2. Ahora son las 12:56:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi