![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Hola
Cita:
Saludos |
|
#2
|
||||
|
||||
|
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. |
|
#3
|
||||
|
||||
|
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. |
|
#4
|
||||
|
||||
|
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 |
|
#5
|
||||
|
||||
|
Hola
No se por que no lo puedo compilar, me da este error: Cita:
Explico lo que hice, lo mas facil, crear un unit y tratar de instalarlo. Que hago mal, aparte de no saber. Saludos |
|
#6
|
||||
|
||||
|
abre una unidad nueva, copia el codigo excepto la primera linea (unit)
grabalo, y 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 |
|
#7
|
||||
|
||||
|
Hola a todos, llevo unos minutos declarando ese componente. Lo tengo igual a seoane, el problema, que no se como resolver, es que cuando uno cambia el contenido del edit, deja de funcionar el efecto de animación.
La diferencia con respecto a lo que tiene seoane es esta: Código:
unit Blinklbl2;
interface
uses Blinklbl, StdCtrls, Classes;
type
TMarqueeLabelEdit = class(TMarqueeLabel)
private
FMyEdit: TEdit;
FInvertir: boolean;
procedure SetMyEdit(Value: TEdit);
protected
procedure Animar(Sender: TObject); override;
published
property MyEdit: TEdit read FmyEdit write SetMyEdit;
property Invertir: boolean read FInvertir write FInvertir;
end;
procedure Register;
implementation
procedure TMarqueeLabelEdit.Animar(Sender: TObject);
begin
if Assigned(MyEdit) then
if FInvertir then
Caption:= Copy(Caption,Length(MyEdit.Text),1) + Copy(Caption,1,Length(MyEdit.Text)-1)
else
Caption:= Copy(MyEdit.Text,2,MAXINT) + Copy(MyEdit.Text,1,1);
end;
procedure TMarqueeLabelEdit.SetMyEdit(Value: TEdit);
begin
FMyEdit := Value;
if Value <> nil then Value.FreeNotification(self);
end;
procedure Register;
begin
RegisterComponents('Curso', [TMarqueeLabelEdit]);
end;
end.
|
|
#8
|
||||
|
||||
|
Acabo de probar el codigo de seoane completo y no me ha dado problemas, lo instale y modifique el texto en ejecucion funciona muy bien
lo qu eno entiendo es apara que le quitas parte del codigo, por ejemplo si no se ejecuta el create no va a ejecutarse el movimiento que se le asigna en ese evento
__________________
...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 |
|
#9
|
||||
|
||||
|
Hola
Que estoy haciendo mal. Creo un unit nuevo, lo guardo con el nombre Blinklbl Voy a Component, instal component me da el error que mencione, algo de class Que puede ser, que estoy haciendo mal. Tambien lo hice como me mencionaste sin cambiar el nombre el unit, no me funciona. Saludos |
|
#10
|
||||
|
||||
|
listo, hice la prueba... era un error conceptual mio y de apurado quise meter código y metí mal el dedo
![]() Lo que estaría interesante, si es que le sirve a Caral, es contar con la posibilidad de deshabilitar/habilitar los efectos. E inclusive, porque no... adaptarlo para varios tipos de efectos: 1. Desplazamiento a la izquierda 2. Desplazamiento a la derecha 3. Cierre: que el texto vaya desplazandose desde los extremos al medio. 4. Apertura: que el texto vaya desplazandose desde el centro hacia afuera. 5. Aleatorio. No creo que sea tan complicado generarlos... Se que lo más posible es que hay componentes ya hechos que realizan estas cosas... pero como práctica no está demás .Saludos, |
|
#11
|
||||
|
||||
|
Si te fijas en el primer codigo estan los puntos que tu contemplas en el 1 y 2
__________________
...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 |
|
#12
|
||||
|
||||
|
Cita:
![]() Olvida los puntos 1 y 2. ![]() Con respecto al error que le da a Caral... a mi no me arroja nada, todo bien. Tengo Delphi 6, que es la versión que emplea Caral (tengo entendido). Nunca vi ese error... ¿Caral... sobre que línea te arroja el "DICHOSO" error? 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 |
|