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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 127
от 20.05.2005, 11:00

Администратор:Калашников О.А.
В номере:Вопросов: 4, Ответов: 12


Вопрос № 20857: Я использую процедуру RegisterHotKey, мне необходимо использовать разные коды клавишь, у например Alt я регистрирую кодом mod_alt, а F1 vk_f1, а вот как мне зарегистрировать буквовые клавиши и цифры. Например цифра 65 это буква A, подскажите остальны...
Вопрос № 20864: Здравствуйте, уважаемые эксперты. Помогите, пожалуйста, начинающему. На форме имеются две DirectoryListBox: в одной я выбираю папку, из которой будет проводиться копирование, в другой--папка, в которую копируется. Как организовать весь этот проце...
Вопрос № 20874: Здрасствуйте!!! Подскажи какой-нибудь подробный,мощный,лучший, с наибольшим обхватом, с ВинАпи и т.д. самоучитель по Делфи(Электронный)!У меня стоит Делфи 2005 Архитект Едишин!!! ПоФиг на вес главное содержание!!! Заранее блегодарен!!! ...
Вопрос № 20875: Доброго времени суток! Уважаемые эксперты не могли бы вы подсказать, как осуществить drag&drop участка Canvas'а, ...

Вопрос № 20857
Я использую процедуру RegisterHotKey, мне необходимо использовать разные коды клавишь, у например Alt я регистрирую кодом mod_alt, а F1 vk_f1, а вот как мне зарегистрировать буквовые клавиши и цифры. Например цифра 65 это буква A, подскажите остальные коды коды клавишь. А то vk_A и 'A' не работает.
Отправлен: 14.05.2005, 13:34
Вопрос задал: CJ (статус: Студент)
Всего ответов отправлено: 5

Отвечает: Stamm
Здравствуйте, CJ!
Попробуйте функцию перевода числа в символ
Chr(65)
Ответ отправил: Stamm (статус: 2-ой класс)
Отправлен: 14.05.2005, 13:47
Оценка за ответ: 4
Комментарий оценки:
:))) Попробовать должен был ты перед тем как мне давать совет. :)

Отвечает: Malish
Здравствуйте, CJ!
Можно посмотреть какому значению соответствует какая кнопка вот так:
установи свойство KeyPreview для формы в True;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
var i:integer ;
begin
Memo1.Lines.Add(IntToStr(Ord(Key)));
if Key=#119 then Form1.Close; //Это например W
end;
Так можно увидеть буквы, цифры и знаки.
Ответ отправил: Malish (статус: Студент)
Отправлен: 14.05.2005, 14:18

Отвечает: Ерёмин Андрей Андреевич
Здравствуйте, CJ!
Коды клавиш VK_... - обыкновенные Integer-числа, поэтому вместо этих VK_ констант можно просто писать соответствующие числа. А вот коды всех клавиш:
<b>Имя константы: HEX-значение Эквивалентная клавиша клавиатуры или мыши</b>
VK_LBUTTON 01 Left mouse button
VK_RBUTTON 02 Right mouse button
VK_CANCEL 03 Control-break processing
VK_MBUTTON 04 Middle mouse button (three-button mouse)
- 05-07 Undefined
VK_BACK 08 BACKSPACE key
VK_TAB 09 TAB key
- 0A-0B Undefined
VK_CLEAR 0C CLEAR key
VK_RETURN 0D ENTER key
- 0E-0F Undefined
VK_SHIFT 10 SHIFT key
VK_CONTROL 11 CTRL key
VK_MENU 12 ALT key
VK_PAUSE 13 PAUSE key
VK_CAPITAL 14 CAPS LOCK key
- 15-19 Reserved for Kanji systems
- 1A Undefined
VK_ESCAPE 1B ESC key
- 1C-1F Reserved for Kanji systems
VK_SPACE 20 SPACEBAR
VK_PRIOR 21 PAGE UP key
VK_NEXT 22 PAGE DOWN key
VK_END 23 END key
VK_HOME 24 HOME key
VK_LEFT 25 LEFT ARROW key
VK_UP 26 UP ARROW key
VK_RIGHT 27 RIGHT ARROW key
VK_DOWN 28 DOWN ARROW key
VK_SELECT 29 SELECT key
- 2A Original equipment manufacturer (OEM) specific
VK_EXECUTE 2B EXECUTE key
VK_SNAPSHOT 2C PRINT SCREEN key for Windows 3.0 and later
VK_INSERT 2D INS key
VK_DELETE 2E DEL key
VK_HELP 2F HELP key
VK_0 30 0 key
VK_1 31 1 key
VK_2 32 2 key
VK_3 33 3 key
VK_4 34 4 key
VK_5 35 5 key
VK_6 36 6 key
VK_7 37 7 key
VK_8 38 8 key
VK_9 39 9 key
- 3A-40 Undefined
VK_A 41 A key
VK_B 42 B key
VK_C 43 C key
VK_D 44 D key
VK_E 45 E key
VK_F 46 F key
VK_G 47 G key
VK_H 48 H key
VK_I 49 I key
VK_J 4A J key
VK_K 4B K key
VK_L 4C L key
VK_M 4D M key
VK_N 4E N key
VK_O 4F O key
VK_P 50 P key
VK_Q 51 Q key
VK_R 52 R key
VK_S 53 S key
VK_T 54 T key
VK_U 55 U key
VK_V 56 V key
VK_W 57 W key
VK_X 58 X key
VK_Y 59 Y key
VK_Z 5A Z key
VK_LWIN 5B Left Windows key (Microsoft Natural Keyboard)
VK_RWIN 5C Right Windows key (Microsoft Natural Keyboard)
VK_APPS 5D Applications key (Microsoft Natural Keyboard)
- 5E-5F Undefined
VK_NUMPAD0 60 Numeric keypad 0 key
VK_NUMPAD1 61 Numeric keypad 1 key
VK_NUMPAD2 62 Numeric keypad 2 key
VK_NUMPAD3 63 Numeric keypad 3 key
VK_NUMPAD4 64 Numeric keypad 4 key
VK_NUMPAD5 65 Numeric keypad 5 key
VK_NUMPAD6 66 Numeric keypad 6 key
VK_NUMPAD7 67 Numeric keypad 7 key
VK_NUMPAD8 68 Numeric keypad 8 key
VK_NUMPAD9 69 Numeric keypad 9 key
VK_MULTIPLY 6A Multiply key
VK_ADD 6B Add key
VK_SEPARATOR 6C Separator key
VK_SUBTRACT 6D Subtract key
VK_DECIMAL 6E Decimal key
VK_DIVIDE 6F Divide key
VK_F1 70 F1 key
VK_F2 71 F2 key
VK_F3 72 F3 key
VK_F4 73 F4 key
VK_F5 74 F5 key
VK_F6 75 F6 key
VK_F7 76 F7 key
VK_F8 77 F8 key
VK_F9 78 F9 key
VK_F10 79 F10 key
VK_F11 7A F11 key
VK_F12 7B F12 key
VK_F13 7C F13 key
VK_F14 7D F14 key
VK_F15 7E F15 key
VK_F16 7F F16 key
VK_F17 80H F17 key
VK_F18 81H F18 key
VK_F19 82H F19 key
VK_F20 83H F20 key
VK_F21 84H F21 key
VK_F22 85H F22 key
VK_F23 86H F23 key
VK_F24 87H F24 key
- 88-8F Unassigned
VK_NUMLOCK 90 NUM LOCK key
VK_SCROLL 91 SCROLL LOCK key
- 92-B9 Unassigned
- BA-C0 OEM specific
- C1-DA Unassigned
- DB-E4 OEM specific
- E5 Unassigned
- E6 OEM specific
- E7-E8 Unassigned
- E9-F5 OEM specific
VK_ATTN F6 Attn key
VK_CRSEL F7 CrSel key
VK_EXSEL F8 ExSel key
VK_EREOF F9 Erase EOF key
VK_PLAY FA Play key
VK_ZOOM FB Zoom key
VK_NONAME FC Reserved for future use.
VK_PA1 FD PA1 key
VK_OEM_CLEAR FE Clear key.
Ответ отправил: Ерёмин Андрей Андреевич (статус: 2-ой класс)
Отправлен: 14.05.2005, 14:22
Оценка за ответ: 5
Комментарий оценки:
Благодарю за помощь.

Отвечает: sir henry
Здравствуйте, CJ!
По-моему таких констант нет, только для служебных клавиш и цифровой клавиатуры. Однако никто Вам самому не мешает объявить эти константы:
VK_A = $65;
и т.п.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 16.05.2005, 09:45

Отвечает: Gubanov Denis Andreevitch
Здравствуйте, CJ!
Сделай себе так сказать конвертер клавиш... Возьми TEdit и TLabel. В TEdit при OnKeyPress
обработай функцию Chr(x), для перевода из символа в ASCII код, или Ord(x), для обратного перевода. Отобрази результат в TLabel. Так напишешь всю таблицу кодов...
Ответ отправил: Gubanov Denis Andreevitch (статус: 1-ый класс)
Отправлен: 16.05.2005, 13:00


Вопрос № 20864
Здравствуйте, уважаемые эксперты.
Помогите, пожалуйста, начинающему. На форме имеются две DirectoryListBox: в одной я выбираю папку, из которой будет проводиться копирование, в другой--папка, в которую копируется. Как организовать весь этот процесс.
Отправлен: 14.05.2005, 16:08
Вопрос задал: sasha7404 (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: X
Здравствуйте, sasha7404!
Вот пример.
Вобще-то компоненты со вкладки win 3.11 вроде как только для совместимости с Delphi 1, можно использоваь DirectoryOutline со вкладки Samples(у него тоже используется свойство Directory), хотяэто кому-как нравится.

Приложение:

Ответ отправил: X (статус: 4-ый класс)
Отправлен: 14.05.2005, 18:06

Отвечает: And1
Здравствуйте, sasha7404!
На сайте FullSources.nm.ru в разделе исходники есть очень интересные примеры, в том числе и копирование файлов через DirectoryListBox. Советую.
Вот ссылка: http://fullsource.nm.ru/files/sources/system/copy_files.zip
Ответ отправил: And1 (статус: 2-ой класс)
Отправлен: 16.05.2005, 13:26


Вопрос № 20874
Здрасствуйте!!! Подскажи какой-нибудь подробный,мощный,лучший, с наибольшим обхватом, с ВинАпи и т.д. самоучитель по Делфи(Электронный)!У меня стоит Делфи 2005 Архитект Едишин!!! ПоФиг на вес главное содержание!!!
Заранее блегодарен!!!
Отправлен: 14.05.2005, 22:45
Вопрос задал: chikanok (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: John Freeman
Здравствуйте, chikanok!
Не годится - Delphi 2005 это уже .NET , толку тебе в D8 не будет от того что ты хочешь, ставь Delphi 7, он ещё "нормальный". Лучший и простейший из всех справочников втч и по WINAPI - Help к Delphi.
Набор книг(лучше бумажных):
Borland Delhi 4.0. Руководство разработчика
Delphi 5 для профессионалов
Ну и любая по Delphi7 и Delphi 7 базы данных
+ все статьи на delphikingdom.ru , заодно поймёшь что такое Delphi 8 aka 2005
Ответ отправил: John Freeman (статус: Профессор)
Отправлен: 14.05.2005, 23:15

Отвечает: Stamm
Здравствуйте, chikanok!
Зайди на www.drkb.ru
Там есть help. Весит около 10 МБайт
Ответ отправил: Stamm (статус: 2-ой класс)
Отправлен: 16.05.2005, 07:16

Отвечает: sir henry
Здравствуйте, chikanok!
Тут единственое что можно Вам посоветовать:
www.ya.ru
Обхват самый наибольший. :)
А если серьезно, то такого нету, в принципе.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 16.05.2005, 09:52


Вопрос № 20875
Доброго времени суток! Уважаемые эксперты не могли бы вы подсказать,
как осуществить drag&drop участка Canvas'а,
Отправлен: 14.05.2005, 22:53
Вопрос задал: Меркулов А.С. (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Jadd
Здравствуйте, Меркулов А.С.!
Ну там весь драг энд дроп сводится к отслеживанию: а) перемещения мыши и б)состояния клавиши мыши. Т.е. есть, к примеру, рект, который нужно перетащить. В событии OnMouseMove мы определяем нажата ли и удерживается ли клавиша мыши (например каким-то флагом). Если нажата, тогда при перемещении нужно просто перерисовывать этот рект с новыми координатами. Вот, собсно, и все.
Ответ отправил: Jadd (статус: 4-ый класс)
Отправлен: 15.05.2005, 01:16
Оценка за ответ: 4
Комментарий оценки:
Спасибо за ответ, попробую воспользоваться

Отвечает: Gubanov Denis Andreevitch
Здравствуйте, Меркулов А.С.!
В событии OnMouseDown указываешь участок в свойсве канвы, которую ты хочешь скопировать (Обьект).Canvas.Bitmap с конкретным регионом (TRect), или копируешь в
другой тип TBitmap.
В событии OnMouseUp, в зависимости на чем оно произошло вставляешь как тебе удобно:
либо как обьект (но для этого надо его описать) или просто прорисовать на канве обьекта-контейнера с помощью свойства Canvas.Draw(x,y,TBitmap)
Ответ отправил: Gubanov Denis Andreevitch (статус: 1-ый класс)
Отправлен: 16.05.2005, 15:54


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

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

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

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

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


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


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Отписаться

В избранное