Главная страница
    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.066 c
4-1142001409
pirate
2006-03-10 17:36
2006.06.04
Работа с буфером обмена


4-1136257669
Antonio
2006-01-03 06:07
2006.06.04
Учётная запись Win XP


15-1146931977
Volf_555
2006-05-06 20:12
2006.06.04
Как определить-какая программа перезаписывает файл explorer.exe?


15-1146906750
Delphi5.01
2006-05-06 13:12
2006.06.04
Часто видел StringList с посторонними компонентами


2-1147712772
***(H@kker)***
2006-05-15 21:06
2006.06.04
Как это делает WinAmp





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