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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2012, 12:35   #1
swoy45
Пользователь
 
Регистрация: 01.02.2012
Сообщений: 11
По умолчанию Вопрос по OpenDialog

Интересует такой вопрос: можно ли как-то в OpenDialog при открытии разных типов файла из фильтра выполнять разные действия? Я имею в виду для каждого типа файла соответственное действие.
Для этого мне приходиться делать две кнопки, для двух типов файлов:
Код:
procedure TMainForm.aOpenMapExecute(Sender: TObject);
begin
 OpenDialog.Filter := 'WAD Maps (*.wad)|*.wad|All files (*.*)|*.*';

 if OpenDialog.Execute then OpenMap(OpenDialog.FileName);
end;
Код:
procedure TMainForm.aOpenINIExecute(Sender: TObject);
begin
 OpenDialog.Filter := 'INI Maps (*.ini)|*.ini|All files (*.*)|*.*';

 if OpenDialog.Execute then
 begin
  FullClear();

  pLoadProgress.Left := (RenderPanel.Width div 2)-(pLoadProgress.Width div 2);
  pLoadProgress.Top := (RenderPanel.Height div 2)-(pLoadProgress.Height div 2);
  pLoadProgress.Show;

  LoadMapOld(OpenDialog.FileName);

  MainForm.Caption := Format('%s - %s', [FormCaption, ExtractFileName(OpenDialog.FileName)]);

  pLoadProgress.Hide;
  MainForm.FormResize(Self);
 end;
end;

Последний раз редактировалось swoy45; 01.02.2012 в 12:49.
swoy45 вне форума Ответить с цитированием
Старый 01.02.2012, 12:57   #2
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Если я вас правильно понял, то пробуйте так - после того как вы выбрали файл в opendialog, считайте его расширение и по расширению файла выбирайте нужное для него действие.
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 01.02.2012, 12:59   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Что мешает в одной процедуре по расширению выбранного файла управлять дальнейшим ходом событий?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.02.2012, 12:59   #4
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

можно проверять
Код:
var
i:integer;
begin
opdlg.Execute;
for i:=0 to opdlg.Files.Count-1 do begin
if ExtractFileExt(opdlg.Files.Strings[i])='.ini' then
showmessage('Файл настроек');

end;

end;
Кольша вне форума Ответить с цитированием
Старый 01.02.2012, 13:11   #5
swoy45
Пользователь
 
Регистрация: 01.02.2012
Сообщений: 11
По умолчанию

Аватар, один из файлов является текстовым файлом настроек, другой - архивом. Их по любому нужно обрабатывать по-разному.
Кольша, спс, но мне нужно не showmessage, а команда, посылаемая на другую процедуру. А так это как раз то, что надо.

Последний раз редактировалось swoy45; 01.02.2012 в 13:15.
swoy45 вне форума Ответить с цитированием
Старый 01.02.2012, 13:15   #6
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

спасибо сюда
Кольша вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenDialog NitroSki Компоненты Delphi 4 08.06.2011 08:52
OpenDialog Smerch66 Общие вопросы Delphi 11 27.03.2010 10:08
БД и OpenDialog alexeybest БД в Delphi 3 17.02.2010 09:34
OpenDialog Андрей= Компоненты Delphi 6 03.05.2008 15:06
OpenDialog.Options:=OpenDialog.Options+[ofAllowMultiSelect]; necky Компоненты Delphi 2 11.08.2007 12:53