Опубликовал devprog на Ноябрь 3, 2008
Не многие программисты на Delphi знают, что в компоненте TMemo есть функция отмены последней правки. Её вызов выглядит следующим образом:
Memo1.Perform(EM_UNDO,0,0);
Для проверки, киньте на форму Memo и Button и по OnClick напишите вышенаписанный код.
Вы можете присылать свои советы для рубрики “Узелок Впрок” по адресу seorobo@gmail.com. Спасибо.
Рубрика: Delphi, Узелок впрок, Хитрости | Комментарии (3) »
Опубликовал devprog на Октябрь 26, 2008
Совет 1: Не пасуйте перед трудностями
Трудности будут подстерегать вас на каждом шагу, но это не повод всё бросить правда?! Ищите решение на форумах, спрашивайте на блоге и в конце концов попытайтесь найти решение проблемы сами – это самый лучший вариант из всех, так как вы не просто повторили тупняком чьи-то слова – вы сами, путём долгих попыток всё таки нашли выход из ситуации.
Совет 2: Проверяйте свой код сразу
Может показаться «дебильным советом», но многие люди делают ошибки не в алгоритмах – а именно в коде, да ещё например в самом начале листинга. Просто одна ошибка может быть вызвана из за другой и порой очень трудно отследить родительскую (самую главную) ошибку в коде.
Совет 3: Структурируйте свой код
Всегда старайтесь сделать так, чтобы ваш код смогли прочитать не только вы, но и другие люди. И кстати не просто прочитать а понять его! Делайте так, чтобы ваш код был красивым, в самом прямом смысле этого слова.
Пример плохого кода:
if (!a1) { echo («a1 is false»); }
Удобный код:
if (!a1)
{
echo «a1 is false»;
}
Думаю смысл ясен?!
Совет 4: Комментируйте свой код
Важнейшее правило в программировании! Люди которые просматривают ваш код, порой не сразу понимаю что например вот здесь, вы разбираете файл на 3 отдельных файла и в каждом заменяете слово «Ура» на слово «Победа».
Совет 5: Если ван надоел ваш проект – отдохните!
Например вы сидите и пишите какую-нибудь программу и тут она вам уже не нравиться и вы решаете её стереть/бросить и т.д. Не в коем случаи не нужно этого делать. Просто закройте окно редактора и поиграйте например в игрушку – проще говоря отдохните. Или вот ещё момент: вы программируете, но застряли на каком-то куске кода. Вы бьётесь как рыба об лёд, но решение в голову не приходит? Отдохните, расслабьтесь но не бросайте дело на пол дороги – это ужасная привычка!
Совет 6: Придерживайтесь собственного стиля!
То есть, пишите свои программы одним «почерком» не меняя стиль написания от модуля к модулю или от программы к программе! Поверьте – это очень полезный совет!
А каких правил в программировании придерживаетесь вы? Комментируйте, ваше мнение очень важно!
Рубрика: Новичку, С и С++, Хитрости | Комментарии (6) »
Опубликовал devprog на Октябрь 11, 2008

Возвращаясь к вопросу о
недокументированных функциях API нужно упомянуть, что существует (уже) достаточное колличество неофициальных справочников и документов по этой теме. Ведущими искателями (если можно так выразиться) таких функций, являются ребята из конторы
NTInternals.
Так как справочник в формате CHM для скачивания больше не доступен по версии официального сайта, мне всё же удалось найти уголок в интернете, где сохранился этот манускрипт.
Пользуйтесь на здоровье. Кстати, на официальном сайте, скоро так же станет доступна и версия для функций kernelmode, в то время как сейчас доступны лишь описания функций для usermode. Ну что ж, спасибо и на этом…
Недокументированные функции Windows API
Рубрика: Хитрости | Комментарии (5) »
Опубликовал devprog на Октябрь 8, 2008

Ещё одна программёрская хитрость. Заключается в том, что окошко функции MessageBox из библиотеки User32.dll можно перевернуть задом-на-перёд. Выглядеть это будет именно вот так:
Правда необычно? Такое доступно из любого языка программирования, который способен работать с функциями API ОС Windows. Вся фишка в том, чтобы к стилю окна приплюсовать определённое число. Число 180000h (шестнадцатиричное), или 1572864 (десятичное). Результат такого действия вы видите на картинке.
Пример на Delphi:
MessageBox(0,’Привет’,0,MB_ICONHAND+1572864)
Выполнить подобное можно и на Си и на Ассемблере. Короче везде где можно вызывать API функции. Вот такой вот хитрый совет. :)
Рубрика: Хитрости | Комментарии (16) »
Опубликовал devprog на Октябрь 8, 2008
Мало кто знает, что в ОС Windows есть функция блокировки ввода с клавиатуры и мыши соответственно. Есть она и в XP и может быть даже в Vista (не пробовал). Имя ей –
BlockInput из библиотеки User32.dll. В качестве параметра используется 1 и 0 (один параметр). Соответственно 1 – заблокировать, 0 – разблокировать. Только вот параметр нужно передать в стек вручную с помощью push, иначе заметны глюки.
Где применить?
Применить можно например тогда, когда не хотелось бы чтобы пользователь делал какой-то ввод. Или когда например нужно сделать какую-то паузу в работе пользователя. То есть сначала заблокировать, выполнить операции в программе, а затем разблокировать.
Пример (любой язык с ассемблерными вставками)
push 1 ;блокируем
call BlockInput
Естесственно сначала нужно обьявить процедуру, как например в Delphi:
procedure BlockInput; external ‘user32.dll’;
Рубрика: Delphi, Хитрости | Комментарии (2) »