Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.035 c
15-1158316323
вывод
2006-09-15 14:32
2006.10.08
аналог


6-1147629987
мастак
2006-05-14 22:06
2006.10.08
SendText,ReceiveText


3-1154672476
Progr_Neud
2006-08-04 10:21
2006.10.08
Параметры в ADO: q2: Parameter i not found


15-1158482845
Chuk &amp; Gek
2006-09-17 12:47
2006.10.08
подключение к Internet чере мобильник


1-1156613300
Destroyer
2006-08-26 21:28
2006.10.08
Остановка потока