Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.06.16;
Скачать: [xml.tar.bz2];

Вниз

Как получить название кнопки?   Найти похожие ветки 

 
}{enon   (2003-04-17 17:32) [0]

В общем, пишу игрушку. Нужно, чтобы управление можно было настраивать (в том числе, на CTRL и т.п.). Проблема в том, что функция GetKeyNameText, которая должна выдавать имя кнопки вызывает системную ошибку по некоторому адресу в user32.dll (!).
Вот код:
procedure Tsettings.keysKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
s: string[20];
begin
getkeynametext(key,^s,20);
end;

Пробовал изменять тип s, но ничего не изменяется. Может кто-то знает, в чем дело? Заранее благодарен!


 
Игорь Шевченко   (2003-04-17 17:55) [1]

procedure Tsettings.keysKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
s: array [0..20] of char;
begin
getkeynametext(key,s,sizeof(s));
end;


 
}{enon   (2003-04-17 18:05) [2]

Спасибо!
Если не трудно, не могли бы объяснить, что не так в моем коде - string это же и есть array of char, но управляемый?


 
MBo   (2003-04-17 18:06) [3]

^s - что за дикость?

Обрабатывай WM_KEYDOWN сам:

var
s: array[0..20] of Char;
begin
getkeynametext(m.lparam,s,20);
caption:=s;


или разберись, как Key образуется из lparam


 
}{enon   (2003-04-17 18:25) [4]

2 MBo
Это не дикость, а аналогия:
type PChar: ^Char (tooltip при наведении на PChar)

Млин... Не работает - в s помещается пустая строка (все символы нулевые)


 
MBo   (2003-04-17 18:40) [5]

}{enon
Я дал рабочий пример. На всякий случай объявление:

procedure WMKeyDown(var m:TMessage); message WM_KeyDown;


 
}{enon   (2003-04-17 18:53) [6]

Если обрабатывать это сообщение, то действительно все работает. Спасибо!



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.06.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.006 c
1-50317
OlegM
2003-06-03 12:09
2003.06.16
Почему image не меняет свои размеры


1-50283
NickName
2003-06-03 10:58
2003.06.16
Поиск компонентов по форме


1-50358
Pattern
2003-06-02 21:52
2003.06.16
---|Ветка была без названия|---


11-50266
Alexander
2002-09-23 09:28
2003.06.16
Что-то у меня в runtime не получается изменить заголовки страниц


14-50487
Kostik
2003-05-30 00:27
2003.06.16
Помогите найти инфу по B, B+, B* деревьям.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский