Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 01-07-2004
Avatar de vic_ia
vic_ia vic_ia is offline
Miembro
 
Registrado: ene 2004
Posts: 238
Poder: 23
vic_ia Va por buen camino
hola...

respecto a lo que muestras de tu codigo ...
Cita:
Empezado por senpiterno
Desde el eveto onpaint llamo a la funcion que crea el texto vertical de esta forma:

Código Delphi [-]
procedure TFEntradaSistema.GradianPaint(Sender: TObject);
begin
    //Crea un gradian sobre el objeto PaintBox
    CreaGradian(FEntradaSistema.Gradian);
     //Donde gradian es el objeto PaintBox
    CreaTextoVertical(FEntradaSistema.Gradian,'Entrada');
end;
Respecto al crear un rectangulo donde dibujar el texto no me sirve, .....

Código Delphi [-]
Function CreaGradian(Objeto:TPaintBox):Boolean;
Var
     Row, Ht: Word ;
Begin
    Try //Iniciamos el codigo de control de errores
       Result:=False;//Asignamos el valor por defecto de la funcion
       Ht := (Objeto.ClientHeight + 255) div 256 ;
       For Row := 0 to 255 do Begin
           With Objeto.Canvas do begin
               Brush.Color := RGB(0, 0, Row+20) ;
               FillRect(Rect(0, Row * Ht, Objeto.ClientWidth, (Row + 1) * Ht));
           End;
       End;
       Objeto.Canvas.Refresh;
        Result:=True;//Le damos el valor de salida a la funcion
Except //Se ha producido un error
   On E:Exception Do
      If (MensajesDeError(ErroresSistema(E), E, MsgErrorCreaGradina,False)<> Reintentar) Then Begin
          Result:=False; //enviamos la respuesta de error
      End;//If
   End;//on
End;//Function
creo que el enfoque que le has dado no es muy correcto (si alguien cree que esoy diciendo una tarugada, que me corrija por favor ) y pudieran ser dos las situaciones por las que se pierde la transformación del texto

quiero entender que el procedimiento GradianPain es el asignado al evento OnPaint de tu PaintBox, si es asi, esto hace que cada vez que pides que se dibuje (por algun evento, este cambia sus dimensiones varias veces, lo que posiblemente haga que otros objetos vuelvan a llamar a ese evento, y esto puede hacer que al solicitar la creación del font no tenga los recursos necesarios; por otro lado dentro del procedimiento llamas a Refresh lo que hara que se vuelva a solicitar el repintado, lo cual no necesariamente se hara de manera inmediata, tal vez esto ultimo sea lo que hace que se pierda la transformación...

yo cambiaria el enfoque, pienso que cada vez que cambias las dimensiones del control este llama a su evento OnPain, por lo que dentro de este solo debiera estar lo concerniente al dibujado interior del el, nada mas, creo que el cambio de las dimensiones lo debieras llevar a cabo desde.. no se por ejemplo desde donde lo llamas para que aparezca...

en cuanto tenga tiempo tratare de checarlo con detenimiento...

saludos...
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 23:01:38.


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