Нередко бывает так, что одна и та же функция может использоваться для разных типов данных. Конечно, проще всего создать несколько функций (просто скопировав код и изменив тип данных результата) и использовать их в программе. Но мы ведь не ищем легких путей, верно?

Так вот: того же результата (только быстрее и, если разобраться, значительно проще) можно достичь, используя шаблоны. И, кстати, если вдруг в созданной функции обнаружится ошибка – изменения будет значительно проще внести в шаблон, нежели в функции-клоны.
Подробнее »

Во многих программах применяются панели инструментов. Обычно они строго фиксируются вверху формы или же внизу. Но порою необходимо предоставить пользователю возможность их переместить. Это перемещение и называется стыкованием.

Отмечу, что возможность перемещения панелей инструментов – очень удобна для пользователя, так что не стоит ею пренебрегать.
Подробнее »

Начну с того, что TStringList – очень занимательный класс. Он наследует TStrings. А еще расширяет его такими возможностями как сортировка строк и запрет на добавление дублей.

В постике хочу разобрать добавление/удаление и замену (это вместо редактирования).

Поехали. Подробнее »

Порою необходимо привлекать внимание пользователя к окну (например, чтоб отметить завершение какого-то процесса или же сообщить об ошибке). Для этого, чаще всего, создают мигающий заголовок окна. Его, между прочим, проще всего реализовать при помощи функции FlashWindow.

Эта функция инвертирует активное состояние окна, заданное через дескриптор в первом параметре. Собственно говоря, именно измененеие состояния между false и true дает в результате эффект мигания.
Подробнее »

За установку части настроек системы отвечает функция SystemParametersInfo. Данная функция содержит 4 параметра. Непосредственно ее поведение зависит от первого параметра. В нашем случае от него будет зависеть скорость перемещения указателя мыши.

Кстати, четвертый параметр функции будет говорить о том, что скорость указателя будет меняться. В то же время, новое значение скорости указателя будет передаваться в третьем параметре.
Подробнее »

Первый пост на эту тему вот. Второй – тут.

В этой посте займемся созданием обработчиков событий для пунктов меню нашего редактора.
Подробнее »

Первый пост расположен здесь.

Далее нам нужно поработать над диалоговыми окнами. Этот процесс я детально разбирала здесь. В общем, надеюсь, с созданием фильтров для компонентов открытия стандартных диалоговых окон проблем не возникнет.
Подробнее »

Начинаю серию постов – целью которых является создание простейшего текстового редактора. Второй пост расположен тут. А вот третий пост на эту тему.

Наш текстовый редактор сможет создавать новые файлы, открывать уже имеющиеся на диске, редактировать, а также сохранять их.
Подробнее »

Естественно, самый простой вариант переключить раскладку клавиатуры – воспользоваться значком, расположенным на Панели задач. Или нажать комбинацию клавиш Alt+Shift, а может Ctrl+Shift, в зависимости от настроек системы.

Но мы ведь не ищем легких путей, так что будем переключать раскладку клавиатуры при помощи приложения созданного в среде C++ Builder.
Подробнее »

Эта запись посвящена получению информации о шрифтах имеющихся в системе средствами C++ Builder.

К примеру, для того чтоб вывести информацию о количестве шрифтов в системе нужно получить значение свойства Screen->Fonts->Count.
Подробнее »