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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2014, 06:47   #1
Екатерина 123
Пользователь
 
Регистрация: 15.05.2013
Сообщений: 33
Восклицание OpenDialog - загрузка текстового документа в Мемо. Lazarus. (процедура косячит, помогите исправить пожалуйста!!!!)

подскажите пожалуйста, в чем косяк, если я пишу вот такую процедурку
Код:
procedure TForm1.Button3Click(Sender: TObject);
begin
  OpenDialog1.Filter:='Текстовые файлы|*.txt|'+'Bat файлы |*.bat|';
  If  OpenDialog1.Execute and FileExists(OpenDialog1.FileName) then
       Memo1.Lines.LoadFromFile (OpenDialog1.FileName)
end;
по идее должна происходить загрузка текстового документа в Мемо, но у меня мемо остается пустым!!!!
заранее благодарю!!!
Екатерина 123 вне форума Ответить с цитированием
Старый 28.05.2014, 07:12   #2
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

FileExists тут совершенно не нужен. Если произошёл выбор файла через OpenDialog, то файл гарантированно существует, и проверять его наличие бесполезно.
Цитата:
procedure TForm1.Button3Click(Sender: TObject);
begin
OpenDialog1.Filter:='Текстовые файлы|*.txt|'+'Bat файлы |*.bat|';
If OpenDialog1.Execute then
Memo1.Lines.LoadFromFile (OpenDialog1.FileName)
end;
doktor255 вне форума Ответить с цитированием
Старый 28.05.2014, 08:38   #3
Екатерина 123
Пользователь
 
Регистрация: 15.05.2013
Сообщений: 33
По умолчанию

так ошибку выдает и совсем не запускается
Екатерина 123 вне форума Ответить с цитированием
Старый 28.05.2014, 08:44   #4
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Екатерина 123 Посмотреть сообщение
так ошибку выдает и совсем не запускается
Ошибку выложить не получается чтоли? Телепаты в отпуске.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 28.05.2014, 09:14   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
Если произошёл выбор файла через OpenDialog, то файл гарантированно существует, и проверять его наличие бесполезно.
Неужели? Для этого еще Options нужно соответственно настроить. А по умолчанию фигвам
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 28.05.2014 в 09:17.
Аватар вне форума Ответить с цитированием
Старый 28.05.2014, 09:44   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Неужели? Для этого еще Options нужно соответственно настроить. А по умолчанию фигвам
Ну и в этом случае объединять Execute и FileExist через AND я бы лично не стал.

Я бы примерно такой код написал
Код:
procedure TForm1.Button3Click(Sender: TObject);
begin
  OpenDialog1.Filter:='Текстовые файлы|*.txt|Bat файлы |*.bat|';
  If OpenDialog1.Execute then begin
      if FileExists(OpenDialog1.FileName) then
           Memo1.Lines.LoadFromFile (OpenDialog1.FileName)
      else 
        Application.MessageBox( 'Файл не найден!', 'Ошибка', MB_ICONSTOP or MB_OK);
  end;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.05.2014, 10:59   #7
Екатерина 123
Пользователь
 
Регистрация: 15.05.2013
Сообщений: 33
Вопрос

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
MB_ICONSTOP or MB_OK);
[/code]
что это за кусок??

у меня выдало
unit1.pas(203,92) Error: Identifier not found "MB_ICONSTOP"
unit1.pas(203,100) Error: Identifier not found "MB_OK"
unit1.pas(209) Fatal: There were 2 errors compiling module, stopping

как объявить эти переменные???это в var объявляется??

Последний раз редактировалось Stilet; 28.05.2014 в 11:24.
Екатерина 123 вне форума Ответить с цитированием
Старый 28.05.2014, 11:26   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Application.MessageBox( 'Файл не найден!', 'Ошибка', MB_ICONSTOP or MB_OK);
Можно заменить на
Код:
ShowMessage( 'Файл не найден!');
Или подключить в uses модуль windows и писать так:
Код:
MessageBox( 'Файл не найден!', 'Ошибка', MB_ICONSTOP or MB_OK);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.05.2014, 11:28   #9
Екатерина 123
Пользователь
 
Регистрация: 15.05.2013
Сообщений: 33
По умолчанию

ясно, спасибо, а можете объяснить как сделать напоминание о днях рождения друзей??

у меня не открываются даже существующие документы!!!выходит showmessage('документ не найден'), почему так???

Последний раз редактировалось Stilet; 28.05.2014 в 11:51.
Екатерина 123 вне форума Ответить с цитированием
Старый 28.05.2014, 11:52   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как сделать напоминание о днях рождения друзей??
А это смотря в каком виде и откуда берется инфа о ДР.
Цитата:
у меня не открываются даже существующие документы!
Признайся честно - Лазарус или всетки Делфи у тебя?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедура в lazarus kolian2000 Lazarus, Free Pascal, CodeTyphon 1 20.12.2012 00:24
Помогите исправить, пожалуйста abcdefg Паскаль, Turbo Pascal, PascalABC.NET 5 29.10.2009 21:51
Помогите пожалуйста исправить ошибку!!!Please!!! Irin@ Помощь студентам 1 02.04.2009 20:31
Пожалуйста помогите отобразить файл в двоичной форме в МЕМО opex007 Общие вопросы Delphi 3 20.09.2007 09:51
Помогите,пожалуйста,исправить задачу... Загадка Паскаль, Turbo Pascal, PascalABC.NET 1 21.12.2006 00:42