![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Ok ahora si entendi perdona mi lentitud, pues a mi modo de ver las cosas hay que crear un propiedad donde se relacion el edit que quieres y en el timer actualizar el caption, algo asi
Cita:
Cita:
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
|
#2
|
||||
|
||||
|
Hola
Ahora el lento soy yo. La Propuesta del Property, la capto, esto iría en el componente asi: Código:
published
property Velocidad : integer read FVelocidad write SetVelocidad default 400;
property MyEdit: TEdit read fTexto write fTexto;
end;
Saludos |
|
#3
|
||||
|
||||
|
Ok la solucion esta en el codigo anterior, y lo unico que tienes es decirle al label en su propiedad nueva cual es el edit desde el que se actualizara, si te fijas en el codigo ontimer que te pase ahi una linea en negrita a mi entender esa solucionaria tu problema aunado a la configuracion de esta propiedad que hablamos
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
|
#4
|
||||
|
||||
|
Hola
La verdad no lo agarro, para mi sigue siendo un codigo en el form, no en el componente, el componente deberia de hacer que se mueva la informacion del caption por medio de su timer (cerado dentro del componente), no el codigo del form. No lo capto, perdon. Saludos |
|
#5
|
||||
|
||||
|
Vamos a ver que te parece esto:
Código:
unit Blinklbl;
interface
uses
Classes, StdCtrls, ExtCtrls;
type
TAnimLabel = class(TLabel)
private
FVelocidad: integer;
FTimer: TTimer;
procedure SetVelocidad(Valor: Integer);
protected
procedure Animar(Sender: TObject); virtual; abstract;
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
published
property Velocidad: Integer read FVelocidad write SetVelocidad;
end;
TBlinkLabel = class(TAnimLabel)
protected
procedure Animar(Sender: TObject); override;
end;
TMarqueeLabel = class(TAnimLabel)
private
FInvertir: Boolean;
protected
procedure Animar(Sender: TObject); override;
published
property Invertir: Boolean read FInvertir write FInvertir;
end;
procedure Register;
implementation
{ TAnimLabel }
constructor TAnimLabel.Create(AOwner : TComponent);
begin
inherited Create(AOwner);
FTimer := TTimer.Create(Self);
FTimer.OnTimer:= Animar;
FVelocidad:= 400;
FTimer.Interval:= FVelocidad;
FTimer.Enabled:= True;
end;
destructor TAnimLabel.Destroy;
begin
FTimer.Free;
inherited destroy;
end;
procedure TAnimLabel.SetVelocidad(Valor: Integer);
begin
If FVelocidad <> Valor then
begin
if Valor <= 0 then
begin
FVelocidad:= 0;
FTimer.Enabled:= FALSE;
end else
begin
FVelocidad:= 0;
FTimer.Enabled:= FALSE;
end;
FTimer.Interval:= FVelocidad;
end;
end;
{ TBlinkLabel }
procedure TBlinkLabel.Animar(Sender: TObject);
begin
Visible:= not(Visible);
end;
{ TMarqueeLabel }
procedure TMarqueeLabel.Animar(Sender: TObject);
begin
if FInvertir then
Caption:= Copy(Caption,Length(Caption),1) + Copy(Caption,1,Length(Caption)-1)
else
Caption:= Copy(Caption,2,MAXINT) + Copy(Caption,1,1);
end;
procedure Register;
begin
RegisterComponents('Curso', [TBlinkLabel]);
RegisterComponents('Curso', [TMarqueeLabel]);
end;
end.
|
|
#6
|
||||
|
||||
|
Mas claro imposible seoane el aunto es como tomar automaticamente el texto en otro edit de un formulario y se actualize en el caption.
pero ya tenemos tu componente de base, solo hay que agregarle las modificaciones, y caral si te fijas el timer esta dentro del componente, revisa el create...
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
|
#7
|
||||
|
||||
|
Hola
Cita:
Saludos |
|
#8
|
||||
|
||||
|
Si no hay otra solucion podriamos tomar la que coloque al principio, me sigue pareciendo razonable
Aunque ahora que lo pienso podriamos hacer esto Cita:
Noi es lo ideal pero deberia funcionar
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela Última edición por eduarcol fecha: 05-08-2007 a las 20:19:48. |
|
#9
|
||||
|
||||
|
Bueno, no entiendo por que intentar relacionar el TEdit con el label dentro del propio código del label, lo mas lógico seria usar el caption y el método OnChange del TEdit.
Pero el cliente siempre tiene razón ![]() Código:
unit Blinklbl;
interface
uses
Classes, StdCtrls, ExtCtrls;
type
TAnimLabel = class(TLabel)
private
FVelocidad: integer;
FTimer: TTimer;
procedure SetVelocidad(Valor: Integer);
protected
procedure Animar(Sender: TObject); virtual; abstract;
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
published
property Velocidad: Integer read FVelocidad write SetVelocidad;
end;
TBlinkLabel = class(TAnimLabel)
protected
procedure Animar(Sender: TObject); override;
end;
TMarqueeLabel = class(TAnimLabel)
private
FEdit: TEdit;
FIndice: Integer;
protected
procedure Animar(Sender: TObject); override;
published
property Edit: TEdit read FEdit write FEdit default nil;
end;
procedure Register;
implementation
{ TAnimLabel }
constructor TAnimLabel.Create(AOwner : TComponent);
begin
inherited Create(AOwner);
FTimer := TTimer.Create(Self);
FTimer.OnTimer:= Animar;
FVelocidad:= 100;
FTimer.Interval:= FVelocidad;
FTimer.Enabled:= True;
end;
destructor TAnimLabel.Destroy;
begin
FTimer.Free;
inherited destroy;
end;
procedure TAnimLabel.SetVelocidad(Valor: Integer);
begin
If FVelocidad <> Valor then
begin
if Valor <= 0 then
begin
FVelocidad:= 0;
FTimer.Enabled:= FALSE;
end else
begin
FVelocidad:= 0;
FTimer.Enabled:= FALSE;
end;
FTimer.Interval:= FVelocidad;
end;
end;
{ TBlinkLabel }
procedure TBlinkLabel.Animar(Sender: TObject);
begin
Visible:= not(Visible);
end;
{ TMarqueeLabel }
procedure TMarqueeLabel.Animar(Sender: TObject);
var
Str: String;
begin
if Assigned(FEdit) then
Str:= FEdit.Text
else
Str:= '';
if Length(Str) > 0 then
begin
FIndice:= ((FIndice + 1) mod Length(Str)) + 1;
Caption:= Copy(Str,FIndice,MAXINT) + Copy(Str,1,FIndice - 1);
end else
Caption:= '';
end;
procedure Register;
begin
RegisterComponents('Curso', [TBlinkLabel]);
RegisterComponents('Curso', [TMarqueeLabel]);
end;
end.
¿Que te parece ahora? ![]() Última edición por seoane fecha: 05-08-2007 a las 20:48:04. |
|
#10
|
||||
|
||||
|
Magnifico amigo, a eso me referia tal como lo habia pensado
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
|
#11
|
||||
|
||||
|
Hola Seoane.
Impresionante Me queda una duda, estas creando dos componentes o uno solo? De todos modos lo voy a probar. Increible, maestro, a esto me referia, a que el componente hiciera su propia rutina. Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| tlabel enabled | anubis | Varios | 12 | 10-05-2007 08:32:50 |
| un TLabel como Hipervínculo | zuriel_zrf | Internet | 9 | 06-01-2006 22:11:49 |
| tlabel como Centrar ? | Pascual Montes | Varios | 4 | 11-06-2005 02:53:33 |
| un TLabel para ir a pagina web | zuriel_zrf | Internet | 1 | 19-02-2004 11:16:29 |
| Tlabel enlazado a un TDBedit | CORBATIN | OOP | 2 | 15-09-2003 00:29:10 |
|