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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2009, 11:33   #1
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию Ошибки с учловиями в Delphi

Всем доброго времени суток. Столкнулся с проблемой написания условия.
1) Пишу так:
Код:
  if (yes.checked=True) then begin
    AssignFile(f,ExtractFilePath(paramstr(0))+'help');
    Reset(f);
    while not Eof(f) do begin
      Readln(f,i);
      if (i<>'1') then begin 
        form2.Showmodal;
        Continue;
      end;
    end;
    CloseFile(f);
  end;
Нужно чтоб программа проверяла файл и елси в нём нет 1, то загружала следующую форму. С моим кодом программа работает как ей вздумается, то загрузит, то не загрузит форму не зависимо от самого файла...
2) Как написать условия, что если на такой то форме нажата такая то кнопка то выполнить действия...
Код:
if (Form1.Button.Click=True) then begin
..............................
почему то не работает....
TaYgA вне форума Ответить с цитированием
Старый 06.12.2009, 11:35   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Думаю лучше грузить не текст, а число либо попробуйте:
Код:
if (Trim(i)<>'1') then begin
Trim - отсечение пробелов по краям строки.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 06.12.2009, 11:36   #3
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

Цитата:
Сообщение от TaYgA Посмотреть сообщение
2) Как написать условия, что если на такой то форме нажата такая то кнопка то выполнить действия...
Код:
if (Form1.Button.Click=True) then begin
..............................
Для этого есть обработчики событий.
Gerzs вне форума Ответить с цитированием
Старый 06.12.2009, 11:57   #4
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

Utkin, спасибо!
Gerzs, при нажатии на форме Form1 кнопку у меня открывается допустим Form2, а в Form3 нужно написать условие, что если кнопка была нажата сделать такие то действия. Прописать в Form1 это не получится....

Вынужден вернуться к этой теме. Уже как не крутил, всё равно условие не выполняется....
Код:
  if FileExists(ExtractFilePath(paramstr(0))+'help') then begin
    AssignFile(f,ExtractFilePath(paramstr(0))+'help');
    Reset(f);
    while not Eof(f) do begin
      Readln(f,i);
      if (Trim(i)<>'1') then Helpin.Timer1.Enabled:=True
        else Helpin.Timer1.Enabled:=False;
      Continue;
    end;
    CloseFile(f);
  end
    else Helpin.Timer1.Enabled:=True;
Файл имеет вид:
Код:
3
2
5
6
7
4
1
Если в файле встречается "1", то Timer1.Enabled:=False, а у меня он всегда True... Что не так?!?!?

Последний раз редактировалось Stilet; 07.12.2009 в 16:26.
TaYgA вне форума Ответить с цитированием
Старый 06.12.2009, 22:43   #5
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

В обработчике события кнопке на Form1 вызывай процедуру, в которой описано твое действие.
Gerzs вне форума Ответить с цитированием
Старый 06.12.2009, 22:57   #6
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

Gerzs, в данной ситуации я не использую никаких кнопок. На каждой форме в процедуре FormShow я прописал Helpin.Show т.е. это условие находится в этой процедуре!!!

Понял где стопорится Delphi? но как исправить эту ошибку и почему она возникает не пойму.... Добавил в проект ListBox и проверил какие значения принимает переменная i... Оказывается, что у файла считывается только первая строчка. Как это исправить?

Последний раз редактировалось Stilet; 07.12.2009 в 16:26.
TaYgA вне форума Ответить с цитированием
Старый 07.12.2009, 14:40   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Да не мучайся ты вручную. Загрузи уже в невидимый Мемо и рассматривай файл как массив строк.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 07.12.2009, 14:50   #8
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
только первая строчка. Как это исправить?
Код:
...
repeat
 Readln(f,i);
 ...
until eof(f);
...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 07.12.2009, 15:58   #9
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Да не мучайся ты вручную. Загрузи уже в невидимый Мемо и рассматривай файл как массив строк.
Тогда уж лучше в StringList. Помоему это лучше всех никаких readln assign и т.д
Код:
var SL:TStringList;
     i:integer;
......
SL:=TStringList.Create;
SL.LoadFromFile(ExtractFilePath(Application.ExeName)+'help');
for i:=0 to SL.Count-1 do
if Pos('1',SL[i])>0 then
begin
//ваши действия
break;
end;
SL.Free;
А почему ваш файл HELP не имеет расширения?

Последний раз редактировалось SERG1980; 07.12.2009 в 16:07.
SERG1980 вне форума Ответить с цитированием
Старый 07.12.2009, 18:11   #10
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

Делаю как вы мне и посоветывали, используя скрытый компонент. Объясните мне пожалуйсто, как работает эта строчка:
Код:
if Pos('1',SL[i])>0 then

Последний раз редактировалось TaYgA; 08.12.2009 в 17:22.
TaYgA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки в Delphi dvj_serg_grin Общие вопросы Delphi 2 15.06.2009 20:19
Ошибки в Delphi VadEr Помощь студентам 2 20.05.2009 22:42
Ошибки в Delphi RockForr Общие вопросы Delphi 9 30.04.2009 20:48
Ошибки автоматизации в Delphi Чук и Гек Помощь студентам 4 30.04.2009 09:56