Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-12-2006
pascalutn2003 pascalutn2003 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Córdoba
Posts: 36
Poder: 0
pascalutn2003 Va por buen camino
Smile El codigo de CoolEdit corregido

Hola Deiv:

Perdon por la demora; aqui tenes el código corregido :

Falta darle unos retoques aun pero ahi va.

Vas a encontrar cosas como por ejemplo que conviven la propiedad Color(la que trae por defecto) y ColorNoFocus (que es la que le puse yo), traté de que el efecto de "normalización" a la hora de perder el foco se produjera con la misma propiedad Color(por defecto del componente) pero si hago eso se pone todo en negro y todavia no encuentro el porqué (que seguro es una burrada que estoy obviando por ser eso : una burrada).
Seguramente alguien le puede encontrar la vuelta y darle remedio; yo lo seguiré intentando al igual que con las fuentes que; posiblemente cambie todo a TStyleFont.

Espero te sirva y si le haces cambios avisame.

GRACIAS por comprar mi producto jajajajajaja noooo; una broma

Código Delphi [-]

unit CoolEdit;

interface

uses
  Windows, Messages, SysUtils, Classes, Controls, StdCtrls, Graphics, Forms;

type TCoolEdit = class(TEdit)
     private

          fColorWithFocus     :    TColor;
          fColorWithOutFocus  :    TColor;

          FColorFont          :    TColor;
          fFontColorFocus     :    TColor;
          fFontColorNoFocus   :    TColor;
          Foco                :    Boolean;

          Procedure SetColor(Value:TColor);
          Procedure SetColorNoFocus(Value:TColor);
          Procedure SetFontColorFocus(Value:TColor);
          Procedure SetFontColorNoFocus(Value:TColor);


     protected

          Procedure WMSetFocus(var Message:TWMSetFocus);message WM_SETFOCUS;
          Procedure WMKillFocus(var Message:TWMKillFocus);Message WM_KILLFOCUS;

     public

          Constructor Create(AOwner:TComponent);override;
          Destructor Destroy;override;

     published

          Procedure RePaint;Override;

          Property ColorFocus      :    TColor Read fColorWithFocus Write SetColor Default clAqua;
          Property ColorNoFocus    :    TColor Read fColorWithOutFocus Write SetColorNoFocus Default clSilver;

          Property FontColorFocus  :    TColor Read fFontColorFocus Write SetFontColorFocus Default clBlue;
          Property FontColorNoFocus:    TColor Read fFontColorNoFocus Write SetFontColorNoFocus Default clBlack;

     end;


     Procedure Register;

implementation

Procedure TCoolEdit.SetFontColorFocus(Value:TColor);
Begin

     fFontColorFocus:=Value;

     Repaint;

End;

Procedure TCoolEdit.SetFontColorNoFocus(Value:TColor);
Begin

     fFontColorNoFocus:=Value;

     Repaint;

End;

Constructor TCoolEdit.Create(AOwner:TComponent);
Begin

     Inherited Create(AOwner);

     Color:=clSilver;
     fColorWithFocus:=clAqua;
     fColorWithOutFocus:=clSilver;
     fFontColorFocus:=clBlue;
     fFontColorNoFocus:=clBlack;

End;

Procedure TCoolEdit.WMSetFocus(var Message:TWMSetFocus);
Begin
     Inherited;

     Foco:=True;

     Repaint;
End;

Procedure TCoolEdit.WMKillFocus(var Message:TWMKillFocus);
Begin
     Inherited;

     Foco:=False;

     Repaint;
End;

Procedure TCoolEdit.Repaint();
Begin
     If Foco Then Begin
          Font.Style:=[fsBold];
          Font.Color:=fFontColorFocus;
          Color:=fColorWithFocus;
     End
     Else begin
          Font.Style:=[];
          Font.Color:=fFontColorNoFocus;
          Color:=fColorWithOutFocus;
     End;
End;

Procedure TCoolEdit.SetColor(Value:TColor);
Begin
     If fColorWithFocus <>Value Then Begin
          fColorWithFocus:=Value;
          Repaint;
     End;
End;

Procedure TCoolEdit.SetColorNoFocus(Value:TColor);
Begin
     If fColorWithOutFocus <>Value Then Begin
          fColorWithOutFocus:=Value;
          Repaint;
     End;
End;

Destructor TCoolEdit.Destroy;
Begin

     Inherited Destroy;

End;

procedure Register;
begin
  RegisterComponents('Cool', [TCoolEdit]);
end;

end.

Última edición por pascalutn2003 fecha: 13-12-2006 a las 02:21:28.
Responder Con Cita
  #2  
Antiguo 13-12-2006
pascalutn2003 pascalutn2003 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Córdoba
Posts: 36
Poder: 0
pascalutn2003 Va por buen camino
Question otra vez yo jejeje

¿Como hacen para que el codigo que uno mete en el hilo les salga realmente como codigo (encuadrado y con formato Delphi) dentro del foro?, ¿que hay que tocar? o ¿lo hacen los moderadores?

EDGARDO - Córdoba - Argentina
Responder Con Cita
  #3  
Antiguo 13-12-2006
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 22
Héctor Randolph Va por buen camino
Hola pascalutn2003!

Puedes hacerlo tu mismo, solamente tienes que encerrar el código entre etiquetas

[ delphi ] [ /delphi]

(pero sin espacios)

Más información aquí

http://www.clubdelphi.com/foros/showthread.php?t=10004

Saludos
Responder Con Cita
  #4  
Antiguo 13-12-2006
pascalutn2003 pascalutn2003 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Córdoba
Posts: 36
Poder: 0
pascalutn2003 Va por buen camino
Thumbs up Ya está encuadrado

Gracias hector :

Actuo como si entendiera y todo

jejeje
Responder Con Cita
  #5  
Antiguo 13-12-2006
Delar Delar is offline
Miembro
 
Registrado: oct 2006
Posts: 90
Poder: 20
Delar Va por buen camino
Que hace el inherited?
Responder Con Cita
  #6  
Antiguo 13-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Código Delphi [-]
type TCoolEdit = class(TEdit)

Inherited ejecuta el método que se llama igual en su ancestro. Puesto que el TCoolEdit deriva de un TEdit, lo que hace es ejecutar el método con el mismo nombre en la clase TEdit.

En plata: Lo que se hace es un puente, para que todo el código escrito en la clase TEdit, sirva para el TCoolEdit.

En este caso:
Código Delphi [-]
Inherited Create(AOwner);
se le ha de pasar el parámetro AOwner al Tedit, por eso se le añade el nombre del método (Create) y el parámetro AOwner.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 13-12-2006 a las 19:51:37.
Responder Con Cita
  #7  
Antiguo 14-12-2006
pascalutn2003 pascalutn2003 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Córdoba
Posts: 36
Poder: 0
pascalutn2003 Va por buen camino
Smile Respuesta a Delar

Hola Delar :

Respondiendo a tu pregunta, Inherited es la palabra reservada que implica la herencia.
En el caso de SetFocus y KillFocus (que es a los Inherited que creo estas refiriendote) heredan el comportamiento del metodo del ancestro; a seguir le agregué lo que me interesaba que hiciera, pero fijate que si no lo pones (al inherited) cuando el componente reciba el foco no vas a ver el cursor y no se pintará el texto que haya adentro si es que lo hay.
Hacele pruebas y mirá que resultados te dá.
Aunque de todos modos capaz que alguien atine a que haga lo que debe hacer sin la palabra reservada Inherited
De todos modos; como estoy trabajando con RePaint, tal vez sea esa la causa de verme obligado a utilizar Inherited.
Como te decía antes, hace pruebas y fijate si encontras alguna otra forma.

Espero que te aclare el panorama y suerte.

EDGARDO - Córdoba - Argentina
Responder Con Cita
  #8  
Antiguo 15-12-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 21
Deiv Va por buen camino
Cool

Hola pascalutn2003,

He recopiado tu último código y he vuelto a instalar el mismo, si bien ahora cambia el color, lo hace en tiempo de diseño pero no así en tiempo de ejecución. Sería bueno quienes entienden sobre la programación de componentes te echen una mano para seguir adelante y finalizar tu componente.

Última edición por Deiv fecha: 15-12-2006 a las 15:38:22.
Responder Con Cita
Respuesta


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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ventana MDI, "Siempre visible" y "Pantalla completa" ixMike API de Windows 7 11-04-2007 18:36:55
¿cuál es mejor: "close" o "application.terminate"? unreal4u Varios 5 05-03-2007 11:01:19
"ChequeaEsto" elegido el futuro "Killer CLubDelphi" mamcx Noticias 51 31-10-2006 20:56:32
porque no me reconoce los caracteres "*" ni "%" cuando filtro mrmago Conexión con bases de datos 10 27-01-2006 04:21:16
Múltiples "Deshacer" en un editor de textos soul6301 Varios 1 05-06-2004 21:38:37


La franja horaria es GMT +2. Ahora son las 15:38:56.


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