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 |
|