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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.03.2008, 02:16
rain rain вне форума
Прохожий
 
Регистрация: 19.03.2008
Сообщения: 6
Репутация: 10
По умолчанию как открыть файл кнопкой?

помогите ктонить пжалста..что надо написать шоб кнопка открывала файл??..заранее очень благодарен..

Последний раз редактировалось rain, 19.03.2008 в 02:19.
Ответить с цитированием
  #2  
Старый 19.03.2008, 02:30
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию

Цитата:
Сообщение от rain
помогите ктонить пжалста..что надо написать шоб кнопка открывала файл??..заранее очень благодарен..

Должно помочь..

вызывет диалог открытия как в офисе

Зависимости: uses activeX
Автор: Babay_S
Дата: 27 сентября 2002 г.
************************************************** *

Код:
 uses activeX;

function GetFileNameFromBrowse(hOwner: LongInt; var sFile: string;
  sInitDir, sDefExt, sFilter, sTitle: string): Boolean;
{Вызывает диалог открытия файла
 Пример
 GetFileNameFromBrowse(handle,b1,'c:\Install','*.txt',
'Текстовые файлы'#0'*.txt'#0'Все файлы'#0'*.*'#0#0,'Название');
 фильтр который будет использоваться должен стоять в перечне первым
}

implementation

function SHGetFileNameFromBrowse(hOwner: LongInt; sFile: LPWSTR; nMaxFile:
  LongInt;
  sInitDir: LPWSTR; sDefExt, sFilter, sTitle: LPWSTR): Boolean;
  stdcall; external 'Shell32.dll' index 63;

//*************************** Код функций ****************************************

function GetFileNameFromBrowse(hOwner: LongInt; var sFile: string;
  sInitDir, sDefExt, sFilter, sTitle: string): Boolean;
var
  sFileW, sInitDirW, sDefExtW, sFilterW, sTitleW: PWideChar;
  sFileL, sInitDirL, sDefExtL, sFilterL, sTitleL: Integer;
begin
  sFileW := CoTaskMemAlloc(255 * sizeof(WideChar));
  StringToWideChar(SFile, SFileW, 255);
  SInitDirL := Length(sInitDir) + 1;
  sInitDirW := CoTaskMemAlloc(SInitDirL * sizeof(WideChar));
  StringToWideChar(SInitDir, SInitDirW, sInitDirL);
  SDefExtL := Length(sDefExt) + 1;
  sDefExtW := CoTaskMemAlloc(SDefExtL * sizeof(WideChar));
  StringToWideChar(SDefExt, SDefExtW, sDefExtL);
  SFilterL := Length(sFilter) + 1;
  sFilterW := CoTaskMemAlloc(SFilterL * sizeof(WideChar));
  StringToWideChar(SFilter, SFilterW, sFilterL);
  STitleL := Length(sTitle) + 1;
  sTitleW := CoTaskMemAlloc(STitleL * sizeof(WideChar));
  StringToWideChar(STitle, STitleW, sTitleL);
  Result := SHGetFileNameFromBrowse(hOwner, sFileW, Integer(sFileW), sInitDirW,
    sDefExtW, sFilterW, sTitleW);
  SFile := sFileW;
  CoTaskMemFree(sFileW);
  CoTaskMemFree(sInitDirW);
  CoTaskMemFree(sDefExtW);
  CoTaskMemFree(sFilterW);
  CoTaskMemFree(sTitleW);
end;
Пример использования: 

if GetFileNameFromBrowse(handle, b1, 'c:\Install', '*.txt',
  'Текстовые файлы'#0'*.txt'#0'Все файлы'#0'*.*'#0#0      , 'Название') then
begin

end; 
Ответить с цитированием
  #3  
Старый 19.03.2008, 02:51
rain rain вне форума
Прохожий
 
Регистрация: 19.03.2008
Сообщения: 6
Репутация: 10
По умолчанию

огооо....както вроде сложновато)....смысл вот в чем...на форме кнопка и эта кнопка должна открыть без браузера компилированный файл например Project1.exe
Ответить с цитированием
  #4  
Старый 19.03.2008, 03:03
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию

Цитата:
Сообщение от rain
огооо....както вроде сложновато)....смысл вот в чем...на форме кнопка и эта кнопка должна открыть без браузера компилированный файл например Project1.exe

Может так:

// Запуск файла
ShellExecute(Handle, nil, 'c:\Project1.exe', nil, nil, SW_SHOW);
Ответить с цитированием
  #5  
Старый 19.03.2008, 03:37
rain rain вне форума
Прохожий
 
Регистрация: 19.03.2008
Сообщения: 6
Репутация: 10
По умолчанию

А можно поподробней а то пишет вот такое вот: Undeclared identifier: 'ShellExecute'

Последний раз редактировалось rain, 19.03.2008 в 03:41.
Ответить с цитированием
  #6  
Старый 19.03.2008, 03:53
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию

Цитата:
Сообщение от rain
А можно поподробней а то пишет вот такое вот: Undeclared identifier: 'ShellExecute'

Модуль ShellAPI - не забудьте подключить его в uses!
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter