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

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


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

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

Выпуск № 953
от 14.10.2007, 06:05

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


Вопрос № 104692: Здравствуйте уважаемые эксперты, Возникла необходимость доработать чужую программу, цель: создание внешнего API. метод: Внедрение DLL с помощью удаленных потоков (by Richter) Проблема в том что все примеры написаны на C++ Возмож...
Вопрос № 104709: Уважаемые эксперты Как узнать длину текста в пикселах который записан в Caption у Lable ?...
Вопрос № 104777: Здравствуйте, я тут делаю чат, нужно, чтобы сообщения отправлялись по нажатию кнопки ентер. Подскажите пожалуйста как сделать это...

Вопрос № 104.692
Здравствуйте уважаемые эксперты,
Возникла необходимость доработать чужую программу,
цель: создание внешнего API.
метод: Внедрение DLL с помощью удаленных потоков (by Richter)
Проблема в том что все примеры написаны на C++
Возможно ли осуществить данную задачу на Делфи?
Если возможно, приведите примеры кода внедрения или подскажите где
посмотреть.

Спасибо.
Отправлен: 08.10.2007, 14:53
Вопрос задал: DinGior (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: PavelGM
Здравствуйте, DinGior!

Насчет доработки - это зависит от количества информации, которая есть по чужой программе.

По Рихтеру: Да можно, но для внедрения нужно точно знать параметры вызова перехватываемой функции. В приложении вырезка из работающей программы на примере перехвата BitBlt (код DLL RDSPY, затем юнит InjectU из головной программы).

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

Приложение:

Ответ отправил: PavelGM (статус: 10-ый класс)
Ответ отправлен: 08.10.2007, 19:06
Оценка за ответ: 5
Комментарий оценки:
Не совсем понятно где заканчивается код dll,
но все равно информативно. Спасибо,буду разбираться.


Вопрос № 104.709
Уважаемые эксперты

Как узнать длину текста в пикселах который записан в Caption у Lable ?
Отправлен: 08.10.2007, 16:22
Вопрос задал: Кэр Лаэда (статус: Практикант)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 9)

Отвечает: din
Здравствуйте, Кэр Лаэда!
Довольно просто, Canvas.TextWidth(Label1.Caption) вернет длину в пикселях.
Удачи!
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: din (статус: Специалист)
Ответ отправлен: 08.10.2007, 18:00
Оценка за ответ: 4
Комментарий оценки:
да спасибо, я сам уже до этого дошел ))

Отвечает: Гальцов Андрей Михаилович
!!!
Здравствуйте, Кэр Лаэда!

Я конечно возможно не правильно понял, но помоему это не сложно len:=Canvas.TextWidth(TLabel1.Caption);

Повторный ответ
-----
∙ Отредактировал: Denisss (Профессионал)
∙ Дата редактирования: 13.10.2007, 14:22

---------
Да здравтствует С++!!!...;)
Ответ отправил: Гальцов Андрей Михаилович (статус: 3-ий класс)
Ответ отправлен: 08.10.2007, 20:12
Оценка за ответ: 4
Комментарий оценки:
вообще то вы правильно поняли, тока ответ был уже дан притом один раз мной в минифоруме.


Вопрос № 104.777
Здравствуйте, я тут делаю чат, нужно, чтобы сообщения отправлялись по нажатию кнопки ентер.
Подскажите пожалуйста как сделать это
Отправлен: 09.10.2007, 05:54
Вопрос задал: Исаак Моисеевич (статус: 2-ой класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Gladiator
Здравствуйте, Исаак Моисеевич!

Св-во формы KeyPreview установить в True

и затем см. в приложении.

Приложение:

Ответ отправил: Gladiator (статус: Студент)
Ответ отправлен: 09.10.2007, 08:09
Оценка за ответ: 5

Отвечает: Delph
Здравствуйте, Исаак Моисеевич!

Компоненты, предполагающие ввод данных с клавиатуры, предоставлят доступ к обработчику события с названием OnKeyPress. Выберите компонент, где происходит редактирование текста перед передачей. В редакторе объектов на вкладке Events сделайте двойной щелчок по указанному событию, и в проявившейся процедуре обработки напишите:

if Key = #13 then
begin
<Ваши_Действия_по_отправке>
end;

Вариант, предложенный Gladiator'ом, отличается от моего тем, что у меня клавиша <Enter> перехватывается одним компонентом (и то при условии, что фокус активности на нём), а у него <Enter> активирует <Ваши_Действия_по_отправке> независимо от того, на каком компоненте или даже просто на форме будет фокус ввода. Что для Вас удобнее - выбирайте по своим соображениям.
---------
Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.
Ответ отправил: Delph (статус: 10-ый класс)
Ответ отправлен: 09.10.2007, 08:19
Оценка за ответ: 5

Отвечает: PM_pilot
Здравствуйте, Исаак Моисеевич!
Здравствуйте, Исаак Моисеевич!
Нужно проверять клавишу через событие OnKeyPress если клавиша == VK_RETURN то отправляете иначе нет.
Вот может пригодиться: http://delphi.about.com/od/objectpascalide/l/blvkc.htm
Ответ отправил: PM_pilot (статус: 1-ый класс)
Ответ отправлен: 09.10.2007, 18:05
Оценка за ответ: 5


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.60.2 от 13.10.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное