Russian Belarusian English German Japanese Ukrainian
  • Главная

Всё для программирования C++ Builder

Требования работы с ADO соединением

При использовании компонентов доступа к данным по технологии ADO (ADOCommand, ADODataSet, ADOTable, ADOQuery и ADOStoredProc) установление соединения с хранилищем данных можно выполнить двумя путями: с помощью свойства ConnectionString или с помощью компонента ADOConnection. Имя последнего задается в свойстве Connection компонентов доступа к данным. При этом во втором случае для компонента ADOConnection также с помощью его свойства ConnectionString нужно предварительно установить соединение с хранилищем данных.

Изменение местоположения и размеров компонентов

Оконные компоненты имеют свойство Anchors привязку к родительскому компоненту при изменении размеров последнего. Это свойство представляет собой множество, которое может содержать элементы в таблице ниже.
Если в множестве Anchors присутствуют привязки к противоположным сторонам родительского компонента, то при изменении размеров родительского компонента происходит растяжение или сжатие дочернего компонента, поскольку расстояния от сторон родительского компонента выдерживаются. Сжатие может происходить вплоть до полного исчезновения изображения данного компонента. Поэтому необходимо ограничивать диапазон допустимого изменения размеров.

Хитрости выравнивания компонентов с помощью Align

Если проектируется окно, размеры которого пользователь может изменять во время выполнения приложения, то необходимо принять меры, чтобы компоненты в окне при этом тоже изменяли свои размеры или местоположение, равномерно распределяясь по площади окна и не оставляя пустых мест.
Пусть, например, проектируя форму, окно которой содержит панель Panel1, на которой будут размещаться какие-то управляющие компоненты и список ListBox1, панель Panel2, в середине которой будет размещаться некоторая надпись в метке StaticText1, и компонент Memo1, в котором будут редактироваться тексты. Если, разместив все это на форме и не приняв мер для того, чтобы при изменении размеров окна компоненты изменялись, то при том размере формы, который проектировалось, все будет выглядеть нормально. Но если пользователь растянет размеры формы, надеясь увеличить площадь редактирования и длину списка, то приложение приобретет нелепый вид. Увеличение формы просто приводит к увеличению на ней пустого места.

Подсказки и контекстно-зависимые справки

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

  • Ярлычки, которые, всплывают, когда пользователь задержит курсор мыши над каким-то элементом окна приложения. В частности, такими ярлычками обязательно должны снабжаться быстрые кнопки инструментальных панелей, поскольку нанесенные на них пиктограммы часто не настолько выразительны, чтобы пользователь без дополнительной подсказки мог понять их назначение.
  • Кнопка справки в полосе заголовка окна, позволяющая пользователю посмотреть во всплывающих окнах назначение различных элементов окна.
  • Более развернутые подсказки в панели состояния или в другом отведенном под это месте экрана, которые появляются при перемещении курсора мыши в ту или иную область окна приложения.
  • Встроенную систему контекстно-зависимой оперативной справки, вызываемую по клавише F1.
  • Раздел меню Справка, позволяющий пользователю открыть стандартный файл справки Windows .hlp, содержащий в виде гипертекста развернутую информацию по интересующим пользователя вопросам.

5 последовательностей фокусировки элементов

При проектировании приложения важно правильно определить последовательность табуляции оконных компонентов. Под этим понимается последовательность, в которой переключается фокус с компонента на компонент, когда пользователь нажимает клавишу табуляции Tab. Это важно, поскольку в ряде случаев пользователю удобнее работать не с мышью, а с клавиатурой. Пусть, например, вводя данные о каком-то сотруднике пользователь должен в отдельных окнах редактирования указать фамилию, имя и отчество. Конечно, набрав фамилию ему удобнее нажать клавишу Tab и набирать имя, а потом опять, нажав Tab, набирать отчество, чем каждый раз отрываться от клавиатуры, хватать мышь и переключаться в новое окно редактирования.

Каждое окно, которое нужно вводить в свое приложение, должно быть тщательно продумано и скомпоновано. Удачная компоновка может стимулировать эффективную работу пользователя, а неудачная рассеивать внимание, отвлекать, заставлять тратить лишнее время на поиск нужной кнопки или индикатора. Управляющие элементы и функционально связанные с ними компоненты экрана должны быть зрительно объединены в группы, заголовки которых коротко и четко поясняют их назначение. Такое объединение позволяют осуществлять различные панели. Можно рекомендовать, как правило, размещать компоненты не непосредственно на форме, а на таких панелях.

5 причин использовать меню в приложениях

Практически любое приложение должно иметь меню, поскольку именно меню дает наиболее удобный доступ к функциям программы. Существует несколько различных типов меню: главное меню с выпадающими списками разделов, каскадные меню, в которых разделу первичного меню ставится в соответствие список подразделов, и всплывающие или контекстные меню, появляющиеся, если пользователь щелкает правой кнопкой мыши на каком-то компоненте.
В C++Builder меню создаются компонентами MainMenu (главное меню) и PopupMenu (всплывающее меню). Оба компонента расположены на странице Standard. Кроме того, в C++Builder 6 имеется возможность создания меню, настраиваемого пользователем во время выполнения, с помощью компонентов ActionManager и ActionMainMenuBar.

Построим простую программу, демонстрирующую посылку сообщений. Создаем новый проект и в нем две формы Form1 и Form2, сохраните проект, назвав модули форм U1Mess1 и U2Mess1 соответственно, а файл проекта PMess1. Форма Form1 будет главной и она будет управлять видимостью формы Form2. Поэтому в ее модуль необходимо включить директиву препроцессора:

#include "U2Messl.h"

а свойство Visible формы Form2 должно быть равно false.

Перенесите на форму Form1 две кнопки, дав им надписи «Show Form2» и «Close Form2». В обработчике щелчка первой кнопки напишите оператор:

Form2->Show();

а в обработчике щелчка второй кнопки оператор:

Поиск по сайту