Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на Delphi

Выпуск № 062
от 18.08.2002, 05:30

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 133
Отправлено ответов: 200
Активность: 150.3 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


 Список экспертов, ответы которых опубликованы в данном выпуске

Painbringer
Статус: Доверительный
Общий рейтинг: 114.52
[Подробней >>]
nix
Статус: Доверительный
Общий рейтинг: 112.31
[Подробней >>]
Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 119.85
URL: Пристанище неодинокого программиста
[Подробней >>]
 
P@V
Статус: Доверительный
Общий рейтинг: 107.47
[Подробней >>]
Марк Абловацкий
Статус: Начальный
Общий рейтинг: 103.5
[Подробней >>]
Pablo
Статус: Опытный
Общий рейтинг: 131.67
URL: Моя страничка
[Подробней >>]
 
Sanya
Статус: Опытный
Общий рейтинг: 130.16
[Подробней >>]
ROM
Статус: Доверительный
Общий рейтинг: 110.94
[Подробней >>]
ALastorZ
Статус: Опытный
Общий рейтинг: 133.89
Телефон: 8 095 152-7614
[Подробней >>]
 
Sergey Lizin
Статус: Начальный
Общий рейтинг: 103.18
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 123. Здраствуйте эксперты. У меня стандартный проигрыватель WAV файлов - Winamp. Как мне сделать, так, чт... (ответов: 5)
Вопрос № 124. Здравствуйте! Допустим база данных(Paradox) создана! Я хочу, чтобы она работала на любом компьютере!... (ответов: 3)
Вопрос № 125. Пришлите пример использования WIN API в Delphi, желательно с комментариями.... (ответов: 3)
Вопрос № 126. Здравтвуйте товарищи! Не подскажите ли у TPrinter свойство copies вообще работает или надо все рукам... (ответов: 2)
Вопрос № 127. Здравствуйте, masters! Может быть кто-нибудь знает, как сделать, чтобы cd-rom не открывался, когда н... (ответов: 4)

Вопросов: 5, ответов: 17


 Вопрос № 123

Здраствуйте эксперты. У меня стандартный проигрыватель WAV файлов - Winamp. Как мне сделать, так, чтобы WAV файлы проигрывала моя программа (видимо как-то через реестр (естественно используя Delphi)). Пасибо!



Вопрос отправлен: 13.08.2002, 10:25
Отправитель: PC GAMER (pcgamer@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Painbringer

Здравствуйте, PC GAMER! (и зачем гамеру делфя - чувак, в это не играют! :) )
Короче вот. Информация о типах файлов хранится в реестре в разделе HKEY_CLASSES_ROOT. Находим там нужный тип файла - в нашем случае раздел ".wav". Его значение по умолчанию - стринг с сылкой на раздел с описание че делать то. В твоем случае он равен "Winamp.file". ЭТО ЗНАЧЕНИЕ ТЕБЕ НАДА БУДЕТ ПОМЕНЯТЬ НА ТВОЙ "PCGamerPlayer.file".
Собственно далее находим раздел "HKEY_CLASSES_ROOTWinamp.file" (а ты стало быть создаешь свой этот "PCGamerPlayer.file". Этот раздел имеет структуру:
Значение по умолчанию - описание "Winamp file"
В shell:
Open - в нем command - командная строка: "C:PROGRAM FILESWINAMPWINAMP.EXE" "%1"
Ну и другие команды типа Play, Edit и все такое.
Далее, значится в делфе есть класс TRegistry. Смотри описание и это:
procedure TForm1.Button2Click(Sender: TObject);
Var a: TRegistry;
begin
a:=TRegistry.Create;
a.RootKey:=HKEY_CLASSES_ROOT;
if a.OpenKey('.wav',false) then Button2.Caption:=a.ReadString('');
end;

Ответ отправлен: 13.08.2002, 23:03
Отправитель: Painbringer


Отвечает nix

Доброе время суток, PC GAMER!
Енто можно сделать и без Delphi>>>
Первый способ(простой):
Выделяешь любой *.wav, затем, удерживая Shift, Щелкаещь правой кнопкой по ентому файлу >> открыть с помощью... >>> >>> ставишь галку "всегда открывать файлы ентого типа"(или что-то в роде етого) >>> Обзор... >>> указываешь свою программу >>> ОК >>> ОК. :-)))
Второй способ(продвинутый):
Открываешь проводник меню вид >>> свойства папки... >>> Типы файлов >>> находишь тип wav >>> свойства ...
Дальше сам разберешся :-))))

Ответ отправлен: 13.08.2002, 12:48
Отправитель: nix


Отвечает Артём Шегеда

Приветствую Вас, PC GAMER!

Немного повозмущаюсь по праву старшего...
Как можно писать такие программы, не зная, как работает Windows? Вы бы хотя бы в реестр заглянули...

Теперь по делу. В реестре в разделе HKEY_CLASSES_ROOT\ хранятся ассоциации файлов в формате "HKEY_CLASSES_ROOT\.ext", где ".ext" - расширение файла. Значение "по умолчанию" хранит псевдоним этого типа файлов. А вот "HKEY_CLASSES_ROOT\Псевдоним" хранит действия, которые выполнит Windows для работы с этим типом файлов.
К примеру, у меня "HKEY_CLASSES_ROOT\.wav\@" содержит "RealPlayer.WAV.6", а "HKEY_CLASSES_ROOT\RealPlayer.WAV.6\shell\opencommand\@" содержит "C:\Program Files\Real\RealOne Player\RealPlay.exe" "%1".
Чтобы решить твою задачу, следует сделать пять действий.
1. Научиться работать с TRegistry (Uses Registry)
2. Создать (или открыть) ключ "HKEY_CLASSES_ROOT\.wav" и присвоить параметру "@" значение "MyApp.WAV" (или что-то типа того)
3. Создать ключ "HKEY_CLASSES_ROOT\MyApp.WAV\shell\open\command" и присвоить параметру "@" значение "C:\Program Files\MyApp.exe" "%1".
4. Открыть ключ "HKEY_CLASSES_ROOT\MyApp.WAV\shell" и присвоить параметру "@" значение "open".
5. Предусмотреть в своей программе обработку командной строки (ParamCount, ParamStr())

Почитай справку по компоненте TRegistry.

Ответ отправлен: 13.08.2002, 12:52
Отправитель: Артём Шегеда


Отвечает P@V

Добрый день, PC GAMER!
Очень просто. Если на своей машине то ручками [Shift]+пр.клик->открыть с помощью...

Dmr>Как зарегистрировать свое расшерения для файлов? Т.е. Dmr>чтобы при щелчке по такому файлу вызывалась моя Dmr>программа.
Dmr>Вот пример:
//Use the registry to register your own filetype.
uses registry;
procedure TForm1.RegisterFileType(prefix:String; exepfad:String);
var
reg:TRegistry;
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_CLASSES_ROOT;
//create a new key --> .pci
reg.OpenKey('.'+prefix,True);
//create a new value for this key --> pcifile
reg.WriteString('',prefix+'file');
reg.CloseKey;
//create a new key --> pcifile
reg.CreateKey(prefix+'file');
//create a new key pcifileDefaultIcon
reg.OpenKey(prefix+'fileDefaultIcon',True);
//and create a value where the icon is stored --> c:project1.exe,0
reg.WriteString('',exepfad+',0');
reg.CloseKey;
&!
nbsp;reg.OpenKey(prefix+'fileshellopencommand',True);
//create value where exefile is stored --> c:project1.exe "%1"
reg.WriteString('',exepfad+' "%1"');
reg.CloseKey;
reg.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
RegisterFileType('pci','c:project1.exe');
end;

Dmr>Комментирий от Eugine Veselov (veselov@astral.ntu-Dmr>kpi.kiev.ua)
А не проще при создании установочного пакета, выставить настройки реестра, заодно и дерегистрацию обеспечим, да и файлы нужного типа будут с нужными иконками ДО первого запуска програмы.

Ответ отправлен: 13.08.2002, 13:59
Отправитель: P@V


Отвечает Марк Абловацкий

Приветствую Вас, PC GAMER!
Зачем реестр??? И зачем Delphi??? Нажимаешь правую кнопку мыши, зажимая Shift, на файле WAV. Выбираешь действие "Открыть с помощью -> Выбрать проограмму". Нажимаешь "Другая". Выбираешь свою программу, Ставишь галочку на "Использовать её для всех файлов такого типа".

Ответ отправлен: 13.08.2002, 17:39
Отправитель: Марк Абловацкий


 Вопрос № 124

Здравствуйте!
Допустим база данных(Paradox) создана! Я хочу, чтобы она работала на любом компьютере! Что для этого нужно? Какой минимум нужно устанавлить на другом компе (как составить CD), чтоб я на 100% был уверен, что она там работает?
И ещё!!
Как зарегистрировать альяс на чужем компе, чтоб был доступ к базе?



Вопрос отправлен: 13.08.2002, 12:08
Отправитель: Orlando (orlando@kaluga.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Painbringer

Привет чувак!!!
Дык нафиг тебе алиас? нафиг тебе устанавливать БДЕ и все такое. если у тебя не супер-пупер грандиозный проект то можно просто открывать свои файлы с таблицами а в католог с прогой навалять файлов бдешных. я вот в одном проекте таскаю вот чё (см. приложение). типа может и не культурно - зато надежно и нет конфликтов с версиями.

Приложение:

Ответ отправлен: 13.08.2002, 23:03
Отправитель: Painbringer


Отвечает Артём Шегеда

Добрый день, Orlando!

Если есть базы данных, то предполагается использование BDE32. А значит, в инсталляцию следует включить установку BDE.
Функции работы с BDE расписаны в "C:\Program Files\Common Files\Borland Shared\BDE\bde32.hlp" (если ты, конечно, ставил "по умолчанию"). Тебе, в частности, нужна DbiAddAlias. В хелпе даже примеры есть.

Ответ отправлен: 13.08.2002, 16:31
Отправитель: Артём Шегеда


Отвечает Pablo

Здравствуй, Orlando!
Ну смотря какой компонент ты там используешь ты можешь устанавливать либо BDE, либо Interbase или либо MySQL. А чтоб вообще безо всего работала база данных, то используй TADO компоненты и, например, базу данных MS Access.

Ответ отправлен: 14.08.2002, 22:55
Отправитель: Pablo


 Вопрос № 125

Пришлите пример использования WIN API в Delphi, желательно с комментариями.



Вопрос отправлен: 13.08.2002, 12:09
Отправитель: Yevg

[Следующий вопрос >>] [Список вопросов]

Отвечает nix

Добрый день, Yevg!


Приложение:

Ответ отправлен: 13.08.2002, 12:33
Отправитель: nix


Отвечает Артём Шегеда

Здравствуйте, Yevg!

Где-то читал, что "... использование Delphi VCL не отменияет использования Windows API, а наоборот - дополняет Windows API новыми возможностями".
Я же, стараюсь использовать VCL по-минимуму, тогда, когда нужно что-то быстро сделать. Для "грандиозных проектов" стараюсь использовать Windows API.

Приложение:

Ответ отправлен: 13.08.2002, 15:39
Отправитель: Артём Шегеда


Отвечает Sanya

Доброе время суток, Yevg!
Usses ShellAPI -Объявляем.
...
ShellExecute(Handle,nil,'file.doc',nil,nil,SW_RESTORE); - пользуем, т.е. запускаем word(точнее программу зарегестрированную для фалов *.doc) и открываем в нём file.doc!
Удачи!

Ответ отправлен: 14.08.2002, 02:30
Отправитель: Sanya


 Вопрос № 126

Здравтвуйте товарищи!
Не подскажите ли у TPrinter свойство copies вообще работает или надо все руками делать? и когда ему значение задавать.



Вопрос отправлен: 13.08.2002, 22:07
Отправитель: Painbringer

[Следующий вопрос >>] [Список вопросов]

Отвечает Sanya

Доброе время суток, Painbringer!
Отлично работает, к примеру:
Printdialog1.Copies:=25;
Printdialog1.Execute;
В обратную сторону работает тоже:
If Printdialog1.Execute = true then ColCopies:=Printdialog1.Copies
Удачи!

Ответ отправлен: 14.08.2002, 03:02
Отправитель: Sanya


Отвечает Pablo

Доброе время суток, Painbringer!
Ну по идее должно работать, если задать ему значение заранее.

Ответ отправлен: 14.08.2002, 22:55
Отправитель: Pablo


 Вопрос № 127

Здравствуйте, masters! Может быть кто-нибудь знает, как сделать, чтобы cd-rom не открывался, когда на нем нажимают кнопочку (без молотка - программно)? У меня есть основание предполагать, что это возможно.



Вопрос отправлен: 13.08.2002, 23:20
Отправитель: Евгений (other@mail.kz)

[Следующий вопрос >>] [Список вопросов]

Отвечает ROM

Добрый день, Евгений!
Конечно возможно. Ставь хук на открывашку и лови своей прогой.

Ответ отправлен: 14.08.2002, 18:18
Отправитель: ROM


Отвечает ALastorZ

Здравствуйте, Евгений!
У меня тоже, во всяком случае Nero это делает на ура... Правда как оно делается я в свое время (с полгода назад) в рунете и книжках искал так и не нашёл, хотел прогу пакостницу написать, так что я думаю, что стандартной Дельфовой функции таковой нет придется использовать что-то еще, может просто апишная функция есть а может и нет...

Ответ отправлен: 14.08.2002, 05:26
Отправитель: ALastorZ


Отвечает nix

Здравствуйте, Евгений!
На сколько я занаю, такой возможности нет.


Ответ отправлен: 14.08.2002, 06:08
Отправитель: nix


Отвечает Sergey Lizin

Доброе время суток, Евгений!
Как это сделать не знаю, но хочу сказать, что в Linux так оно и есть при загрузке. Скорее всего через порты.

Ответ отправлен: 14.08.2002, 12:11
Отправитель: Sergey Lizin



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (39)
C / C++ (28)
Perl (15)
Delphi (18)
Pascal (27)
Basic / VBA (11)
Java / JavaScript (13)
PHP (12)
MySQL / MSSQL (12)
Пользователю
Windows 95/98/Me (48)
Windows NT/2000/XP (32)
"Железо" (37)
Поиск информации (18)
Администратору
Windows NT/2000/XP (16)
Linux / Unix (13)
Юристу
Гражданское право (8)
Семейное право (6)
Трудовое право (7)
КоАП (5)

Отправить вопрос всем экспертам выбранной рассылки.




be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное