Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.10.2010, 16:27
MrDiG MrDiG вне форума
Начинающий
 
Регистрация: 05.10.2010
Сообщения: 112
Репутация: 1227
По умолчанию Вывод содержимого Memo с паузой

Вопрос уже кое-где обсжудался. Проблема в нумерации массива. Но какая-то странная.

В 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  
Старый 13.10.2010, 16:34
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Начну с конца, 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  
Старый 13.10.2010, 16:38
MrDiG MrDiG вне форума
Начинающий
 
Регистрация: 05.10.2010
Сообщения: 112
Репутация: 1227
По умолчанию

Спасибо, эти вопросы сняты. Осталось - основное - вывод на что-нибудь визуальное.
Ответить с цитированием
  #4  
Старый 13.10.2010, 16:40
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Код:
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  
Старый 13.10.2010, 16:42
MrDiG MrDiG вне форума
Начинающий
 
Регистрация: 05.10.2010
Сообщения: 112
Репутация: 1227
По умолчанию

Вот теперь - всё понял полностью. Спасибо ещё раз огромное
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:13.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter