Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-11-2005
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 19
lpmlpm Va por buen camino
Una forma práctica si solo lo usas en una simple forma es usar clases sobrepuestas... prueba con esta implementación:

Código Delphi [-]
 unit Unit1;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, FileCtrl;
 
 type
 
   TFileListBox = class(FileCtrl.TFileListBox)
   protected
     procedure DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState); override;
   end;
 
   TForm1 = class(TForm)
     FileListBox1: TFileListBox;
   private
     { Private declarations }
   public
     { Public declarations }
   end;
 
 var
   Form1: TForm1;
 
 implementation
 
 {$R *.dfm}
 
 procedure TFileListBox.DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState);
 begin
  if odSelected in State then
     Canvas.Brush.Color := clGray
   else
     case Index mod 4 of
       0: Canvas.Brush.Color := clGreen;
       2: Canvas.Brush.Color := clRed;
       1, 3: Canvas.Brush.Color := clWhite;
     end;
   inherited;
 end;
 
 end.
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita
  #2  
Antiguo 10-11-2005
Jorghino reyes Jorghino reyes is offline
Miembro
 
Registrado: ago 2005
Ubicación: Jalisco Mexico
Posts: 41
Poder: 0
Jorghino reyes Va por buen camino
Gracias, de esa forma ya puede modificar los colores.

Pero tengo la siguiente inquietud:

.- Como puedo hacer para que en el momento en que yo pulso un boton o tecleo < Enter> la seleccion actual cambie de color digamos por 1 segundo y despues regrese al color previo. ( es para indicar que dicha opcion fue aceptada).
------------------------------
Ahora, creo que el codigo que puse estaba yo un poco confundido, lo que me estaban sugiriendo era algo como crear un componente, es asi?

Estuve leyendo algo e inicie un nuevo "componente" , seleccione Tfilelistbox como "ancestor", luego "classname" puse un nombre como el TbicolorFilelistbox, seleccione una paleta, luego un "nombre" para la unit.pas, en "search path" deje lo que me aparece:

$(BDS)\LIB;C:\ARCHIVOS DE PROGRAMA\BORLAND\BDS\3.0\IMPORTS;$(BDS)\LIB\INDY10;C:\Archivos de programa\Borland\BDS\3.0\RaveReports\Lib$(BDS)\LIB;$(BDS)\LIB\INDY10;C:\Archivos de programa\Borland\BDS\3.0\RaveReports\Lib;c:\archivos de programa\borland\bds\3.0\gifimaged7c;c:\documents and settings\usuario\mis documentos\borland studio projects\bpl

y luego coloque lo que me habian sugerido (hablando de derivar un componente) .

pero despues ya no supe que hacer.
lo guardo? como lo guardo? donde lo guardo? como hago que aparezca en la paleta, etc?

conocen alguna guia para hacer todo esto?
Responder Con Cita
  #3  
Antiguo 10-11-2005
Jorghino reyes Jorghino reyes is offline
Miembro
 
Registrado: ago 2005
Ubicación: Jalisco Mexico
Posts: 41
Poder: 0
Jorghino reyes Va por buen camino
help !

siguiendo con esto

creo un componente como lo explico previamente, y lo guardo como
colorFileListBox.pas que contiene lo siguiente:


unit colorFileListBox;
interface
uses
SysUtils, Classes;

type
TcolorFileListBox1 = class(TFileListBox)
private
{ Private declarations }
protected
procedure DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState); override;
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
end;

procedure Register;

implementation

procedure TBicolorFileListBox.DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
if odSelected in State then
Canvas.Brush.Color := clGray // color para la selección
else if Odd(Index) then
Canvas.Brush.Color := clRed // color para ítems impares
else
Canvas.Brush.Color := clYellow; // color para ítems pares

inherited;
end;


procedure Register;
begin
RegisterComponents('Samples', [TcolorFileListBox1]);
end;

end.

------------
segun me indicaron.
luego creo un "new package" le digo "add " selecciono la unit.pas
y posteriormente le digo instalar, pero me manda error en Tfilelistbox que no esta declarado.

que estoy haciendo mal?, ando muy perdido?

saludos
Responder Con Cita
  #4  
Antiguo 11-11-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Jorghino reyes , el post 7 de este hilo lo habia modificado para agregar las etiquetas pertinentes a tu codigo, para hacerlo mas legible. Creí que si le dabas una miradita a tu propio mensaje, y percatandote del cambio que este tiene, habrias captado el mensaje.

Aun asi te invito a leer: (Not) Guía de Estilo, Etiquetas vB:=Delphi-SQL
Muy interesantes
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #5  
Antiguo 11-11-2005
Jorghino reyes Jorghino reyes is offline
Miembro
 
Registrado: ago 2005
Ubicación: Jalisco Mexico
Posts: 41
Poder: 0
Jorghino reyes Va por buen camino
Una disculpa, en lo sucesivo asi lo haré.
Responder Con Cita
  #6  
Antiguo 11-11-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Jorghino reyes
pero me manda error en Tfilelistbox que no esta declarado.

que estoy haciendo mal?, ando muy perdido?
No. No andas muy perdido, sólo un poco despistado. Siempre que Delphi te marque un error de esos al compilar es por que no encuentra el identificador que te indica en el mensaje. Recuerda que Delphi sólo puede compilar lo que ve en el archivo actual y lo que esté en los archivos listados en la cláusula uses.

Debes entonces agregar al uses la unidad donde se declare TFileListBox. ¿Que cómo sabes cuál es ésta? Muy fácil, pasa el cursor del ratón sobre el icono de la componente en la paleta de componentes y el hint amarillo te dirá el nombre de la unidad. ¿Que porqué antes no fue necesario? Porque Delphi, cuando insertas una componente al un formulario, automáticamente agreaga la unidad.

// Saludos
Responder Con Cita
  #7  
Antiguo 11-11-2005
Jorghino reyes Jorghino reyes is offline
Miembro
 
Registrado: ago 2005
Ubicación: Jalisco Mexico
Posts: 41
Poder: 0
Jorghino reyes Va por buen camino
Parece que ya lo logre. gracias.

Por último, exsite alguna manera de que en determinado momento ( un click de boton) el color de la seleccion cambie por 2 segundos ?

ya sea útilizando la clase derivada o la sobrepuesta,

gracias
Responder Con Cita
Respuesta



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 18:58:20.


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