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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2007, 12:52   #1
Македонский
Александр
Форумчанин
 
Аватар для Македонский
 
Регистрация: 15.08.2007
Сообщений: 112
По умолчанию Создание файла определенного типа

Как можно создать файл при нажатии кнопки, но чтобы выпадало окошко (или что-нить подобное) с предложением выбрать тип создаваемого файла, например как в Windows правой мышкой-->создать-->... ?
Македонский вне форума Ответить с цитированием
Старый 04.09.2007, 13:01   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

popupmenu на вкладке standart
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 04.09.2007, 13:13   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пользуйся компонентом SaveDialog
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.09.2007, 09:52   #4
Македонский
Александр
Форумчанин
 
Аватар для Македонский
 
Регистрация: 15.08.2007
Сообщений: 112
По умолчанию

Я наверно неправильно выразился. Нужно, чтобы появлялось popup меню (или другое окошко), в котором было бы перечисление всех возможных типов файлов, из которого можно было бы выбрать какой файл пользователь хотел бы создать (как в Windows-е)
Македонский вне форума Ответить с цитированием
Старый 05.09.2007, 09:54   #5
Македонский
Александр
Форумчанин
 
Аватар для Македонский
 
Регистрация: 15.08.2007
Сообщений: 112
По умолчанию

PS.: SaveDialog оставлю в последнюю очередь, если ничего другого не выйдет
Македонский вне форума Ответить с цитированием
Старый 06.09.2007, 09:28   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

См выше. Компонент Tpopupmenu
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 06.09.2007, 10:44   #7
Македонский
Александр
Форумчанин
 
Аватар для Македонский
 
Регистрация: 15.08.2007
Сообщений: 112
По умолчанию

Квэнди, PopupMenu не содержит свойств Виндоусовского PopUp-а, там самому приходится создавать пункты и прописывать к ним события. А нельзя ли "позаимствовать" этакие пункты у windows?
Македонский вне форума Ответить с цитированием
Старый 06.09.2007, 10:53   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Можно разумеется, смотри в сторону реестра, там храняться все зарегистрированные типы файлов
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 06.09.2007, 11:05   #9
Македонский
Александр
Форумчанин
 
Аватар для Македонский
 
Регистрация: 15.08.2007
Сообщений: 112
По умолчанию

А примерчика не найдется?
Македонский вне форума Ответить с цитированием
Старый 06.09.2007, 11:11   #10
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

uses Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
reg: TRegistry;
keys: TStringList;
i: Integer;
typename, displayname, server: string;
begin
memo1.Clear;
reg := TRegistry.Create;
try
reg.rootkey := HKEY_CLASSES_ROOT;
if reg.OpenKey('', False) then
begin
keys := TStringList.Create;
try
reg.GetKeyNames(keys);
reg.CloseKey;
{memo1.lines.addstrings(keys);}
for i := 0 to keys.Count - 1 do
begin
if keys[i][1] = '.' then
begin
{this is an extension, get its typename}
if reg.OpenKey(keys[i], False) then
begin
typename := reg.ReadString('');
reg.CloseKey;
if typename <> '' then
begin
if reg.OpenKey(typename, False) then
begin
displayname := reg.ReadString('');
reg.CloseKey;
end;
if reg.OpenKey(typename + '\shell\open\command', False) then
begin
server := reg.ReadString('');
memo1.Lines.Add(Format('Extension: "%s", Typename: "%s", Displayname:"%s"' +
#13#10' Server: %s',
[keys[i], typename, displayname, server]));
reg.CloseKey;
end;
end;
end;
end;
end;
finally
keys.Free;
end;
end;
finally
reg.Free
end;
end;
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отключение звука у определенного муз. файла. bill Win Api 3 29.07.2008 10:41
Создание нового типа master_root Общие вопросы Delphi 2 02.07.2008 22:33
Создание своего типа данных xGroupers Общие вопросы Delphi 4 12.05.2008 13:53
Создание окна при получение определенного пакета GHOST_Kasper Общие вопросы Delphi 5 06.02.2008 13:01