![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Вопрос уже кое-где обсжудался. Проблема в нумерации массива. Но какая-то странная.
В Memo строки. Нужно выводить их с задержкой в две секунды на Label или на StatusBar. Код:
procedure TForm1.Button4Click(Sender: TObject); var i:integer; begin for i := 0 to Memo3.Lines.Count - 1 do ShowMessage(Memo3.Lines[i]); Label4.Caption := Memo3.Lines[i]; //StatusBar1.Panels[0].Text:=Memo3.Lines[i]; sleep(2000); end; Вывод в ShowMessage - работает. Но вроде без задержки. Вывод на Label или StatusBar нет. Мало того что не отображается (кстати, наверное, нужно перерисовывать?) так и выкидывает ошибку с размерностью массива. И прицепом маленький вопросик - есть ли в Delphi аналог функции trim() - обрезка пробелов с концов строки? |
#2
|
||||
|
||||
![]() Начну с конца, Trim есть, так же есть и доп функции: TrimLet, TrimRight (удаление пробелов лишних слева, справа...).
На счет ShowMessage - если ты его используешь, то во время показывания сообщения, твоя программа виснет вообще, и только после того, как пользователь нажал "ОК", твоя программа продолжает выполнение. ЗЫ вместе sleep() лучше используй delay() (в инете есть много примеров), это даст возможность "не зависать программе" в те 2 секунды, что надо ждать. ЗЫЫ вот пример процедуры delay: Код:
procedure Delay (Seconds: Real); var Later: TDateTime; begin Later:= Now + (Seconds / (24.0 * 60.0 * 60.0)); While Now < Later do Application.ProcessMessages; end; Помогаю за Спасибо ![]() Последний раз редактировалось v1s2222, 13.10.2010 в 16:37. |
#3
|
|||
|
|||
![]() Спасибо, эти вопросы сняты. Осталось - основное - вывод на что-нибудь визуальное.
![]() |
#4
|
||||
|
||||
![]() Код:
procedure Delay (Seconds: Real); var Later: TDateTime; begin Later:= Now + (Seconds / (24.0 * 60.0 * 60.0)); While Now < Later do Application.ProcessMessages; end; procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin for i := 0 to Memo1.Lines.Count - 1 do begin Label1.Caption := Memo1.Lines[i]; delay(2); end; end; ЗЫ я ж тебе говорил - sleep тупо полностью замораживает твою программу, поэтому и не получалось у тебя вывести в лейбел... Надо использовать delay. Помогаю за Спасибо ![]() |
#5
|
|||
|
|||
![]() Вот теперь - всё понял полностью. Спасибо ещё раз огромное
|