![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
||||
|
||||
|
Componente TLabel
Hola a todos y gracias de antemano por vuestra ayuda.
Estoy tratando de incursionar en este asunto de los componentes y no logro entender el concepto. Lo que tengo: Consegui un componente label que parpadea, esta simpatico, es este: Código:
unit Blinklbl;
interface
uses
Classes, StdCtrls, ExtCtrls; { TTimer se declara en ExtCtrls }
type
TBlinkLabel = class(TLabel) {TBlinkLabel deriva de TLabel}
private
FVelocidad : integer; {Frecuencia de parpadeo}
FTimer : TTimer; {Timer para la frecuencia}
procedure SetVelocidad(valor : integer); {Almacena la velocidad}
protected
procedure parpadea(Sender : TObject);
public
constructor Create(AOwner : TComponent); override; {Constructor}
destructor Destroy; override; {Destructor}
published
property Velocidad : integer read FVelocidad write SetVelocidad default 400;
end;
procedure Register;
implementation
constructor TBlinkLabel.Create(AOwner : TComponent);
begin
inherited Create(AOwner); {Llama al constructor original (heredado)}
FTimer := TTimer.Create(Self); {Creamos el timer}
FVelocidad := 400; {Frecuencia (velocidad) por defecto}
FTimer.Enabled:=True; {Activamos el timer}
FTimer.OnTimer:=parpadea; {Asiganamos el método parpadea}
FTimer.Interval:=FVelocidad; {Asignamos el intervalo del timer = frecuencia parpadeo}
end;
destructor TBlinkLabel.Destroy;
begin
FTimer.Free; {Liberamos el timer}
inherited destroy; {Llamamos al destructor original (heredado)}
end;
procedure TBlinkLabel.SetVelocidad (valor : integer);
begin
If FVelocidad <> valor then {Sólo si el valor introducido es distinto del almacenado}
begin
if valor < 0 then FVelocidad:=0;
FVelocidad:=Valor; {Asigna la velocidad}
if FVelocidad=0 then FTimer.Enabled:=False else FTimer.Enabled:=True;
{Si Fvelocidad=0 el mensaje debe estar siempre visible}
FTimer.Interval:=FVelocidad;
Visible:=True;
end;
end;
procedure TBlinkLabel.parpadea(Sender : TObject);
begin
if FTimer.Enabled then Visible := not(Visible); {Alternativamente muestra y oculta el mensaje si el timer esta activado}
end;
procedure Register; {Registro del componente}
begin
RegisterComponents('Curso', [TBlinkLabel]);
end;
end.
Código:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls, Buttons;
type
TForm1 = class(TForm)
Timer1: TTimer;
btnStartStop: TButton;
BitBtn1: TBitBtn;
lblMarquee: TLabel;
edText: TEdit;
Label2: TLabel;
UpDown1: TUpDown;
edSpeed: TEdit;
Label1: TLabel;
rgDirection: TRadioGroup;
procedure BitBtn1Click(Sender: TObject);
procedure edTextChange(Sender: TObject);
procedure btnStartStopClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure UpDown1Changing(Sender: TObject; var AllowChange: Boolean);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.edTextChange(Sender: TObject);
begin
lblMarquee.Caption := edText.Text;
end;
procedure TForm1.btnStartStopClick(Sender: TObject);
begin
Timer1.Enabled := not Timer1.Enabled;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var txt : string;
begin
txt:= lblMarquee.Caption;
if rgDirection.ItemIndex = 0 then //left
lblMarquee.Caption:= Copy(txt, 2, length(txt)-1) Copy(txt,1,1)
else //right
lblMarquee.Caption:= Copy(txt,length(txt)-1,1) Copy(txt, 1, length(txt)-1);
end;
procedure TForm1.UpDown1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
Timer1.Interval := 1000 div UpDown1.Position;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
edTextChange(Self);
end;
end.
Quiero hacer un componente Label, que se coloque en un form y que colocando un edit en el mismo, pase la informacion de este de lado a lado, como lo hace el programa. Gracias por vuestro tiempo y ayuda. 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 |
|