/
YakuninAV
/
Convertors
Обзор
Документация
Войти
/
YakuninAV
/
Convertors
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
PIR/PIRTableDescriptorFrame.pas
142 строки
4 KB
YakuninAV
begin with gitflick
31 июл 2026, 15:21
31 июл 2026, 15:21
1dc0fc6
Код
Авторство
О чём код?
unit PIRTableDescriptorFrame; {$I Synopse.inc} // define HASINLINE USETYPEINFO CPU32 CPU64 OWNNORMTOUPPER interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.ExtCtrls, SynCommons, PIRTypes, PIRTableDescriptorItemFrame; type TframePIRTabDesctipor = class(TFrame) edtID: TEdit; edtName: TEdit; chkRowID: TCheckBox; edtRowQty: TEdit; edtColQty: TEdit; udRowQty: TUpDown; udColQty: TUpDown; cbbTableKind: TComboBox; cbbPriceKind: TComboBox; cbbMeashureOfPrice: TComboBox; rbName: TRadioButton; rbUnit: TRadioButton; rbData: TRadioButton; rbParam: TRadioButton; frameDescriptorItem1: TframeDescriptorItem; cbbItemKind: TComboBox; procedure rbNameClick(Sender: TObject); procedure frameDescriptorItem1Exit(Sender: TObject); procedure cbbItemKindChange(Sender: TObject); private FTableDescriptor: TPIRTableDescriptor; Modified: Boolean; procedure SetTableDescriptor(const Value: TPIRTableDescriptor); { Private declarations } procedure ShowDescr; procedure FillDescr; function GetStrListFromEnum(aTypeInfo: pointer; lst: TStrings): Integer; public { Public declarations } property TableDescriptor: TPIRTableDescriptor read FTableDescriptor write SetTableDescriptor; end; implementation {$R *.dfm} { TframePIRTabDesctipor } procedure TframePIRTabDesctipor.cbbItemKindChange(Sender: TObject); begin if frameDescriptorItem1.ItemName='������������' then begin FTableDescriptor.RC_Name:=frameDescriptorItem1.DescrItem; end; frameDescriptorItem1.ItemName:=cbbItemKind.Text; { ������������ ������� ��������� ���� } case cbbItemKind.ItemIndex of 0: frameDescriptorItem1.DescrItem:=FTableDescriptor.RC_Name; 1: frameDescriptorItem1.DescrItem:=FTableDescriptor.RC_Unit; 2: frameDescriptorItem1.DescrItem:=FTableDescriptor.RC_Data; end; end; procedure TframePIRTabDesctipor.FillDescr; begin FTableDescriptor.ID:=edtID.Text; FTableDescriptor.Name:=edtName.Text; FTableDescriptor.RowID:=chkRowID.Checked; FTableDescriptor.RowCount:=udRowQty.Position; FTableDescriptor.ColCount:=udColQty.Position; FTableDescriptor.Kind:=TPIRTableKind(cbbTableKind.ItemIndex); FTableDescriptor.PriceKind:=TPIRTablePriceKind(cbbPriceKind.ItemIndex); FTableDescriptor.MeashureOfPrice:=TPIRTableMeashureOfPrice(cbbMeashureOfPrice.ItemIndex) end; procedure TframePIRTabDesctipor.frameDescriptorItem1Exit(Sender: TObject); begin if rbName.Checked then begin FTableDescriptor.RC_Name:=frameDescriptorItem1.DescrItem; Modified:=True; end; end; function TframePIRTabDesctipor.GetStrListFromEnum(aTypeInfo: pointer; lst: TStrings): Integer; var arr: TRawUTF8DynArray; r: RawUTF8; begin if (aTypeInfo<>nil) and Assigned(lst) then begin lst.Clear; arr := GetEnumTrimmedNames(aTypeInfo); Result:= Length(arr); if Result<=0 then Exit; for r in arr do lst.Add(UTF8ToString(r)); end else Result:=-1; end; procedure TframePIRTabDesctipor.rbNameClick(Sender: TObject); begin if rbName.Checked then begin frameDescriptorItem1.DescrItem:=FTableDescriptor.RC_Name; end; end; procedure TframePIRTabDesctipor.SetTableDescriptor(const Value: TPIRTableDescriptor); begin FTableDescriptor := Value; ShowDescr; end; procedure TframePIRTabDesctipor.ShowDescr; begin edtID.Text:=FTableDescriptor.ID; edtName.Text:=FTableDescriptor.Name; chkRowID.Checked:=FTableDescriptor.RowID; udRowQty.Position:=FTableDescriptor.RowCount; udColQty.Position:=FTableDescriptor.ColCount; GetStrListFromEnum(TypeInfo(TPIRTableKind), cbbTableKind.Items); cbbTableKind.ItemIndex:=Ord(FTableDescriptor.Kind); GetStrListFromEnum(TypeInfo(TPIRTablePriceKind), cbbPriceKind.Items); cbbPriceKind.ItemIndex:=Ord(FTableDescriptor.PriceKind); GetStrListFromEnum(TypeInfo(TPIRTableMeashureOfPrice), cbbMeashureOfPrice.Items); cbbMeashureOfPrice.ItemIndex:=Ord(FTableDescriptor.MeashureOfPrice); { FTableDescriptor.ParamCount; FTableDescriptor.RC_Parameters; FTableDescriptor.RC_Parameter.Source; FTableDescriptor.RC_Parameter.SrcType; FTableDescriptor.RC_Parameter.Cell; FTableDescriptor.RC_Parameter.Color; FTableDescriptor.RC_Parameter.Font; } end; end.