![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не могу разобратся с простым кодом (Бегущая строка из DelphiWorld
mmms- © (2006-09-15 11:47:00)
procedure TForm1.Timer1Timer(Sender: TObject);
const
LengthGoString = 10;
Gostring = 'Этот код был взят с проекта Delphi World'+
' Выпуск 2002 - 2003! Этот код б';
// Повторить столько символов - сколько в LengthGoString
const
i: Integer = 1;
begin
Label1.Caption := Copy(GoString, i, LengthGoString);
Inc(i);
if Length(GoString) - LengthGostring < i then
i:=1;
end;
Во первых не компилируется, ошибка с константой i, пробую вывести ее в переменную, тоже ничего не наблюдается..
han_malign (2006-09-15 13:28:00) [1]{$WRITEABLECONST ON}
> чтобы код работал для различных значений LengthGoString
в тупую:
len:= LengthGostring - Length(GoString);
if(len < 0)then len:= 0;
Label1.Caption := Copy(GoString, i + 1, Length(GoString)) + DupeString(' ', len) + Copy(GoString, 1, i);
i:= ( i + 1 ) mod Length(GoString);
Нулевой (2006-09-15 12:58:00) [2]
> default © (15.09.06 12:55) [5]
Согласен, пусть пишет!
> Во первых не компилируется, ошибка с константой i
default (2006-09-15 12:55:00) [3]Нулевой © (15.09.06 12:50) [4]
компилиться-то будет, но если надо чтобы код работал для различных значений LengthGoString = 10; надо код переписать
Нулевой (2006-09-15 12:50:00) [4]А так?
...
var
Form1: TForm1;
i: Integer = 1;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
const
LengthGoString = 10;
Gostring = 'Этот код был взят с проекта Delphi World' +
' Выпуск 2002 - 2003! Этот код б';
// Повторить столько символов - сколько в LengthGoString
begin
//i:=1;
Label1.Caption := Copy(GoString, i, LengthGoString);
Inc(i);
if Length(GoString) - LengthGostring < i then
i := 1;
end;
...
default (2006-09-15 12:27:00) [5]да и сам код фигня
вот поставим, например, LengthGoString = 3; и получим ерунду, лучше самому писать, тем более такой простой код
Zeqfreed (2006-09-15 11:58:00) [6]В Delphi нет статических локальных переменных. Тебе нужно объявить i либо глобально, либо полем формы. Присваивать значение константе, разумеется, нельзя. Поэтому код и не компилируется.
Sam Stone (2006-09-15 11:49:00) [7]Переменные константы вроде бы можно только глобальные объявлять.
i у тебя локальная, поэтому при каждом срабатывании таймера в ней черт знает что (теоретически 1 из-за const i: Integer = 1;)