Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 29.10.2010, 12:10   #1
ZBEP
Форумчанин
 
Аватар для ZBEP
 
Регистрация: 23.03.2009
Сообщений: 334
По умолчанию Не пойму почему сбрасывается значение.

Вот пример:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
nst:=0;
end;

...
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
Stat: string;
begin
For i:=nst to Memo3.Lines.Count-1 do
begin                      
  If Pos('Поиск слова', Memo3.Lines[i])<>0 then
  stat:=Memo3.Lines[i];
  //Если найдено, то задаем значение.
  nst:=nst+1;
end;
Form1.Caption:=stat;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
nst:=0;
end;
Теперь о результате.
Если нажать один раз на Button1 то выводится все как надо, если нажать второй раз на Button1, то Form1.Caption становится равно '' (пустоте в общем). И пока не сбросить значение nst - желаемого результата нет.
Почему значение сбрасывается? Нигде же не стоит его сброс, по идее без сброса nst, Form1.Caption должно равняться последнему значнию Stat.

Последний раз редактировалось ZBEP; 29.10.2010 в 12:23.
ZBEP вне форума
Старый 29.10.2010, 12:19   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
Stat: string;
begin
For i:=nst to Memo3.Lines.Count-1 do
begin                      
  If Pos('Поиск слова', Memo3.Lines[i])<>0 then
  stat:=(Copy(Memo3.Lines[i],9,length(Memo3.Lines[i])-8));
  //Если найдено, то задаем значение.
  nst:=nst+1;
end;
Form1.Caption:=stat;
end;
Stat локальная переменная которая начально (при входе в процедуру) =''
если ничего не нашли то значение не изменяется и выводим ''.

stat:=form.caption;
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме
Старый 29.10.2010, 12:19   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от ZBEP Посмотреть сообщение
если нажать второй раз на Button1, то Form1.Caption становится равно '' (пустоте в общем)...
Form1.Caption должно равняться последнему значению Stat.
В procedure TForm1.Button1Click вы инициализируете
var Stat: string;
Вот она и становится "пустышкой"...
Сделайте Stat глобальной переменной и все будет ок...
mihali4 вне форума
Старый 29.10.2010, 12:25   #4
ZBEP
Форумчанин
 
Аватар для ZBEP
 
Регистрация: 23.03.2009
Сообщений: 334
По умолчанию

mihali4, evg_m,, спасибо, не подумал что-то об этом.
Все тему можно закрывать.
ZBEP вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изучаю javascript не пойму почему не работает скрипт 4e4en JavaScript, Ajax 8 11.09.2010 19:17
Не пойму почему ошибка... ImmortalAlexSan Общие вопросы Delphi 13 22.08.2010 20:26
VBA не пойму почему не скрипт читает второе сообщение Drek Помощь студентам 0 20.07.2010 01:06
не пойму почему. spaun88 Общие вопросы Delphi 8 09.06.2010 17:26
Почему функция не возвращает никакое значение? Тупой Общие вопросы Delphi 1 31.05.2009 17:31