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

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


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 504
от 16.06.2006, 08:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 352, Экспертов: 67
В номере:Вопросов: 7, Ответов: 13


Вопрос № 45813: Добрый день, уважаемые! Скажите, а как можно определить тип CD-ROM? То есть при запуске программы хотелось бы определить пишущий CD-ROM или нет, и если пишущий, то что именно он умеет писать (CD, DVD)...
Вопрос № 45816: Дорогие товарищи эксперты! Возможно ли ресурс(например mp3 мелодия), запакованный в exe-шник программы(путём помещения этой мелодии сначала в res, а потом уже подключённой к самому exe) использовать(например проигрывать в самой программе) не извл...
Вопрос № 45828: Здраствуйте,эксперты! Как можно программно проверить подключен-ли кто-нибудь к базе данных ?! InterBase Express...
Вопрос № 45836: Здравствуйте... я вроде как и сама эксперт тут, но вопрос такой возник у меня... он в целом к Делфи не относится, но вообще... вопрос про установочные файлы... обычно в качестве файла устонавки какой-то экзэшник... тоже самое ICQ и т.д. и при его заг...
Вопрос № 45854: Здравствуйте, уважаемые эксперты. вопрос такой: как можно сделать так, чтобы во время выполнения цикла for по нажатию кнопки его выполнение остановилось до следующего нажатия. Т.е. что-то типа кнопки паузы, чтобы посмотреть текущие результаты во ...
Вопрос № 45864: Отчет выводится в Word. Как вставить разделитель страниц?...
Вопрос № 45880: Подскажите как вырезать файл из папки [х] и вставить его в папку [у]! Желательно на примере!...

Вопрос № 45.813
Добрый день, уважаемые! Скажите, а как можно определить тип CD-ROM?
То есть при запуске программы хотелось бы определить пишущий CD-ROM или нет,
и если пишущий, то что именно он умеет писать (CD, DVD)
Отправлен: 10.06.2006, 10:16
Вопрос задал: Савенко Вадим Иванович (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Gh0stik
Здравствуйте, Савенко Вадим Иванович!

Посмотрите вот такие ссілки, возможно они Вам помогут:

http://delphiworld.narod.ru/base/get_disk_type.html
http://delphiworld.narod.ru/base/drives_info.html


Удачи!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаються события на земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Студент)
Ответ отправлен: 12.06.2006, 11:50


Вопрос № 45.816
Дорогие товарищи эксперты!
Возможно ли ресурс(например mp3 мелодия), запакованный в exe-шник программы(путём помещения этой мелодии сначала в res, а потом уже подключённой к самому exe) использовать(например проигрывать в самой программе) не извлекая в отдельный файл?
Если Вас не затруднит,поподробней пожайлуста.Спасибо за внимание.
Отправлен: 10.06.2006, 10:35
Вопрос задал: Ustas (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Решетник Д
Здравствуйте, Ustas!
Попробуйте использовать фунцкию
BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
Она позволяет проиграть звуковой файл с ресурса модуля.
подробное описание смотрите в справке.
---------
Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: 8-ой класс)
Ответ отправлен: 10.06.2006, 11:29
Оценка за ответ: 5

Отвечает: sir henry
Здравствуйте, Ustas!
Хочу добавить к ответу эксперта Решетник Д, что в системе, где будет запускаться Ваша программа, должен быть в обязательном порядке установлен кодек mp3, иначе никакго звука Вы не услышите.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 10.06.2006, 16:54
Оценка за ответ: 5


Вопрос № 45.828
Здраствуйте,эксперты!
Как можно программно проверить подключен-ли кто-нибудь к базе данных ?! InterBase Express
Отправлен: 10.06.2006, 12:41
Вопрос задал: chikanok (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, chikanok!
В Delphi должен быть компонент TIBDatabaseInfo, который возвращает всякую полезную информацию по базе. Для примера:
IBDatabaseInfo1.UserNames возвращает список подключенных пользователей.
Но естественно не ко всему серверу, а только к этой конкретной базе.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 10.06.2006, 16:51
Оценка за ответ: 5
Комментарий оценки:
Точто надо!!! Огромное спасибо!!!


Вопрос № 45.836
Здравствуйте... я вроде как и сама эксперт тут, но вопрос такой возник у меня... он в целом к Делфи не относится, но вообще... вопрос про установочные файлы... обычно в качестве файла устонавки какой-то экзэшник... тоже самое ICQ и т.д. и при его загрузке на компьютер устанавливается в разные места куча файлов, которые целиком порой гораздо больше места занимают, чем сам экзэшник...
Вопрос: Правильно ли я думаю, что к программе, например как к экзешнику делфи прикрепляются какие-то файлы , и в этом экзэ файле написано куда записать эти файлы и в какие системные файлы записать какую информацию?
Или как это вообще происходит?
Отправлен: 10.06.2006, 14:18
Вопрос задала: Евгения (статус: 6-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 11)

Отвечает: Злоумышленник
Здравствуйте, Евгения!
Сам компилятор Delphi при настройках по умолчанию создаёт исполнимый PE-файл EXE, который ничего никуда без Вашего ведома не пишет.

При создании "инсталляционной" программы обычно происходит, как Вы написали с ICQ, всё зависит от того, требуются ли для запуска EXE-файла какие-либо условия (другие файлы, настройки реестра и др.). Если Вы пишите программу, которая выводит сообщение "Hello world!", такой проге ничего не нужно и будет она работать в виде простого EXE и инстоллятор не нужен. А вот если прога нуждается в динамических библиотеках, использует файлы баз данных - тогда для удобства User'а делают установочный файл, который сам всё сделает с комфортом.

Надеюсь, я правильно понял Вас.
Ответ отправил: Злоумышленник (статус: 9-ый класс)
Ответ отправлен: 10.06.2006, 15:20

Отвечает: Татьяна
Здравствуйте, Евгения!
Ну дополню предыдущий ответ. Я думаю вы обязательно писали программу, в которой как минимум использовали файл (например ини-файл). Кроме того множество настроек может писаться в реестр. При использовании, например в программе COM-объектов, необходима их регистрация в системе. Да вообщем существует множество настроек для корректной работы того или иного приложения.
Программы-инсталяторы помогают автоматизировать этот процесс. Т.е. обычно пишется скрипт, выполняющий различные действия, подгатавливается каталог с набором необходимых файлов, а инсталятор все это упаковывает в один экзешник.
Возможно, будет любопытно посмотреть следующую ссылку
http://www.citforum.ru/programming/digest/nsis/
---------
Возможно все. И ничего возможно тоже.
Ответ отправила: Татьяна (статус: Студент)
Ответ отправлен: 10.06.2006, 22:11
Оценка за ответ: 5


Вопрос № 45.854
Здравствуйте, уважаемые эксперты.
вопрос такой: как можно сделать так, чтобы во время выполнения цикла for по нажатию кнопки его выполнение остановилось до следующего нажатия. Т.е. что-то типа кнопки паузы, чтобы посмотреть текущие результаты во время выполнения программы.
Отправлен: 10.06.2006, 20:38
Вопрос задал: Lichkaty Alexander (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Марк Крейн
Здравствуйте, Lichkaty Alexander!

Если я Вас правильно понял, то Вам нужно в определённом месте прервать цикл, посмотреть текущие результаты, а потом запустить не новый виток цикла, а весь цикл сначала. Для этого сделайте следующее:

В используемом Вами цикле (for, while, repeat-until) вставьте конструкцию которая выводит на экран результаты и сразу же после этой конструкции - команду "exit;". Команда просто остановит выполнение программы и всё. В приложении прикладываю пример, чтобы стало понятнее.
Если что-то не ясно, пишите.

Приложение:

Ответ отправил: Марк Крейн (статус: 3-ий класс)
Ответ отправлен: 10.06.2006, 21:12

Отвечает: Полховский Александр Владимирович
Здравствуйте, Lichkaty Alexander!
Если решать задачу именно для цикла for, то я предложу следующий кривоватый код:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
stopped:boolean;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
k1:integer;
begin
for k1:=1 to 30000 do
begin
sleep(20);
application.processmessages;
form1.Caption:=inttostr(k1);
if stopped
then
begin
form1.Caption:=form1.Caption+' stopped';
repeat
sleep(100);
application.processmessages;
until not stopped;
form1.Caption:=inttostr(k1);
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
stopped:=true;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
stopped:=false;
end;

end.

Вообще, лучше делать остановки на конкретном этапе/значении, или же на каждом.
---------
Спасём нашу хрупкую планету !
Ответ отправил: Полховский Александр Владимирович (статус: Практикант)
Ответ отправлен: 10.06.2006, 21:37


Вопрос № 45.864
Отчет выводится в Word. Как вставить разделитель страниц?
Отправлен: 10.06.2006, 22:57
Вопрос задал: ALEXEY (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, ALEXEY!
Попробуй так как написано в приложении. У меня (Office2003) все работает.
Поэкспериментировав со значением переменной c получишь нужный разрыв.
В примере - разрыв страницы.

Приложение:

---------
Ответы на все вопросы - на сайте www.ya.ru :)

Ответ отправил: Устинов Сергей Евгеньевич (статус: Студент)
Ответ отправлен: 11.06.2006, 00:47
Оценка за ответ: 4
Комментарий оценки:
Ответ правильный, но содержит большое количество избыточной информации.

Отвечает: Gh0stik
Здравствуйте, ALEXEY!

В предыдущем ответе уважаемый Устинов Сергей Евгеньевич почемуто использовал такой подход:
c:=7;
Paragraphs.Item(3).Range.InsertBreak(c);

Но при этом не аргементировал почему c:=7;

Поэтому я Вам советую использовать такой метод.

Если использовать, например

WordApp: TWordApplication;
WordDoc: TWordDocument;

то чтобы всавить зазделитель (разрыв) страниц можно воспользоваться командой:
InsertBreak(EmptyParam);
где EmptyParam - пустой параметр типа OleVariant который описывать не обязательно.

Удачи!!!

---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаються события на земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Студент)
Ответ отправлен: 12.06.2006, 11:24
Оценка за ответ: 5
Комментарий оценки:
Спасибо за понятный, короткий, конкретный, правильный ответ!


Вопрос № 45.880
Подскажите как вырезать файл из папки [х] и вставить его в папку [у]!
Желательно на примере!
Отправлен: 11.06.2006, 06:09
Вопрос задал: LanceLoty (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Савенко Вадим Иванович
Здравствуйте, LanceLoty!
Для файловых операций используйте SHFileOperation

Приложение:

Ответ отправил: Савенко Вадим Иванович (статус: 2-ой класс)
Ответ отправлен: 11.06.2006, 08:54

Отвечает: chikanok
Здравствуйте, LanceLoty!
Вот вам примерчик!
Надеюсь поможет!!!
Удачи!

Приложение:

---------
Главное желание,а там разберёмся!

Ответ отправил: chikanok (статус: 2-ой класс)
Ответ отправлен: 11.06.2006, 08:56

Отвечает: Serg_6667
Здравствуйте, LanceLoty!

Используется функция
BOOL MoveFile(

LPCTSTR lpExistingFileName, // address of name of the existing file
LPCTSTR lpNewFileName // address of new name for the file
);

Приложение:

Ответ отправил: Serg_6667 (статус: 2-ой класс)
Ответ отправлен: 14.06.2006, 18:45


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное