⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 suidsgn.pas

📁 Delphi界面控件修饰
💻 PAS
📖 第 1 页 / 共 2 页
字号:
        if Comp is TPopupMenu then
            ConvertMenus(Comp as TPopupMenu, TsuiPopupMenu, StrUIStyle, Dsgn);
        if Comp is TMainMenu then
            ConvertMenus(Comp as TMainMenu, TsuiMainMenu, StrUIStyle, Dsgn);
    end;

    for i := 0 to Form.ComponentCount - 1 do
    begin
        if Form.Components[i] is TControl then
        begin
            IncHeight := FormIncHeight;

            Ctrl := Form.Components[i] as TControl;

            if IsHasProperty(Ctrl, 'DataSource') then
               aDB := GetObjectProp(Ctrl, 'DataSource') as TComponent;
            if IsHasProperty(Ctrl, 'DataField') then
               aFld := GetPropValue(Ctrl, 'DataField');

            if (
                (Ctrl <> suiForm) and
                (Ctrl.Parent = Form)
            ) then
                Ctrl.Parent := suiForm;

            if (
                (Ctrl.Parent <> suiForm) and
                (Ctrl.Parent <> nil)
            ) then
            begin
                if Copy(Ctrl.Parent.Name, 1, 7) = 'suitemp' then
                begin
                    Comp := Dsgn.GetComponent(Copy(Ctrl.Parent.Name, 8, Length(Ctrl.Parent.Name)));
                    if (Comp = nil) or (not (Comp is TWinControl)) then
                        continue;
                    Ctrl.Parent := Comp as TWinControl;
                end;
                IncHeight := 0;
            end;

            if Ctrl is TToolBar then
            begin
                (Ctrl as TToolBar).Top := 800;
                (Ctrl as TToolBar).Flat := true;
                continue;
            end;

            if Ctrl is TButton then
                ConvertControls(Ctrl, TsuiButton, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TCheckBox then
                ConvertControls(Ctrl, TsuiCheckBox, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TRadioButton then
                ConvertControls(Ctrl, TsuiRadioButton, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TProgressBar then
                ConvertControls(Ctrl, TsuiProgressBar, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TEdit then
                ConvertControls(Ctrl, TsuiEdit, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TMemo then
                ConvertControls(Ctrl, TsuiMemo, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TListBox then
                ConvertControls(Ctrl, TsuiListBox, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TComboBox then
                ConvertControls(Ctrl, TsuiComboBox, StrUIStyle, IncHeight, Dsgn)
            {$IFDEF SUIPACK_D6UP}
            else if Ctrl is TColorBox then
                ConvertControls(Ctrl, TsuiColorBox, StrUIStyle, IncHeight, Dsgn)
            {$ENDIF}
            else if Ctrl is TCheckListBox then
                ConvertControls(Ctrl, TsuiCheckListBox, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TGroupBox then
                ConvertControls(Ctrl, TsuiGroupBox, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TRadioGroup then
                ConvertControls(Ctrl, TsuiRadioGroup, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TListView then
                ConvertControls(Ctrl, TsuiListView, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TTreeView then
                ConvertControls(Ctrl, TsuiTreeView, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TTabControl then
                ConvertControls(Ctrl, TsuiTabControl, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TTabSheet then
                ConvertControls(Ctrl, TsuiTabSheet, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TPageControl then
                ConvertControls(Ctrl, TsuiPageControl, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TTrackBar then
                ConvertControls(Ctrl, TsuiTrackBar, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TScrollBar then
                ConvertControls(Ctrl, TsuiScrollBar, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TStringGrid then
                ConvertControls(Ctrl, TsuiStringGrid, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TDrawGrid then
                ConvertControls(Ctrl, TsuiDrawGrid, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TStatusBar then
                ConvertControls(Ctrl, TsuiStatusBar, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TMaskEdit then
                ConvertControls(Ctrl, TsuiMaskEdit, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TDriveComboBox then
                ConvertControls(Ctrl, TsuiDriveComboBox, StrUIStyle, IncHeight, Dsgn)
{$IFDEF DB}
            else if Ctrl is TDBEdit then
                ConvertControls(Ctrl, TsuiDBEdit, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TDBMemo then
                ConvertControls(Ctrl, TsuiDBMemo, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TDBImage then
                ConvertControls(Ctrl, TsuiDBIMage, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TDBListBox then
                ConvertControls(Ctrl, TsuiDBListBox, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TDBComboBox then
                ConvertControls(Ctrl, TsuiDBComboBox, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TDBCheckBox then
                ConvertControls(Ctrl, TsuiDBCheckBox, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TDBRadioGroup then
                ConvertControls(Ctrl, TsuiDBRadioGroup, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TDBNavigator then
                ConvertControls(Ctrl, TsuiDBNavigator, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TDBLookupListBox then
                ConvertControls(Ctrl, TsuiDBLookupListBox, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TDBLookupComboBox then
                ConvertControls(Ctrl, TsuiDBLookupComboBox, StrUIStyle, IncHeight, Dsgn)
            else if Ctrl is TDBGrid then
                ConvertControls(Ctrl, TsuiDBGrid, StrUIStyle, IncHeight, Dsgn)
{$ENDIF}
            else
            begin
                if IsHasProperty(Ctrl, 'Top') then
                    SetOrdProp(Ctrl, 'Top', GetOrdProp(Ctrl, 'Top') + IncHeight);
            end;

            if IsHasProperty(Ctrl, 'DataSource') then
                SetObjectProp(Ctrl, 'DataSource', aDB);
            if IsHasProperty(Ctrl, 'DataField') then
                SetPropValue(Ctrl, 'DataField', aFld);
        end
    end;

    RemoveOldControl(nil, true);
end;

{ TsuiPageControlEditor }

procedure TsuiPageControlEditor.Edit;
begin

end;

procedure TsuiPageControlEditor.ExecuteVerb(Index: Integer);
begin
    case Index of
    0 : PageControl_InsertPage(Component);
    1 : PageControl_RemovePage(Component);
    end;

    Designer.Modified();
end;

function TsuiPageControlEditor.GetVerb(Index: Integer): String;
begin
    case Index of
    0 : Result := 'New Page';
    1 : Result := 'Delete Page';
    end;
end;

function TsuiPageControlEditor.GetVerbCount: Integer;
begin
    Result := 2;
end;

procedure TsuiPageControlEditor.PrepareItem(Index: Integer;
{$IFDEF SUIPACK_D5}
    const AItem: TMenuItem);
{$ENDIF}
{$IFDEF SUIPACK_D6UP}
    const AItem: IMenuItem);
{$ENDIF}
begin
    inherited;
    if Index = 1 then
        AItem.Enabled := PageControl_CanRemove(Component);
end;

{ TsuiFileThemeEditor }

procedure TsuiFileThemeEditor.Edit;
begin
    if Component is TsuiFileTheme then
    begin
        FileThemeEdit(Component as TsuiFileTheme);
        Designer.Modified();
    end;
end;

procedure TsuiFileThemeEditor.ExecuteVerb(Index: Integer);
begin
    case Index of
    0 : Edit;
    end;
end;

function TsuiFileThemeEditor.GetVerb(Index: Integer): String;
begin
    case Index of
    0 : Result := 'Load a theme file...';
    end;
end;

function TsuiFileThemeEditor.GetVerbCount: Integer;
begin
    Result := 1;
end;

{ TsuiThemeMgrCompListEditor }

procedure TsuiThemeMgrCompListEditor.Edit;
begin
    ThemeManagerEdit(GetComponent(0) as TsuiThemeManager);
    Designer.Modified();
end;

function TsuiThemeMgrCompListEditor.GetAttributes: TPropertyAttributes;
begin
    Result := [paDialog, paReadOnly{$IFDEF SMLPACK_D6UP}, paVCL{$ENDIF}];
end;

function TsuiThemeMgrCompListEditor.GetValue: string;
begin
    Result := 'Component List';
end;

{ TsuiTabSheetEditor }

procedure TsuiTabSheetEditor.Edit;
begin

end;

procedure TsuiTabSheetEditor.ExecuteVerb(Index: Integer);
begin
    case Index of
    0 : TabSheet_InsertPage(Component);
    1 : TabSheet_RemovePage(Component);
    end;

    Designer.Modified();
end;

function TsuiTabSheetEditor.GetVerb(Index: Integer): String;
begin
    case Index of
    0 : Result := 'New Page';
    1 : Result := 'Delete Page';
    end;
end;

function TsuiTabSheetEditor.GetVerbCount: Integer;
begin
    Result := 2;
end;

procedure TsuiTabSheetEditor.PrepareItem(Index: Integer;
{$IFDEF SUIPACK_D5}
    const AItem: TMenuItem);
{$ENDIF}
{$IFDEF SUIPACK_D6UP}
    const AItem: IMenuItem);
{$ENDIF}
begin
    inherited;
    if Index = 1 then
        AItem.Enabled := TabSheet_CanRemove(Component);
end;

{ TsuiDialogEditor }

procedure TsuiDialogEditor.Edit;
begin
    if Component is TsuiDialog then
        (Component as TsuiDialog).ShowModal();
end;

{ TsuiThemeManagerEditor }

procedure TsuiThemeManagerEditor.Edit;
begin
    if Component is TsuiThemeManager then
    begin
        ThemeManagerEdit(Component as TsuiThemeManager);
        Designer.Modified();
    end;
end;

procedure TsuiThemeManagerEditor.ExecuteVerb(Index: Integer);
begin
    case Index of
    0 : Edit;
    end;
end;

function TsuiThemeManagerEditor.GetVerb(Index: Integer): String;
begin
    case Index of
    0 : Result := 'Edit list...';
    end;
end;

function TsuiThemeManagerEditor.GetVerbCount: Integer;
begin
    Result := 1;
end;

{ TsuiConvertor }

constructor TsuiConvertor.Create(AOwner: TComponent);
var
    Form : TCustomForm;
    i : Integer;
begin
    inherited;

    if not (AOwner is TCustomForm) then
        Exit;

    if Win32Platform = VER_PLATFORM_WIN32_WINDOWS then
    begin
        MessageDlg('Sorry, can''t convert under Windows 98.', mtError, [mbOK], 0);
        SysUtils.Abort;
        Exit;
    end;

    Form := AOwner as TCustomForm;
    for i := 0 to Form.ControlCount - 1 do
    begin
        if Form.Controls[i] is TsuiForm then
        begin
            MessageDlg('Sorry, you have a TsuiForm already. Converting canceled.', mtError, [mbOK], 0);
            SysUtils.Abort;
            Exit;
        end;
    end;

    frmConv := TfrmConv.Create(nil);
    frmConv.cb_theme.ItemIndex := 0;
    if frmConv.ShowModal() = mrOK then
        ConvertToSUIPack(TCustomForm(AOwner), frmConv.cb_theme.Text, TsuiUIStyle(frmConv.cb_theme.ItemIndex + 1));
    frmConv.Free();
    SysUtils.Abort;
end;

{ TsuiThemeFileEditor }

procedure TsuiThemeFileEditor.Edit;
var
    OpenDialog: TOpenDialog;
begin
    OpenDialog := TOpenDialog.Create(Application);
    OpenDialog.Filter := 'SUIPack Theme File(*.sui)|*.sui';
    if OpenDialog.Execute() then
    begin
        TsuiFileTheme(GetComponent(0)).ThemeFile := OpenDialog.FileName;
        Modified();
    end;
    OpenDialog.Free();
end;

function TsuiThemeFileEditor.GetAttributes: TPropertyAttributes;
begin
    Result := [paDialog];
end;

function TsuiThemeFileEditor.GetValue: string;
begin
    Result := TsuiFileTheme(GetComponent(0)).ThemeFile;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -