📄 customunit.pas
字号:
end;
2:begin
bsSkinEdit:= TbsSkinDBEdit(FComponentName.Items[i]);
Locate('ComponentName', bsSkinEdit.Name, [loCaseInsensitive]);
Edit;
FieldbyName('PTop').AsInteger:= bsSkinEdit.Top;
FieldbyName('PLeft').AsInteger:= bsSkinEdit.Left;
FieldbyName('PWidth').AsInteger:= bsSkinEdit.Width;
FieldbyName('PHeight').AsInteger:= bsSkinEdit.Height;
FieldbyName('Fields').AsString:= bsSkinEdit.DataField;
FieldbyName('Title').AsString:= bsSkinEdit.Text;
end;
3:begin
bsSkinDBComboBox:= TbsSkinDBComboBox(FComponentName.Items[i]);
Locate('ComponentName', bsSkinDBComboBox.Name, [loCaseInsensitive]);
Edit;
FieldbyName('PTop').AsInteger:= bsSkinDBComboBox.Top;
FieldbyName('PLeft').AsInteger:= bsSkinDBComboBox.Left;
FieldbyName('PWidth').AsInteger:= bsSkinDBComboBox.Width;
FieldbyName('PHeight').AsInteger:= bsSkinDBComboBox.Height;
FieldbyName('Fields').AsString:= bsSkinDBComboBox.DataField;
ItemStr:= bsSkinDBComboBox.Items.Strings[0];
for j:= 1 to bsSkinDBComboBox.Items.Count - 1 do begin
ItemStr:= ItemStr + ',' + bsSkinDBComboBox.Items.Strings[j]
end;
FieldbyName('Title').AsString:= ItemStr;
end;
4:begin
bsSkinDBMemo:= TbsSkinDBMemo(FComponentName.Items[i]);
Locate('ComponentName', bsSkinDBMemo.Name, [loCaseInsensitive]);
Edit;
FieldbyName('PTop').AsInteger:= bsSkinDBMemo.Top;
FieldbyName('PLeft').AsInteger:= bsSkinDBMemo.Left;
FieldbyName('PWidth').AsInteger:= bsSkinDBMemo.Width;
FieldbyName('PHeight').AsInteger:= bsSkinDBMemo.Height;
FieldbyName('Fields').AsString:= bsSkinDBMemo.DataField;
ItemStr:= bsSkinDBMemo.Lines.Strings[0];
for j:= 1 to bsSkinDBMemo.Lines.Count - 1 do begin
ItemStr:= ItemStr + ',' + bsSkinDBMemo.Lines.Strings[j]
end;
FieldbyName('Title').AsString:= ItemStr;
end;
End;
Try
Post
Except
on E : Exception do
//MessageDlg('Ignoring Exception:'+E.Message,mtInformation,[mbOK],0);
End;
end;
End;
end;
//------------------------------------------------- Writen By : AJ -----------//
procedure TCustomClass.SetComponentField(FieldName:String;CNFieldName: String = '');
Var
Co : TControl;
begin
//Co.Assign(GetSelectControl);
Co:= GetSelectControl;
if Co = Nil then Exit;
Case Co.Tag of
2:begin
TbsSkinDBEdit(Co).Text:= FieldName;
TbsSkinDBEdit(Co).DataField:= FieldName;
end;
3:begin
TbsSkinDBComboBox(Co).Text:= FieldName;
TbsSkinDBComboBox(Co).DataField:= FieldName;
end;
4:begin
TbsSkinDBMemo(Co).Text:= FieldName;
TbsSkinDBMemo(Co).DataField:= FieldName;
end;
End;
end;
//------------------------------------------------- Writen By : AJ -----------//
//--------- 通过字段名字取得其关联的TbsSkinDBEdit显示控件 --------------------//
function TCustomClass.GetComponentByField(FieldName: String):TbsSkinDBEdit;
Var
i : Integer;
begin
Result:= Nil;
for i:= 0 to FComponentField.Count - 1 do begin
if FComponentField.Strings[i] = FieldName then begin
Result:= TbsSkinDBEdit(FComponentName.Items[i]);
Exit;
end;
end;
end;
//------------------------------------------------- Writen By : AJ -----------//
//--------- 通过控件名(数据库)取得其关联的TbsSkinDBEdit显示控件 --------------//
function TCustomClass.GetComponentByName(ComponenName: String): TbsSkinDBEdit;
Var
i : Integer;
begin
Result:= Nil;
for i:= 0 to FComponentName.Count - 1 do begin
if TbsSkinDBEdit(FComponentName.Items[i]).Name = ComponenName then begin
Result:= TbsSkinDBEdit(FComponentName.Items[i]);
Exit;
end;
end;
end;
//------------------------------------------------- Writen By : AJ -----------//
procedure TCustomClass.CleanComponentText;
Var
i : Integer;
begin
for i:= 0 to FComponentCount - 1 do begin
if TbsSkinEdit(FComponentName.Items[i]).Tag <> 1 then
TbsSkinEdit(FComponentName.Items[i]).Text:= '';
end;
end;
//------------------------------------------------- Writen By : AJ -----------//
procedure TCustomClass.ComponentReLoad;
begin
{FComponentName.Clear;
FComponentField.Clear;
CreateComponentDynamic(FDataSet, FParentControl, FSkinData);}
end;
//------------------------------------------------- Writen By : AJ -----------//
{procedure TCustomClass.OnClick(Sender: TObject);
begin
;
end; }
//------------------------------------------------- Writen By : AJ -----------//
function TCustomClass.SplitString(Mark, Str: String): TStrings;
Var
iPos : Integer;
begin
Result:=TStringlist.Create;
iPos:= Pos(Mark, Str);
While iPos <> 0 do begin
Result.Add(Copy(Str, 0,iPos - 1));
Delete(Str, 1, iPos);
iPos:= Pos(Mark, Str);
End;
Result.Add(Str);
end;
//------------------------------------------------- Writen By : AJ -----------//
procedure TCustomClass.SetDbGridView(TableName: String;DBGrid: TbsSkinDBGrid);
Var
i : Integer;
begin
{ DBGrid.Columns.Clear;
With DM1.ADOQuery_FieldMgr do begin
Close;
Sql.Text:= 'Select * From FieldMgr_tbl Where InTable = ''' + TableName + '''';
Open;
for i:= 0 to RecordCount - 1 do begin
FCurrentColumns:= DBGrid.Columns.Add;
FCurrentColumns.FieldName:= FieldByName('FieldName').AsString;
FCurrentColumns.Title.Caption:= FieldByName('DisplayName').AsString;
FCurrentColumns.Width:= 80;
Next;
end;
End; }
end;
//------------------------------------------------- Writen By : AJ -----------//
procedure TCustomClass.LoadDbGridView(TableName: String;DBGrid: TbsSkinDBGrid);
Var
XMLPath : String;
i : Integer;
begin
XMLPath:= 'Configure\InterFace.cfg';
XMLDoc1.LoadFromFile(XMLPath);
XMLDoc1.Active:= True;
FParentNode:= XMLDoc1.DocumentElement.ChildNodes.Nodes[TableName];
DBGrid.Columns.Clear;
for i:= 0 to FParentNode.ChildNodes.Count - 1 do begin
FCurrentNode:= FParentNode.ChildNodes.Get(i);
FCurrentColumns:= DBGrid.Columns.Add;
FCurrentColumns.FieldName:= FCurrentNode.AttributeNodes['Name'].Text;
FCurrentColumns.Title.Caption:= FCurrentNode.AttributeNodes['Title'].Text;
FCurrentColumns.Width:= StrToInt(FCurrentNode.AttributeNodes['Width'].Text);
end;
end;
//------------------------------------------------- Writen By : AJ -----------//
procedure TCustomClass.SaveDbGridView(TableName: String;DBGrid: TbsSkinDBGrid);
Var
XMLPath : String;
i : Integer;
begin
XMLPath:= 'Configure\InterFace.cfg';
XMLDoc1.LoadFromFile(XMLPath);
XMLDoc1.Active:= True;
FParentNode:= XMLDoc1.DocumentElement.ChildNodes.Nodes[TableName];
FParentNode.ChildNodes.Clear;
for i:= 0 to DBGrid.Columns.Count - 1 do begin
FCurrentNode:= FParentNode.AddChild('Field'+IntToStr(i));
FCurrentNode.AttributeNodes['Name'].Text:= DBGrid.Columns.Items[i].FieldName;
FCurrentNode.AttributeNodes['Title'].Text:= DBGrid.Columns.Items[i].Title.Caption;
FCurrentNode.AttributeNodes['Width'].Text:= IntToStr(DBGrid.Columns.Items[i].Width);
end;
XMLDoc1.SaveToFile(XMLPath);
end;
//------------------------------------------------- Writen By : AJ -----------//
procedure TCustomClass.ComponentChange(Sender: TObject);
Var
i, iPos : Integer;
KeyField : String;
B, C : String;
begin
Case TWinControl(Sender).Tag of
2,3:begin
for i:= 0 to FMathConstr.Count - 1 do begin
KeyField:= FMathConstr.Strings[i];
iPos:= Pos(',',KeyField);
if TbsSkinDBEdit(Sender).DataField = Copy(KeyField, 0, iPos-1) then begin
//ShowMessage(KeyField);
Delete(KeyField, 1, iPos);
ExeStrMath(KeyField);
end;
end;
//GetComponentByField('EndPage')
{B:= TbsSkinEdit(Sender).Text;
C:= GetComponentByField('BeginPage').Text;
if (B<>'') and (C<>'') then begin
A:= StrToInt(B) - StrToInt(C);
GetComponentByField('PageCount').Text:= IntToStr(A);
end; }
//ShowMessage(TbsSkinEdit(Sender).Text);
end;
End;
end;
//------------------------------------------------- Writen By : AJ -----------//
function TCustomClass.ExeStrMath(str: String): String;
Var
StrList, StrMatchList : TStrings;
i, iPosB, iPosE, Value : Integer;
Mark, sText : String;
begin
StrList := TStringList.Create;
StrMatchList:= TStringList.Create;
iPosB:= Pos('[',str);
iPosE:= Pos(']',str);
While iPosE > 0 do begin
iPosB:= Pos('[',str);
iPosE:= Pos(']',str);
StrList.Add(Copy(str, iPosB+1, iPosE-2));
StrMatchList.Add(Copy(str, iPosE+1, 1));
Delete(str, 1, iPosE+1);
End;
for i:= 1 to StrList.Count-1 do begin
sText:= GetComponentByField(StrList.Strings[i]).Text;
if sText = '' then Exit;
StrList.Strings[i]:= GetComponentByField(StrList.Strings[i]).Text;
end;
Mark:= StrMatchList.Strings[1];
if Mark='-' then begin
Value:= StrToInt(StrList.Strings[1])-StrToInt(StrList.Strings[2]);
end else begin
Value:= StrToInt(StrList.Strings[1])+StrToInt(StrList.Strings[2]);
end;
if StrMatchList.Strings[3] <> '' then begin
Mark:= StrMatchList.Strings[2];
if Mark='-' then begin
Value:= Value-StrToInt(StrMatchList.Strings[3]);
end else begin
Value:= Value+StrToInt(StrMatchList.Strings[3]);
end;
end;
GetComponentByField(StrList.Strings[0]).Text:= IntToStr(Value);
StrList.Free;
StrMatchList.Free;
end;
function TCustomClass.ReadMathStr(): String;
begin
end;
Procedure TCustomClass.WriteFMathStr(str: String);
begin
{With DM1.ADODataSet_Component do begin
Locate('ComponentName', TbsSkinComboBox(SelectControl).Name, [loCaseInsensitive]);
Edit;
FieldByName('Math').AsString:= str;
Post;
End }
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -