:: MVP ::
|
|
:: RSS ::
|
|
|
Данная статья будет небольшой, так как материал достаточно легкий.
Воспользуемся функцией CreateMessageDialog для создания диалога, и
будем добавлять любые компоненты (в примере два компонента - ColorBox
и Label) по своему усмотрению. Диалог вызывается как ShowModal.
В данном примере нет ничего сложного, если вы умеете создавать
компоненты динамически (во время работы программы). Если это вызывает
у вас трудности, то вам будет полезно почитать об этом, например у
меня на сайте в разделе Практика, статья называется Создание
компонентов в RunTime. В этой статье рассказано практически
то же самое - динамическое создание формы и компонентов на ней.
procedure TForm1.Button1Click(Sender: TObject);
var
MyMsgDialog: TForm;
i: integer;
MyLabel: TLabel;
MyColorBox: TColorBox;
begin
// Создаем диалог
MyMsgDialog := CreateMessageDialog( ' Выберите цвет ', mtInformation, [mbYes,mbNo] );
// Создаем компоненты
MyColorBox := TColorBox.Create( MyMsgDialog );
MyLabel := TLabel.Create( MyMsgDialog );
with MyMsgDialog do
begin
// Руссифицируем кнопки диалога
for i := 0 to MyMsgDialog.ComponentCount-1 do
if MyMsgDialog.Components[i] is TButton then
if ( MyMsgDialog.Components[i] as TButton ).Caption = '&Yes' then
( MyMsgDialog.Components[i] as TButton ).Caption := 'Да'
else
if ( MyMsgDialog.Components[i] as TButton ).Caption = '&No' then
( MyMsgDialog.Components[i] as TButton ).Caption := 'Нет'
else
if ( MyMsgDialog.Components[i] as TButton ).Caption = 'OK' then
( MyMsgDialog.Components[i] as TButton ).Caption := 'Да'
else
if ( MyMsgDialog.Components[i] as TButton ).Caption = 'Cancel' then
( MyMsgDialog.Components[i] as TButton ).Caption := 'Отмена'
else
if ( MyMsgDialog.Components[i] as TButton ).Caption = '&Abort' then
( MyMsgDialog.Components[i] as TButton ).Caption := 'Прервать'
else
if ( MyMsgDialog.Components[i] as TButton ).Caption = '&Retry' then
( MyMsgDialog.Components[i] as TButton ).Caption := 'Повтор'
else
if ( MyMsgDialog.Components[i] as TButton ).Caption = '&Ignore' then
( MyMsgDialog.Components[i] as TButton ).Caption := 'Дальше'
else
if ( MyMsgDialog.Components[i] as TButton ).Caption = '&All' then
( MyMsgDialog.Components[i] as TButton ).Caption := 'Все'
else
if ( MyMsgDialog.Components[i] as TButton ).Caption = 'N&o to All' then
( MyMsgDialog.Components[i] as TButton ).Caption := 'Нет всем'
else
if ( MyMsgDialog.Components[i] as TButton ).Caption = 'Yes to &All' then
( MyMsgDialog.Components[i] as TButton ).Caption := 'Да всем'
else
if ( MyMsgDialog.Components[i] as TButton ).Caption = '&Help' then
( MyMsgDialog.Components[i] as TButton ).Caption := 'Помощь';
try
Caption := 'Выбор цвета для формы';
Height := 170;
// Инициализируем MyLabel
with MyLabel do
begin
Parent := MyMsgDialog;
AutoSize := true;
Top := 95;
Left := 12;
Caption := 'Цвет';
end;
// Инициализируем MyColorBox
with MyColorBox do
begin
Parent := MyMsgDialog;
Width := 150;
Top := 111;
Left := 10;
ItemIndex := 0;
end;
// Показываем окно как модальное
case ShowModal of
// Обрабатываем кнопки
ID_YES: Form1.Color := MyColorBox.Colors[MyColorBox.ItemIndex];
ID_NO: ;
end;
finally
// Освобождаем переменные
MyColorBox.Free;
MyLabel.Free;
Free;
end;
end;
end;
|
Как видите, все до безобразия просто. Удачи вам в программировании.
.: Пример к данной статье :.
|
При использовании материала - ссылка на сайт обязательна
|
|