Главная страница
    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.46 MB
Время: 0.048 c
2-1159097390
Серый
2006-09-24 15:29
2006.10.08
MainMenu


15-1158417939
Furyz
2006-09-16 18:45
2006.10.08
Баг


2-1159092333
Серый
2006-09-24 14:05
2006.10.08
Операция div


15-1158627488
Mutnauq
2006-09-19 04:58
2006.10.08
D10Lite


2-1158581883
Xmen
2006-09-18 16:18
2006.10.08
deadlock





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский