DRKB
Для тех, кто использует drkb, будет полезен вот этот пост.
На, уважаемом мною, сайте увидел ссылку на . Я и до этого с трудом переносил его книги и статьи, но эта статья просто возмутила!
Намного проще изменить стандартный компонент TButton и больше никаких изменений в проекте делать не надо.
Как так можно??? Вместо того, чтобы объяснить новичкам, что это ОЧЕНЬ не желательно, он призывает поступать именно так. Ну в конце-концов - есть хелперы в новых (и, относительно, не новых. например D2006) версиях Delphi.
Я понимаю, что иногда это будет полезно, но такие случаи очень-очень редки. А новички, прочтя подобную статью, будут именно так и поступать. Что-то мне не вериться, что в какой-либо компании, занимающейся разработкой программ и в которой больше одного программиста, будут поступать подобным образом.
Итог - НИКОГДА так не делайте и перестаньте читать Фленова!
В Windows определены специальные, виртуальные коды, для кнопок клавиатуры. Например, VK_Enter, VK_Delete и т.д. Данные коды используются не часто, но все-же используются. Например, в OnKeyUp и в OnKeyDown.
Небольшая функция поможет вам преобразовать данные коды в символы:
function GetCharFromVirtualKey(Key: Word): string; var keyboardState: TKeyboardState; asciiResult: Integer; begin GetKeyboardState(keyboardState); SetLength(Result, 2); asciiResult := ToAscii(key, MapVirtualKey(key, 0), keyboardState, @Result[1], 0); case asciiResult of 0: Result := ''; 1: SetLength(Result, 1); 2:; else Result := ''; end; end;
Пример использования:
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState) ; begin Self.Caption := GetCharFromVirtualKey(Key) ; end;
Оригинал .
Конкурс просто провалился... Я ни разу не нашел ни одной статьи. Жаль. А ведь хотелось сделать это традицией - ежемесячно проводить конкурс на какую-то определенную тему.
1. Не надо использовать классы.
А зачем? Классы - это вред. Это слишком много кода. Какая защита данных? Какое скрытие методов? Только для себя же пишу. А сам разберусь... Наверное.
Pascal - как англ. язык, I Love You - слова местами не переставишь, всё прямо и понятно. С++ - как русский язык, Я люблю тебя, тебя люблю я, люблю я тебя - уйма вариантов с кучей интонаций. Asm - как китайский язык - одна черточка не в том месте и ты уже не признался в любви, а послал кого-то на йух
А ведь верная мысль...