Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Строка


Автор: Vco 27.2.2003, 02:32
Как сделать плавно появляющуюсю строку, и исчезающую т.е. бегущую.
ну вот вроде есть слово привет, появляеться буква за буквой и исчезает, слева на права...компонент чтоли скачивать надо? Если да, то подскажите какой или где... confused.gif

Автор: Step 27.2.2003, 02:49
не надо компонент, береш обычный едит, береш свою строку вставляеш пробелов 20 впереди, потом делаеш буфер на 20 елементов, и начало буфера т.е. указатель, постепенно увиличуешь, и после каждого увеличения выводиш содержимое буффера в едит. получаеш бегущую строку.

Автор: Il'ya 27.2.2003, 02:58
Можно двигать например Label пиксельно по OnTimer. wink.gif

Автор: Vco 27.2.2003, 03:00
1) не в едите надо, а прсто строка
2) а как чтобы плавно появлялась?
3) Немог бы код дать, того чего ты щас говорил... я почти неразбераюсь со всеми этими функциями, в книге мало описано. даж тот же буфер, как что.. sad.gif sad.gif

Автор: Step 27.2.2003, 03:01
Цитата
Можно двигать например Label пиксельно по OnTimer.
я думаю такой уровень ему не нужен, к томуже возникает много проблем...

Автор: Step 27.2.2003, 03:03
Vco Извини пока не могу, т.е. могу, но на с++, на делфе дам завтра, я своим студентом 2 месяца назад такое показывал, завтро дам сто пудов.

Автор: Vco 27.2.2003, 03:05
вот тут, скачай системщик, и нажми о программе http://alexander.msk.ru

Автор: Song 27.2.2003, 06:08
Сделай ScrollWindow(), если уж совсем думать не хочется.

Автор: Step 27.2.2003, 20:55
Код
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure FormActivate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
       a,b:pchar;
       i:integer;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

 b:=b+1;

edit1.settextbuf(b);



end;

procedure TForm1.FormActivate(Sender: TObject);
begin
a:='                              tolik          ';
b:='   ';
b:=b+10+13;
b:=a;

end;

end.

проверял, работает, может не так как тебе хочется но работает

Автор: Vco 28.2.2003, 02:37
Ну, это можно проделать с tlabel?
тогда, как сделать задержку т.е. мне ненадо чтоб при нажатие на button, а просто label и делать как бы задержку...ну в паскале это delay();

Автор: Step 28.2.2003, 02:42
Цитата
Ну, это можно проделать с tlabel?
можно с чем угодно делать, только функции работы с буфером наверное будут разные
Цитата
delay();
а в делфи, что по сути есть паскаль - я не знаю, попробуй

Автор: December 2.3.2003, 20:51
Цитата(Step @ 27.2.2003, 17:42)
Цитата
Ну, это можно проделать с tlabel?
можно с чем угодно делать, только функции работы с буфером наверное будут разные
Цитата
delay();
а в делфи, что по сути есть паскаль - я не знаю, попробуй

Если дело не касается DDE, то лучше sleep()

Автор: dr.ZmeY 2.3.2003, 22:32
Код проги
Код
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls;

type
 TForm1 = class(TForm)
   Label1: TLabel;
   Timer1: TTimer;
   procedure Timer1Timer(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 i:integer;
implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);

begin
Label1.Left:=Label1.Left-1;
if Label1.Left<(0-Label1.Width) then Label1.Left:=i;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
i:=Label1.Left;
end;

end.


Код формы
Код


object Form1: TForm1
 Left = 631
 Top = 118
 Width = 432
 Height = 640
 Caption = 'Form1'
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = 'MS Sans Serif'
 Font.Style = []
 OldCreateOrder = False
 OnCreate = FormCreate
 PixelsPerInch = 96
 TextHeight = 13
 object Label1: TLabel
   Left = 328
   Top = 312
   Width = 90
   Height = 13
   Caption = 'Бегущая строка'
 end
 object Timer1: TTimer
   Interval = 100
   OnTimer = Timer1Timer
   Left = 328
   Top = 224
 end
end




Цитата
Цитата

Можно двигать например Label пиксельно по OnTimer.

я думаю такой уровень ему не нужен, к томуже возникает много проблем...

Почему? Нет ничего проще... и проблем нет...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)