Вопрос № 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, дайте практические советы?
Все современные игры используют 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 апреля! хотим сотрудников разыграть)
Убрать заголовок с панели задач достаточно применить функцию ShowWindow();, с параметром SW_HIDE, если необходимо вернуть его к "жизни" то просто параметр заменяем на SW_SHOWNORMAL.
Но для этого также необходимо знать хендл окна, которое мы прячем, его можно узнать с помощью FindWindow(), единственное что нужно правильно указать так это заголовок окна приложения.
В приложении смотрите код, который скрывает программу, так же ещ добавил и возможность блокировки кнопки "крестик", по нажатию на которую происходит закрытие приложения. (заголовок приложения вводим в Edit1)
Good Luck!!!
Приложение:
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 13.03.2007, 15:47
Вопрос № 78.134
Здрасвуйте уважаемые эксперты. Подскажите формат данных процедуры DeviceIoControl
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. И вот ещё вопрос. Когда сетка нарисовалась двигаеш окно за границу экрана и обратно и весь рисунок нарисованный канвой стирается. Как от этого избавиться. Спасибо.
Отвечает: Маренич Владимир
Здравствуйте, Александр Михайлович!
Нельзя где попало рисовать на канве... В Винде существует специальный механизм для рисования. И надо его придерживаться. 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 Комментарий оценки: Отлично, Благодарю, это пригодиться безусловно.