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

📄 main.pas

📁 运行时设计控件的一个小例子
💻 PAS
字号:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, bsSkinCtrls, bsSkinBoxCtrls, StdCtrls, ComCtrls, CustomUnit,
  bsSkinData, bsdbctrls, DB, Test;

type
  TForm1 = class(TForm)
    ScrollBox_Design: TbsSkinScrollBox;
    bsSkinScrollBar1: TbsSkinScrollBar;
    bsSkinComboBox_CoType: TbsSkinComboBox;
    bsSkinComboBox_LabelTitle: TbsSkinComboBox;
    Label1: TLabel;
    Label4: TLabel;
    Label2: TLabel;
    bsSkinPanel12: TbsSkinPanel;
    bsSkinListView_FieldList: TbsSkinListView;
    bsSkinScrollBar11: TbsSkinScrollBar;
    bsSkinScrollBar14: TbsSkinScrollBar;
    Label5: TLabel;
    bsSkinPanel2: TbsSkinPanel;
    bsSkinMemo_ComEditTem: TbsSkinMemo;
    bsSkinData1: TbsSkinData;
    bsSkinExPanel1: TbsSkinExPanel;
    bsSkinButton_CoADD: TbsSkinButton;
    bsSkinButton_Post: TbsSkinButton;
    bsSkinButton_CoDel: TbsSkinButton;
    bsSkinButton3: TbsSkinButton;
    bsSkinButton1: TbsSkinButton;
    procedure bsSkinComboBox_CoTypeChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure bsSkinButton_CoADDClick(Sender: TObject);
    procedure bsSkinButton_CoDelClick(Sender: TObject);
    procedure bsSkinButton_PostClick(Sender: TObject);
    procedure bsSkinListView_FieldListClick(Sender: TObject);
    procedure bsSkinButton1Click(Sender: TObject);
    procedure bsSkinButton3Click(Sender: TObject);
    procedure bsSkinComboBox_LabelTitleChange(Sender: TObject);
    procedure bsSkinMemo_ComEditTemChange(Sender: TObject);
  private
    Listitem : TListItem;
    CustomClass : TCustomClass;
    procedure OnDnComponentClick(Sender : TObject);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses DataMoudle;

{$R *.dfm}

procedure TForm1.bsSkinComboBox_CoTypeChange(Sender: TObject);
begin
  bsSkinComboBox_LabelTitle.Enabled:= bsSkinComboBox_CoType.ItemIndex = 0;
end;

procedure TForm1.FormShow(Sender: TObject);
var
  i : Integer;
  sSql : String;
begin
  sSql:= 'Select * From FieldMgr_tbl Where InTable = ''Archives_tbl''';
  With DM1.ADODataSet2 do begin
    Active:= False;
    CommandText:= sSql;
    Active:= True;
    for i:= 0 to RecordCount - 1 do begin
      Listitem:= bsSkinListView_FieldList.Items.Add;
      Listitem.Caption:= FieldByName('FieldName').AsString;
      Listitem.SubItems.Add(FieldByName('DisplayName').AsString);
      bsSkinComboBox_LabelTitle.Items.Add(FieldByName('DisplayName').AsString);
      Next;
    end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  CustomClass:= TCustomClass.Create(Self);
  CustomClass.OnClick:= OnDnComponentClick;
  CustomClass.CreateComponentDynamic(DM1.ADODataSet_Component, ScrollBox_Design, bsSkinData1);  
  CustomClass.CustomDrag:= True;
end;

procedure TForm1.bsSkinButton_CoADDClick(Sender: TObject);
Var
  iType : Integer;
  DesignParent : TWinControl;
  ExeParentName : String;
begin
  iType:= bsSkinComboBox_CoType.ItemIndex+1;
  DesignParent:= ScrollBox_Design;
  ExeParentName:=  'ScrollBox_ArchivesInput';
  CustomClass.AddComponentDynamic(iType, DesignParent, ExeParentName, DM1.ADODataSet_Component, bsSkinData1);
end;

procedure TForm1.bsSkinButton_CoDelClick(Sender: TObject);
begin
  CustomClass.DeleteSelectComponent;
end;

procedure TForm1.bsSkinButton_PostClick(Sender: TObject);
begin
  CustomClass.SaveComponent;
end;

procedure TForm1.OnDnComponentClick(Sender: TObject);
Var
  i : Integer;
begin
  With DM1.ADODataSet_Component do begin
    Active:= False;
    CommandText:= 'Select * From Component_tbl';
    Active:= True;
  End;
  Case TWinControl(Sender).Tag of
    1:begin
        bsSkinComboBox_LabelTitle.Enabled:= True;
        bsSkinListView_FieldList.Enabled:= False;
        bsSkinComboBox_LabelTitle.Text:= TLabel(Sender).Caption;
      end;
    2:begin
        bsSkinListView_FieldList.Enabled:= True;
        bsSkinComboBox_LabelTitle.Enabled:= False;
        With DM1.ADODataSet_Component do begin
          Locate('ComponentName', TbsSkinDBEdit(Sender).Name, [loCaseInsensitive]);
          for i:= 0 to bsSkinListView_FieldList.Items.Count - 1 do begin
            if bsSkinListView_FieldList.Items[i].Caption = FieldByName('Fields').AsString then begin
              bsSkinListView_FieldList.Items[i].Checked:= True;
              //TbsSkinDBEdit(Sender).Text:= bsSkinListView_FieldList.Items[i].SubItems.Strings[0];
            end else begin
              bsSkinListView_FieldList.Items[i].Checked:= False;
            end;
          end;
        End;
      end;
    3:begin
        With DM1.ADODataSet_Component do begin
          Locate('ComponentName', TbsSkinComboBox(Sender).Name, [loCaseInsensitive]);
          for i:= 0 to bsSkinListView_FieldList.Items.Count - 1 do begin
            if bsSkinListView_FieldList.Items[i].Caption = FieldByName('Fields').AsString then begin
              bsSkinListView_FieldList.Items[i].Checked:= True;
            end else begin
              bsSkinListView_FieldList.Items[i].Checked:= False;
            end;
            bsSkinMemo_ComEditTem.Lines.Assign(CustomClass.SplitString(',', FieldByName('Title').AsString));
          end;
        End;
      end;
    4:begin
        bsSkinListView_FieldList.Enabled:= True;
        bsSkinComboBox_LabelTitle.Enabled:= False;
        With DM1.ADODataSet_Component do begin
          Locate('ComponentName', TbsSkinDBMemo(Sender).Name, [loCaseInsensitive]);
          for i:= 0 to bsSkinListView_FieldList.Items.Count - 1 do begin
            if bsSkinListView_FieldList.Items[i].Caption = FieldByName('Fields').AsString then begin
              bsSkinListView_FieldList.Items[i].Checked:= True;
              //TbsSkinDBEdit(Sender).Text:= bsSkinListView_FieldList.Items[i].SubItems.Strings[0];
            end else begin
              bsSkinListView_FieldList.Items[i].Checked:= False;
            end;
          end;
        End;
      end;         
  End;
end;


procedure TForm1.bsSkinListView_FieldListClick(Sender: TObject);
Var
  sField, sCNField : String;
begin
  sField:= bsSkinListView_FieldList.Items.Item[bsSkinListView_FieldList.Selected.Index].Caption;
  CustomClass.SetComponentField(sField);
end;

procedure TForm1.bsSkinButton1Click(Sender: TObject);
Var
  Form_Test: TForm_Test;
begin
  Form_Test:= TForm_Test.Create(Self);
  Form_Test.ShowModal;
end;

procedure TForm1.bsSkinButton3Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.bsSkinComboBox_LabelTitleChange(Sender: TObject);
begin
  if CustomClass.SelectControl.Tag <> 1 then Exit;
  TLabel(CustomClass.SelectControl).Caption:= bsSkinComboBox_LabelTitle.Text;
end;

procedure TForm1.bsSkinMemo_ComEditTemChange(Sender: TObject);
begin
  Case CustomClass.SelectControl.Tag of
    3:begin
        TbsSkinDBComboBox(CustomClass.SelectControl).Items.Assign(bsSkinMemo_ComEditTem.Lines);
      end;
    4:begin
        TbsSkinDBMemo(CustomClass.SelectControl).Lines.Assign(bsSkinMemo_ComEditTem.Lines);
      end;      
  End;
end;

end.

⌨️ 快捷键说明

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