Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Movimiento de texto dentro de un TEdit (https://www.clubdelphi.com/foros/showthread.php?t=83163)

Cristhor1982 17-05-2013 16:51:47

Movimiento de texto dentro de un TEdit
 
Amigos

Me gustara simular el movimiento de un texto dentro de un TEdit, es para dar informacion y se destaque con el movimiento

algo asi


Código:

que se deberia mover.. Este es el texto…

Estoy probando con un timer y el tedit y obviamente sus propiedades...una ayuda please

Saludos

dec 17-05-2013 16:59:59

Hola,

No diré que sea perfecto, pero, igual puede darte alguna idea:

Código Delphi [-]
unit Project.SampleForm;

interface

uses
  Vcl.Forms, Vcl.ExtCtrls, System.Classes,
  Vcl.Controls, Vcl.StdCtrls;

type
  TSampleForm = class(TForm)
    TypeEdit: TEdit;
    TypeEditTimer: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure TypeEditTimerTimer(Sender: TObject);
  private
    FCurrentCharNum : integer;
    FSavedTypeEditText : string;
  end;

var
  SampleForm: TSampleForm;

implementation

{$R *.dfm}

procedure TSampleForm.FormCreate(Sender: TObject);
begin
  FCurrentCharNum := 0;
  TypeEditTimer.Interval := 50;
  TypeEditTimer.Enabled := true;
  FSavedTypeEditText := TypeEdit.Text;
end;

procedure TSampleForm.TypeEditTimerTimer(Sender: TObject);
begin
  if TypeEdit.Text = FSavedTypeEditText then
    FCurrentCharNum := 0
  else
    Inc( FCurrentCharNum );

  TypeEdit.Text := Copy( FSavedTypeEditText, 1, FCurrentCharNum );
  TypeEdit.SelStart := Length( TypeEdit.Text );
end;

end.

Cristhor1982 17-05-2013 17:36:42

No puedo hacer que funcione tu codigo...:(

Cristhor1982 17-05-2013 19:10:43

Te cuento, lo que quiero hacer es....Mostrar la fecha en movimiento hasta ahora se me ocurrió algo muy basico

Código Delphi [-]
procedure TForm1.FormShow(Sender: TObject);
var
datetime:Tdatetime;
begin
  Edit2.Text := DateTimeToStr(now);
  Edit2.left := 140;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Edit2.Left:=Edit2.Left -1;
    If Edit2.Left = 8 then
      Edit2.Left := 140;
end;

Tengo dos edit, uno es solo pantalla y el otro no tiene bordes y esta en autosize, y juego con su Left, es lo que se me ocurrio, Funciona pero no creo que sea la solucion que corresponde...Saludos

dec 17-05-2013 19:21:19

1 Archivos Adjunto(s)
Hola,

Siento no poder ayudarte. Lo cierto es que sólo se me ocurre usar algún "Timer" y los correspondientes cálculos y eso, pero, uno puede imaginar que hay formas más curiosas y elegantes de "animar controles" o lograr "efectos" del tipo que te interesa. Lo que el código que he mostrado logra es, poco más o menos, lo que puede verse en la siguiente imagen:



De todas formas, te adjunto el ejemplo "completo" para que puedas echarle un vistazo.

Cristhor1982 17-05-2013 19:37:54

Muchas Gracias por tu ayuda, voy a tratar de hacer algo mas "Animado"....si lo logro lo pondre aca saludos. Nuevamente muchas gracias
Cita:

Empezado por dec (Mensaje 460626)
Hola,

Siento no poder ayudarte. Lo cierto es que sólo se me ocurre usar algún "Timer" y los correspondientes cálculos y eso, pero, uno puede imaginar que hay formas más curiosas y elegantes de "animar controles" o lograr "efectos" del tipo que te interesa. Lo que el código que he mostrado logra es, poco más o menos, lo que puede verse en la siguiente imagen:



De todas formas, te adjunto el ejemplo "completo" para que puedas echarle un vistazo.


ecfisa 17-05-2013 21:42:47

Hola Cristhor1982.

No sé si se aproxíma a lo que buscas, pero esta podría ser otra opción:
Código Delphi [-]
...
implementation

var
  Texto : string = ' Este es el texto que se deberia mover. ';

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Interval := 1000 div 10;
  Timer1.Enabled  := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Edit1.Text := Copy(Texto, Length(Texto), 1) + Copy(Texto, 1, Length(Texto) -1);
  Texto      := Edit1.Text
end;

Saludos :)

Cristhor1982 17-05-2013 23:36:34

Gracias...por la orientación ....saludos

:)


La franja horaria es GMT +2. Ahora son las 08:51:26.

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