Текущий архив: 2006.10.08;
Скачать: CL | DM;
ВнизНе могу разобратся с простым кодом (Бегущая строка из DelphiWorld Найти похожие ветки
← →
mmms- (2006-09-15 11:47) [0]
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, пробую вывести ее в переменную, тоже ничего не наблюдается..
← →
Sam Stone © (2006-09-15 11:49) [1]Переменные константы вроде бы можно только глобальные объявлять.
i у тебя локальная, поэтому при каждом срабатывании таймера в ней черт знает что (теоретически 1 из-за const i: Integer = 1;)
← →
Zeqfreed © (2006-09-15 11:58) [2]В Delphi нет статических локальных переменных. Тебе нужно объявить i либо глобально, либо полем формы. Присваивать значение константе, разумеется, нельзя. Поэтому код и не компилируется.
← →
default © (2006-09-15 12:27) [3]да и сам код фигня
вот поставим, например, LengthGoString = 3; и получим ерунду, лучше самому писать, тем более такой простой код
← →
Нулевой © (2006-09-15 12:50) [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:55) [5]Нулевой © (15.09.06 12:50) [4]
компилиться-то будет, но если надо чтобы код работал для различных значений LengthGoString = 10; надо код переписать
← →
Нулевой © (2006-09-15 12:58) [6]
> default © (15.09.06 12:55) [5]
Согласен, пусть пишет!
> Во первых не компилируется, ошибка с константой i
← →
han_malign © (2006-09-15 13:28) [7]{$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);
Страницы: 1 вся ветка
Текущий архив: 2006.10.08;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.048 c