📄 jvqdyncontrolengine.pas
字号:
end;
function TJvDynControlEngine.CreatePanelControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName, ACaption: string;
AAlign: TAlign): TWinControl;
var
DynCtrl: IJvDynControl;
begin
Result := TWinControl(CreateControl(jctPanel, AOwner, AParentControl, AControlName));
if not Supports(Result, IJvDynControl, DynCtrl) then
raise EIntfCastError.CreateRes(@RsEIntfCastError);
DynCtrl.ControlSetCaption(ACaption);
Result.Align := AAlign;
end;
function TJvDynControlEngine.CreateScrollBoxControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string): TWinControl;
begin
Result := TWinControl(CreateControl(jctScrollBox, AOwner, AParentControl, AControlName));
end;
function TJvDynControlEngine.CreateEditControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string): TWinControl;
var
DynCtrlEdit: IJvDynControlEdit;
begin
Result := TWinControl(CreateControl(jctEdit, AOwner, AParentControl, AControlName));
if not Supports(Result, IJvDynControlEdit, DynCtrlEdit) then
raise EIntfCastError.CreateRes(@RsEIntfCastError);
end;
function TJvDynControlEngine.CreateCheckboxControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName, ACaption: string): TWinControl;
var
DynCtrl: IJvDynControl;
begin
Result := TWinControl(CreateControl(jctCheckBox, AOwner, AParentControl, AControlName));
if not Supports(Result, IJvDynControl, DynCtrl) then
raise EIntfCastError.CreateRes(@RsEIntfCastError);
DynCtrl.ControlSetCaption(ACaption);
end;
function TJvDynControlEngine.CreateComboBoxControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string; AItems: TStrings): TWinControl;
var
DynCtrlItems: IJvDynControlItems;
begin
Result := TWinControl(CreateControl(jctComboBox, AOwner, AParentControl, AControlName));
if not Supports(Result, IJvDynControlItems, DynCtrlItems) then
raise EIntfCastError.CreateRes(@RsEIntfCastError);
DynCtrlItems.ControlSetItems(AItems);
end;
function TJvDynControlEngine.CreateGroupBoxControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName, ACaption: string): TWinControl;
var
DynCtrl: IJvDynControl;
begin
Result := TWinControl(CreateControl(jctGroupBox, AOwner, AParentControl, AControlName));
if not Supports(Result, IJvDynControl, DynCtrl) then
raise EIntfCastError.CreateRes(@RsEIntfCastError);
DynCtrl.ControlSetCaption(ACaption);
end;
function TJvDynControlEngine.CreateImageControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string): TWinControl;
begin
Result := TWinControl(CreateControl(jctImage, AOwner, AParentControl, AControlName));
end;
function TJvDynControlEngine.CreateRadioGroupControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName, ACaption: string;
AItems: TStrings; AItemIndex: Integer = 0): TWinControl;
var
DynCtrl: IJvDynControl;
DynCtrlItems: IJvDynControlItems;
DynCtrlData: IJvDynControlData;
begin
Result := TWinControl(CreateControl(jctRadioGroup, AOwner, AParentControl, AControlName));
if not Supports(Result, IJvDynControl, DynCtrl) then
raise EIntfCastError.CreateRes(@RsEIntfCastError);
DynCtrl.ControlSetCaption(ACaption);
if not Supports(Result, IJvDynControlItems, DynCtrlItems) then
raise EIntfCastError.CreateRes(@RsEIntfCastError);
DynCtrlItems.ControlSetItems(AItems);
if not Supports(Result, IJvDynControlData, DynCtrlData) then
raise EIntfCastError.CreateRes(@RsEIntfCastError);
DynCtrlData.ControlValue := AItemIndex;
end;
function TJvDynControlEngine.CreateMemoControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string): TWinControl;
begin
Result := TWinControl(CreateControl(jctMemo, AOwner, AParentControl, AControlName));
end;
function TJvDynControlEngine.CreateRichEditControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string): TWinControl;
begin
Result := TWinControl(CreateControl(jctRichEdit, AOwner, AParentControl, AControlName));
end;
function TJvDynControlEngine.CreateListBoxControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string; AItems: TStrings): TWinControl;
var
DynCtrlItems: IJvDynControlItems;
begin
Result := TWinControl(CreateControl(jctListBox, AOwner, AParentControl, AControlName));
if not Supports(Result, IJvDynControlItems, DynCtrlItems) then
raise EIntfCastError.CreateRes(@RsEIntfCastError);
DynCtrlItems.ControlSetItems(AItems);
end;
function TJvDynControlEngine.CreateCheckListBoxControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string; AItems: TStrings): TWinControl;
var
DynCtrlItems: IJvDynControlItems;
begin
Result := TWinControl(CreateControl(jctCheckListBox, AOwner, AParentControl, AControlName));
if not Supports(Result, IJvDynControlItems, DynCtrlItems) then
raise EIntfCastError.CreateRes(@RsEIntfCastError);
DynCtrlItems.ControlSetItems(AItems);
end;
function TJvDynControlEngine.CreateDateTimeControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string): TWinControl;
begin
Result := TWinControl(CreateControl(jctDateTimeEdit, AOwner, AParentControl, AControlName));
end;
function TJvDynControlEngine.CreateDateControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string): TWinControl;
begin
Result := TWinControl(CreateControl(jctDateEdit, AOwner, AParentControl, AControlName));
end;
function TJvDynControlEngine.CreateTimeControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string): TWinControl;
begin
Result := TWinControl(CreateControl(jctTimeEdit, AOwner, AParentControl, AControlName));
end;
function TJvDynControlEngine.CreateCalculateControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string): TWinControl;
begin
Result := TWinControl(CreateControl(jctCalculateEdit, AOwner, AParentControl, AControlName));
end;
function TJvDynControlEngine.CreateSpinControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string): TWinControl;
begin
Result := TWinControl(CreateControl(jctSpinEdit, AOwner, AParentControl, AControlName));
end;
function TJvDynControlEngine.CreateDirectoryControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string): TWinControl;
begin
Result := TWinControl(CreateControl(jctDirectoryEdit, AOwner, AParentControl, AControlName));
end;
function TJvDynControlEngine.CreateFileNameControl(AOwner: TComponent;
AParentControl: TWinControl; const AControlName: string): TWinControl;
begin
Result := TWinControl(CreateControl(jctFileNameEdit, AOwner, AParentControl, AControlName));
end;
function TJvDynControlEngine.CreateButton(AOwner: TComponent;
AParentControl: TWinControl; const AButtonName, ACaption, AHint: string;
AOnClick: TNotifyEvent; ADefault: Boolean = False; ACancel: Boolean = False): TButton;
begin
Result := TButton(CreateControl(jctButton, AOwner, AParentControl, AButtonName));
Result.Hint := AHint;
Result.Caption := ACaption;
Result.Default := ADefault;
Result.Cancel := ACancel;
Result.OnClick := AOnClick;
end;
function TJvDynControlEngine.CreateRadioButton(AOwner: TComponent; AParentControl: TWinControl;
const ARadioButtonName, ACaption: string): TWinControl;
var
DynCtrl: IJvDynControl;
begin
Result := TWinControl(CreateControl(jctRadioButton, AOwner, AParentControl, ARadioButtonName));
if not Supports(Result, IJvDynControl, DynCtrl) then
raise EIntfCastError.CreateRes(@RsEIntfCastError);
DynCtrl.ControlSetCaption(ACaption);
end;
function TJvDynControlEngine.CreateButtonEditControl(AOwner: TComponent; AParentControl: TWinControl;
const AControlName: string; AOnButtonClick: TNotifyEvent): TWinControl;
var
DynCtrlButtonEdit: IJvDynControlButtonEdit;
begin
Result := TWinControl(CreateControl(jctButtonEdit, AOwner, AParentControl, AControlName));
if not Supports(Result, IJvDynControlButtonEdit, DynCtrlButtonEdit) then
raise EIntfCastError.CreateRes(@RsEIntfCastError);
DynCtrlButtonEdit.ControlSetOnButtonClick(AOnButtonClick);
end;
function TJvDynControlEngine.CreateForm(const ACaption, AHint: string): TCustomForm;
begin
Result := TCustomForm(CreateControl(jctForm, Application, nil, ''));
Result.Caption := ACaption;
Result.Hint := AHint;
end;
function TJvDynControlEngine.CreateLabelControlPanel(AOwner: TComponent;
AParentControl: TWinControl; const AControlName, ACaption: string; AFocusControl: TWinControl;
ALabelOnTop: Boolean = True; ALabelDefaultWidth: Integer = 0): TWinControl;
var
Panel: TWinControl;
LabelControl: TControl;
begin
if not Assigned(AFocusControl) then
raise EJVCLException.CreateRes(@RsENoFocusControl);
Panel := CreatePanelControl(AOwner, AParentControl, '', '', alNone);
LabelControl := CreateLabelControl(AOwner, Panel, '', ACaption, AFocusControl);
// LabelControl.Width := panel.Canvas.
AFocusControl.Parent := Panel;
LabelControl.Top := 1;
LabelControl.Left := 1;
if ALabelOnTop then
begin
AFocusControl.Top := LabelControl.Height + DistanceBetweenLabelAndControlVert;
AFocusControl.Left := 1;
if LabelControl.Width > AFocusControl.Width then
Panel.Width := LabelControl.Width
else
Panel.Width := AFocusControl.Width;
Panel.Height := AFocusControl.Top + AFocusControl.Height;
end
else
begin
if ALabelDefaultWidth > 0 then
LabelControl.Width := ALabelDefaultWidth;
AFocusControl.Left := LabelControl.Width + DistanceBetweenLabelAndControlHorz;
AFocusControl.Top := 1;
if LabelControl.Height > AFocusControl.Height then
Panel.Height := LabelControl.Height
else
Panel.Height := AFocusControl.Height;
Panel.Width := AFocusControl.Width + AFocusControl.Left;
end;
Panel.Width := Panel.Width + 1;
Panel.Height := Panel.Height + 1;
Result := Panel;
end;
procedure SetDefaultDynControlEngine(AEngine: TJvDynControlEngine);
begin
if AEngine is TJvDynControlEngine then
GlobalDefaultDynControlEngine := AEngine;
end;
function DefaultDynControlEngine: TJvDynControlEngine;
begin
Result := GlobalDefaultDynControlEngine;
end;
{$IFDEF UNITVERSIONING}
const
UnitVersioning: TUnitVersionInfo = (
RCSfile: '$RCSfile: JvQDynControlEngine.pas,v $';
Revision: '$Revision: 1.18 $';
Date: '$Date: 2005/02/06 14:06:05 $';
LogPath: 'JVCL\run'
);
initialization
RegisterUnitVersion(HInstance, UnitVersioning);
finalization
UnregisterUnitVersion(HInstance);
{$ENDIF UNITVERSIONING}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -