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

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


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

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

Выпуск № 461
от 02.05.2006, 20:05

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


Вопрос № 41379: Расскажите пожалуйста, как поймать соощение о нажатии несистемной клавиши - неактивным окном. Заранее спасибо...
Вопрос № 41404: Доброе время суток! Нужно передать из делфи файл скрипту на сервере, через POST, подскажите как это можно сделать. Вроде бы TWebBrowser это умеет, но в хелпе про отправку данных через пост нет ничего кроме упоминания что это делать можно. По...
Вопрос № 41423: Ув. эксперты, вопрос такой: Как сделать чтобы в LISTBOX менялся цвет текста той строки, под которой находится указатель мыши? Заранее спасибо....
Вопрос № 41449: Вечер добрый господа. Будьте так любезны подскажите ответ. Вот такой запрос (SELECT Str(([Мол1]))+'/'+Str((SELECT ([П_тел1]) FROM tb_Jivotn WHERE дата = :Todey)) FROM tb_Jivotn WHERE дата=[:Todey];) в среде Access работает без проблем, а в Delp...
Вопрос № 41464: Меня интересует алгоритм составления лунного календаря. Помогите мне с ним разобраться. заранее спасибо...

Вопрос № 41.379
Расскажите пожалуйста, как поймать соощение о нажатии несистемной клавиши - неактивным окном. Заранее спасибо
Отправлен: 26.04.2006, 20:23
Вопрос задал: Steel (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Решетник Д
Здравствуйте, Steel!
Следует покопать в сторону "системных ловушек" - Hook
SetWindowsHook
WH_KEYBOARD
нужно установить глобальную ловушку на клавиатуру.
---------
Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: 3-ий класс)
Ответ отправлен: 26.04.2006, 21:58

Отвечает: Аганов Дмитрий Анатольевич
Здравствуйте, Steel!
Если вам нужно перехватывать нажатие клавиш в системе, то см. http://delphiworld.narod.ru/base/hook_keys.html. А если нужно зарегистрировать системную горячую клавишу, то вот:
Создание системных горячих клавиш (ctrl+alt+F12):
RegisterHotkey(Handle, 1, mod_alt or mod_control, vk_f12);
Их обработка:
procedure TForm1.WMHotkey( var msg: TWMHotkey );
begin
if msg.hotkey = 1 then
begin
close;
BringToFront;
end;
end;
Не забудьте поместить procedure WMHotkey( var msg: TWMHotkey ); message WM_HOTKEY; в секцию private.
Ответ отправил: Аганов Дмитрий Анатольевич (статус: 9-ый класс)
Ответ отправлен: 27.04.2006, 12:20


Вопрос № 41.404
Доброе время суток!

Нужно передать из делфи файл скрипту на сервере, через POST, подскажите как это можно сделать. Вроде бы TWebBrowser это умеет, но в хелпе про отправку данных через пост нет ничего кроме упоминания что это делать можно. Подскажите, как это реализовать.

Заранее благодарен!
Отправлен: 27.04.2006, 01:34
Вопрос задал: Nexus (статус: 4-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Bochvarov NikB
Здравствуйте, Nexus!

Вот, в приложение, а если хочеш вес проект - мьили :)

Приложение:

Ответ отправил: Bochvarov NikB (статус: 8-ой класс)
Ответ отправлен: 27.04.2006, 02:55
Оценка за ответ: 5
Комментарий оценки:
Спасибо! буду пробовать...

Отвечает: AnD1
Здравствуйте, Nexus!
Сначало нужно сформировать урл запроса:
var
respose: string;
...
respose:='http://www.site.ru/script.cgi?parametr1=123?parametr2=qwerty?parametr3=123qwe';
затем с помощью TWebBrowser передать этот запрос скрипту:
WebBrowser1.Navigate (respose);
Если необходимо в параметрах скрипта передавать русские буквы, то нужно перекодировать этот текст, в "понятный" серверу (возможно это перекодирование и не понадобится). Перекодировать можно, напр. используя ф-ю в прил.

Приложение:

Ответ отправил: AnD1 (статус: 4-ый класс)
Ответ отправлен: 27.04.2006, 09:11
Оценка за ответ: 4
Комментарий оценки:
Не, мне нужно передавать данные именно через POST, GET (в URL как ты предлагаешь) не подходит


Вопрос № 41.423
Ув. эксперты, вопрос такой:

Как сделать чтобы в LISTBOX менялся цвет текста той строки, под которой находится указатель мыши?

Заранее спасибо.
Отправлен: 27.04.2006, 11:21
Вопрос задал: Чернявский Александр (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Рубан Николай Николаевич
Здравствуйте, Чернявский Александр!

После 15 минут экспериментов вот получился такой код:

Приложение:

---------
Мыслю - значит существую (Декарт)

Ответ отправил: Рубан Николай Николаевич (статус: 4-ый класс)
Ответ отправлен: 27.04.2006, 13:00
Оценка за ответ: 5
Комментарий оценки:
СПАСИБО! - РАБОТАЕТ

Отвечает: nimoid
Здравствуйте, Чернявский Александр!
1. Создаешь глобальную переменную, например MouseAtItem: integer;
2. В обработчике ListBox-а на событие OnMouseMove пишешь такой код:

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
MouseAtItem := (Sender as TListBox).ItemAtPos(Point(X,Y), True);
end;

Это позволяет определить, под какой строкой находится мышка. Если строка пустая (пустая область), то значение будет -1.

3. В обработчике OnDrawItem делаешь проверку и закрашиваешь нужную строку
примерно так:

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
if Index = MouseAtItem then
begin
// закрашиваем в нужный цвет
end else
begin
// возвращаем остальным строкам общий фон
end;
end;

Вот так. Должно работать.
---------
Пишем баги на любые патчи :-]
Ответ отправил: nimoid (статус: 8-ой класс)
Ответ отправлен: 27.04.2006, 13:06
Оценка за ответ: 4
Комментарий оценки:
Работает, если listbox перерисовывать :(


Вопрос № 41.449
Вечер добрый господа. Будьте так любезны подскажите ответ.
Вот такой запрос (SELECT Str(([Мол1]))+'/'+Str((SELECT ([П_тел1]) FROM tb_Jivotn WHERE дата = :Todey)) FROM tb_Jivotn WHERE дата=[:Todey];) в среде Access работает без проблем, а в Delphi не хочет сообщение(Неправильно определен объект параметр. Предоставлены несовместимые или неполные сведения) почему? Мне нужно чтоб так форматировалась строка. Подскажите если знаете.
Отправлен: 27.04.2006, 14:14
Вопрос задал: Владимир Владимирович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Проходящий Мимо
Здравствуйте, Владимир Владимирович!
Попробуйте привести формат дат к виду #mm/dd/yyyy# со знаком #
---------
Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 2-ой класс)
Ответ отправлен: 27.04.2006, 14:30
Оценка за ответ: 3
Комментарий оценки:
Вчера на досуге я всетаки нашел решение пришлось второй такойже параметр переименовать и вместо Str использовать Format вот так:
SELECT Format(([Мол1]),"")+"/"+ Format((SELECT ([П_тел1]) FROM tb_Jivotn WHERE дата = :Todey),"") FROM tb_Jivotn WHERE дата = :Todey2;
хотя в Access использовать два параметра с одним именем несоставляет труда.
Спосибо хоть кто нибуть откликнулся.


Вопрос № 41.464
Меня интересует алгоритм составления лунного календаря. Помогите мне с ним разобраться. заранее спасибо
Отправлен: 27.04.2006, 16:47
Вопрос задал: NC.Luther (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгения
Здравствуйте, NC.Luther!
Здесь я нашла наиболее подробную информацию о лунном календаре:
http://grigam.wallst.ru/kalend/kalen10.htm
А здесь находится календарь на 2006 год, Лунный новый год в 2006 году начался 29 января:
http://www.planet.org.ua/astronomy/Moon_calendar_2006.html
---------
Я не волшебник, я только учусь... А разве кто-то обещал, что будет легко?
Ответ отправила: Евгения (статус: 4-ый класс)
Ответ отправлен: 28.04.2006, 00:18


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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.31 от 28.04.2006
Яндекс Rambler's Top100

В избранное