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

Вниз

wm_char   Найти похожие ветки 

 
Creative   (2006-05-18 15:20) [0]

вопрос очень глупый. вот этот код выводит на экран ASCII коды клавиш. А как сделать, чтобы он выводил собственно буквы?

var
aChar: word;

WM_char:
     begin
     aChar:= wParam;
      case aChar of
        97..122:
          begin
            SetRect(R, 100,150, 400, 180);
            invalidateRect(hwnd,nil, false);
          end;
       end;  
    end;

   WM_PAINT:
    begin
        DC:= BeginPaint(hwnd, ps);
        TextOut(dc, 100, 100, pAnsiChar(Chr(aChar)),length(IntToStr(aChar)));
        EndPaint(hwnd, ps);
    end;

Причем: сообщение перехватывается нормально, и если в функцию вывода текста на экран подставить просто стринг для примера - он выводится. Но на преобразовании программа затыкается. В чем подвох?


 
ANB ©   (2006-05-18 15:24) [1]


> IntToStr

Чего хотел, то и получил.
S := Char(aChar);
TextOut(dc, 100, 100, PChar(S),length(S));


 
Creative   (2006-05-18 15:35) [2]

> ANB ©   (18.05.06 15:24) [1]
> S := Char(aChar);
> TextOut(dc, 100, 100, PChar(S),length(S));

а при таком раскладе программа просто вылетает


 
ANB ©   (2006-05-18 15:43) [3]


> Creative   (18.05.06 15:35) [2]

Запости весь код и посмотри отладчиком - где вылетает.


 
ANB ©   (2006-05-18 15:45) [4]


> SetRect(R, 100,150, 400, 180);
>             invalidateRect(hwnd,nil, false);

Зачем генерить рект, если потом ты его нигде не используешь ?

Кстати, WM_PAINT имеет особенность срабатывать не только тогда, когда ты его заинвалидейтишь.


 
Игорь Шевченко ©   (2006-05-18 15:46) [5]


> TextOut(dc, 100, 100, pAnsiChar(Chr(aChar)),length(IntToStr(aChar)));
>
>        


TextOut(dc, 100, 100, pAnsiChar(Chr(aChar)),SizeOf(Char));


 
MBo ©   (2006-05-18 15:49) [6]

var
 c: array[0..1] of Char;

WM_char:
    begin
    c[0] :=Chr(wParam);
    c[1] :=#0;
...
  TextOut(dc, 100, 100, c, 1);



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

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

Наверх




Память: 0.45 MB
Время: 0.051 c
6-1138956468
Black Krok
2006-02-03 11:47
2006.06.04
Как БЫСТРО проверить доступность http: IP-адреса в И-нете?


2-1147699621
Ironman83
2006-05-15 17:27
2006.06.04
Выборки через TIBDataset


6-1138710014
Stanislav
2006-01-31 15:20
2006.06.04
Пинг Свичей


2-1148119967
tytci2007
2006-05-20 14:12
2006.06.04
Как упаковать в 6 байт дату и время


15-1147414464
Ламот
2006-05-12 10:14
2006.06.04
Диспетчер сервера терминалов отображает не всех пользователей





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский