PDA

Ver la Versión Completa : marquesina


abram
27-09-2008, 17:26:23
Hola... bueno mi pregunta es esta:
:confused::confused:como se puede hacer una marqesina de texto en delphi 7. Ya q en VB6 para hacer una de estas intente poner un frame y dentro de este coloqe un label y obiamente un timer. En el form coloq el codigo siguiente:

Private Sub Form_Load()
Label2.Caption = " Ejemplo "
End Sub .......lo q esta dentro dentro de comillas es el nombre a desplazarce dentro del frame..

\\En el timer coloq este codigo:
Private Sub Timer1_Timer()
With Label2
'se desplaza el Label hacia la izquierda
.Move .Left - 30

'si finalizó, vuelve a comenzar desde la parte derecha
If .Left + .Width < Contenedor.Left Then
.Left = Contenedor.Left + Contenedor.Width
End If
End With
End Sub
..........puse este ejemplo de VB6 para darme a enterder lo q quiero hacer en delphi7..de antemano muchas gracias x sus respuestas...

enecumene
27-09-2008, 17:34:09
Hola, ¿te refieres a un "Marquee Text"?, en la red existen muchos componentes de terceros que ya hacen esas funciones, creo incluso, que en delphi hay uno, ahora mismo no puedo decirte porque no la tengo en mano.

Saludos.

marcoszorrilla
27-09-2008, 17:50:20
Aquí tienes un ejemplo que acabo de descargar y funciona perfectamente con opciones de velocidad y sentido de presentación (izquierda o derecha).
{
Traveling Label
Spice up your user interface with a marquee style text. Use marquee style text to display scrolling text that
you want to catch your Delphi program users' attention.

Web Article:
. http://delphi.about.com/library/weekly/aa071100a.htm

********************************************
Zarko Gajic
About.com Guide to Delphi Programming
http://delphi.about.com
email: delphi.guide@about.com
free newsletter: http://delphi.about.com/library/blnewsletter.htm
********************************************
}

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.
Un Saludo.