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

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


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

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

Выпуск № 754
от 19.03.2007, 02:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 442, Экспертов: 62
В номере:Вопросов: 6, Ответов: 8


Вопрос № 78063: Здраствуйте ув. експерты ! Мне нужно зделать примерно так : В программу например должно подгружатся что то типа длл что ли после этого в меню делжен добавтится пункт который бы запускал эту дллку ! что б пункт оставался после закрытия програм...
Вопрос № 78093: Как создать игру на базе Delphi, дайте практические советы?...
Вопрос № 78115: Здрасте! Как в Делфи с панели задач убрать вкладку программы? то есть чтобы программу можно было закрыть только с помощью диспетчера задач (готивимся к 1 апреля! хотим сотрудников разыграть)...
Вопрос № 78134: Здрасвуйте уважаемые эксперты. Подскажите формат данных процедуры DeviceIoControl...
Вопрос № 78135: Доброе время суток эксперты. Помогите мне, уж не знаю что делать. Исходник ниже. Картинка http://slil.ru/24072711 около 50 килобайт. Мне нужно двигать эту картинку по экрану но чтобы предыдущаю копия затиралась. У меня что-то не получается. И не ...
Вопрос № 78154: Здравствуйте Уважаемые Эксперты! Подскажите пожайлуста, нужно сделать на Delphi будильник. СОбственно инетерсует сама работа с временем, как его отслеживать, проверять наступил ли заданный час. Может кто может помочь ссылкой на материал в...

Вопрос № 78.063
Здраствуйте ув. експерты !
Мне нужно зделать примерно так :
В программу например должно подгружатся что то типа длл что ли после этого в меню делжен добавтится пункт который бы запускал эту дллку ! что б пункт оставался после закрытия программы !
Посоветуйте как это зделать ! Или дайте какиенибудь ссылки !
Спасибо заранее !
Отправлен: 13.03.2007, 08:52
Вопрос задал: VaNuk (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: monah
Здравствуйте, VaNuk!
Все формируется как Plugin. В самой DLL создаете функцию с заранее известной структурой. В нее передаете адрес некой процедуры в основной программе. В дальнейшем из DLL вызываете эту процедуру с параметрами 'Заголовок':PChar; и указатель на обработчик onClick а в процедуре добавляете в меню пункт с переданным заголовком и связывете событие onClick с обработчиком.
---------
festina lente
Ответ отправил: monah (статус: Студент)
Ответ отправлен: 14.03.2007, 06:56


Вопрос № 78.093
Как создать игру на базе Delphi, дайте практические советы?
Отправлен: 13.03.2007, 12:33
Вопрос задал: Иркабаев Вадим (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: AlexanderR
Здравствуйте, Иркабаев Вадим!

Все современные игры используют 3d графикy.
Основными интерфейсами для создания 3d являются OpenGL и DirectX.

Наиболее перспективным является использование DirectX, т.к. этот программный пакет постоянно обнавляется и поддерживается производителями видеокарт.

Для Delphi существует набор компонентов для работы с DirectX. Называется DelphiX.

Думаю начать свое изучение вы можете, например отсюда: http://www.gamedev.ru/users/hex/articles/DelphiX


---------
Если ты хочешь понять я тебе помогу, но я не буду выполнять за тебя твою работу.
Ответ отправил: AlexanderR (статус: 2-ой класс)
Ответ отправлен: 13.03.2007, 14:24
Оценка за ответ: 4

Отвечает: Zolton007
Здравствуйте, Иркабаев Вадим!
Вы бы написали какую игру =) если кресики-нолики.... то тут надо тока ознакомиться с TStringGrid и логикой. Если ты хочешь сделать движок для 3-D графики, то надо читать книжки по OpenGL, DirectX и т.п. или можно еще скачать готовый движок, написанный на делфе и править и дополнять код.
---------
Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 6-ой класс)
Ответ отправлен: 13.03.2007, 20:14
Оценка за ответ: 3


Вопрос № 78.115
Здрасте! Как в Делфи с панели задач убрать вкладку программы? то есть чтобы программу можно было закрыть только с помощью диспетчера задач (готивимся к 1 апреля! хотим сотрудников разыграть)
Отправлен: 13.03.2007, 14:38
Вопрос задал: Shtuchka007 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

Убрать заголовок с панели задач достаточно применить функцию ShowWindow();, с параметром SW_HIDE, если необходимо вернуть его к "жизни" то просто параметр заменяем на SW_SHOWNORMAL.

Но для этого также необходимо знать хендл окна, которое мы прячем, его можно узнать с помощью FindWindow(), единственное что нужно правильно указать так это заголовок окна приложения.

В приложении смотрите код, который скрывает программу, так же ещ добавил и возможность блокировки кнопки "крестик", по нажатию на которую происходит закрытие приложения. (заголовок приложения вводим в Edit1)

Good Luck!!!

Приложение:

---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.

Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 13.03.2007, 15:47


Вопрос № 78.134
Здрасвуйте уважаемые эксперты. Подскажите формат данных процедуры DeviceIoControl
Отправлен: 13.03.2007, 17:11
Вопрос задал: Писарев, Павел, Юрьевич (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Gh0stik
Здравствуйте, Писарев, Павел, Юрьевич!

DeviceIoControl PROTO hDevice:DWORD,
dwIoControlCode:DWORD,
lpInBuffer:DWORD,
nInBufferSize:DWORD,
lpOutBuffer:DWORD,
nOutBufferSize:DWORD,
lpBytesReturned:DWORD,
lpOverlapped:DWORD


где:
hDevice - хэндл VxD полученный от функции CreateFile.
dwIoControlCode - задает операцию, которую должен выполнить VxD. Вы должны сначала получить список возможных кодов операций, которые может выполнять VxD.
lpInBuffer - адрес буфера, содержащего данные, необходимые VxD при выполнении операции, указанной в dwIoControl. Если операция не требует данных это значение должно быть NULL.
nInBufferSize - размер в байтах буфера lpInBuffer.
lpOutBuffer - адрес буфера, в который VxD будет помещать выходные данные. Если операция не требует выходных данных это значение должно быть NULL.
nOutBufferSize - размер в байтах буфера lpOutBuffer.
lpBytesReturned - адрес двойного слова, которое содержит размер данных, помещенных в lpOutBuffer.
lpOverlapped - адрес структуры OVERLAPPED, если Вы хотите использовать асинхронные операции. Если Вы хотите подождать, пока операция не завершится, поместите сюда NULL.
http://content.mail.ru/

Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 13.03.2007, 23:48


Вопрос № 78.135
Доброе время суток эксперты. Помогите мне, уж не знаю что делать. Исходник ниже. Картинка http://slil.ru/24072711 около 50 килобайт.
Мне нужно двигать эту картинку по экрану но чтобы предыдущаю копия затиралась. У меня что-то не получается. И не предлагайте исп. TImage, нужно Canvas. И вот ещё вопрос. Когда сетка нарисовалась двигаеш окно за границу экрана и обратно и весь рисунок нарисованный канвой стирается. Как от этого избавиться. Спасибо.

Приложение:

Отправлен: 13.03.2007, 17:17
Вопрос задал: Александр Михайлович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Маренич Владимир
Здравствуйте, Александр Михайлович!

Нельзя где попало рисовать на канве... В Винде существует специальный механизм для рисования. И надо его придерживаться. Borland в Delphi для формы (TForm) специально предназначил событие для дополнительного рисования на канве. Он вызывается тогда, когда этого требует Виндовс (соотв. событие). Можно "попросить" Винду перерисовать окошко с помощью метода Invalidate. Можно также отработать соответствующие сообщения для прорисовки (метод Update). А можно и то и другое в одном флаконе (метод Refresh). См. приложение. Может Вам это поможет. Удачи.

Приложение:

Ответ отправил: Маренич Владимир (статус: Студент)
Ответ отправлен: 13.03.2007, 21:03


Вопрос № 78.154
Здравствуйте Уважаемые Эксперты!
Подскажите пожайлуста, нужно сделать на Delphi будильник.
СОбственно инетерсует сама работа с временем, как его отслеживать, проверять наступил ли заданный час.
Может кто может помочь ссылкой на материал в интеренете, или ещё чем.
P.S.И тут деньги ввели, кошмар...Уже вопрос бесплатно не задать...
Отправлен: 13.03.2007, 20:24
Вопрос задал: Ustas (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Ustas!

Ложите на форму объект TTimer с вкладки Sustem. Ставите ему Interval:=750.
На свойство OnTimer пишете процедуру:
if TimeToStr(now)='19:42:45' then showmessage('ВРЕМЯ ВСТАВАТЬ');
Вот и вся идея...

Удачи!
---------
Ждешь квалифицированного ответа? Задай правильно вопрос!
Ответ отправил: Устинов Сергей Евгеньевич (статус: Практикант)
Ответ отправлен: 13.03.2007, 20:37
Оценка за ответ: 5
Комментарий оценки:
Благодарю.Кратко.Вежливо.И содержательно.

Отвечает: monah
Здравствуйте, Ustas!
Для работы с временем есть следующие функции:
Time:TDateTime; - возвращает текущее время.
Date:TDateTime; - возвращает текущую датту.
DecodeDate(Date:TDateTime; var Yar, Month, Day:Word); Разбирает значени даттыж
DayOfWeek(Date:TDateTime):integer; - возвращает номер дня недели (Воскресенье -1)
DecodeTime(Time:TDateTime; var Hour, Min, Sec,MSec:Word); Разбирает значение времени
EncodeDate(Yar, Month, Day:Word):TDateTime;
EncodeTime(Hour, Min, Sec,MSec:Word):TDateTime;
Добавлю, что тип TDateTime эквивалентен типу Real Следовательно прибавив к значению 1 мы получим следующую датту.
---------
festina lente
Ответ отправил: monah (статус: Студент)
Ответ отправлен: 14.03.2007, 06:26
Оценка за ответ: 5
Комментарий оценки:
Отлично, Благодарю, это пригодиться безусловно.


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

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

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

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

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


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


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

В избранное