Вопрос № 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. Так напишешь всю таблицу кодов...
Здравствуйте, уважаемые эксперты.
Помогите, пожалуйста, начинающему. На форме имеются две 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)