Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.04;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.047 c
2-1147785899
Dr. Genius
2006-05-16 17:24
2006.06.04
Ошибка при использовании NMSMTP


2-1147851226
Ironman83
2006-05-17 11:33
2006.06.04
DBNavigator


2-1147698846
webpauk
2006-05-15 17:14
2006.06.04
Скрыть информацию


15-1146739931
Pazitron_Brain
2006-05-04 14:52
2006.06.04
Что нужно, чтобы запустить IntraWeb приложение?


3-1144930044
RomanH
2006-04-13 16:07
2006.06.04
Использование User Defined Functions