Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

marser

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
function CheckMessageDlg(Msg, Caption, CheckBoxCaption: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; var AChecked: Boolean): TModalResult;
var
  ADialog: TForm;
  I, L, T, D: Integer;
  AControl: TControl;
  ACheckBox: TCheckBox;
begin
  ADialog := CreateMessageDialog(Msg, DlgType, Buttons);
  try
    if Caption <> '' then
      ADialog.Caption := Caption;
 
    L := 0;
    T := ADialog.ClientHeight;
    D := 0;
 
    ACheckBox := TCheckBox.Create(ADialog);
    with ACheckBox do
    begin
      Parent := ADialog;
      Caption := CheckBoxCaption;
      Checked := not AChecked;
      Width := ADialog.Canvas.TextWidth(ACheckBox.Caption) + 30;
    end;
 
    for I := 1 to ADialog.ControlCount - 1 do
    begin
      AControl := ADialog.Controls[I];
      if AControl is TLabel then
      begin
        ACheckBox.Top := AControl.Top + AControl.Height + 10;
        ACheckBox.Left := AControl.Left;
        T := ACheckBox.Top + ACheckBox.Height + 20;
        if ACheckBox.Width > AControl.Width then
          L := ACheckBox.Width - AControl.Width;
      end;
      if AControl is TButton then
      begin
        D := T - AControl.Top;
        if D > 0 then
          AControl.Top := AControl.Top + D;
        if L > 0 then
          AControl.Left := AControl.Left + L div 2;
      end;
    end;
 
    if D > 0 then
      ADialog.ClientHeight := ADialog.ClientHeight + D;
 
    if (ACheckBox.Left + ACheckBox.Width) > ADialog.ClientWidth then
      ADialog.ClientWidth := ACheckBox.Left + ACheckBox.Width + 5;
 
    Result := ADialog.ShowModal;
    AChecked := not ACheckBox.Checked;
  finally
    ADialog.Free;
  end;
end;

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 08:05 16-02-2011 | Исправлено: marser, 08:12 16-02-2011
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru