/
YakuninAV
/
Convertors
Обзор
Документация
Войти
/
YakuninAV
/
Convertors
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
PIR/PIRTableDescriptorItemFrame.pas
127 строк
3 KB
YakuninAV
begin with gitflick
31 июл 2026, 15:21
31 июл 2026, 15:21
1dc0fc6
Код
Авторство
О чём код?
unit PIRTableDescriptorItemFrame; {$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.ComCtrls, Vcl.StdCtrls, Vcl.Buttons, Vcl.ExtCtrls, SynCommons, PIRTypes; type TframeDescriptorItem = class(TFrame) cbbSrcType: TComboBox; edtRow: TEdit; edtCol: TEdit; udRow: TUpDown; udCol: TUpDown; mmoSource: TMemo; btnColor: TBitBtn; btnFont: TBitBtn; dlgColor: TColorDialog; dlgFont: TFontDialog; bvlTop: TBevel; lblItemName: TLabel; procedure btnColorClick(Sender: TObject); procedure btnFontClick(Sender: TObject); private FDescrItem: TPIRItemDescriptor; FItemName: string; Initialized: Boolean; function GetDescrItem: TPIRItemDescriptor; procedure SetDescrItem(const Value: TPIRItemDescriptor); procedure SetItemName(const Value: string); { Private declarations } function GetStrListFromEnum(aTypeInfo: pointer; lst: TStrings): Integer; procedure FillItem; procedure ShowItem; public { Public declarations } property DescrItem: TPIRItemDescriptor read GetDescrItem write SetDescrItem; property ItemName: string read FItemName write SetItemName; procedure Init; end; implementation {$R *.dfm} { TFrame1 } procedure TframeDescriptorItem.btnColorClick(Sender: TObject); begin if dlgColor.Execute then begin btnColor.Font.Color:=dlgColor.Color; FDescrItem.Color:=dlgColor.Color; end; end; procedure TframeDescriptorItem.btnFontClick(Sender: TObject); begin if dlgFont.Execute then begin btnFont.Font:=dlgFont.Font; btnFont.Caption:=dlgFont.Font.Name; end; end; procedure TframeDescriptorItem.FillItem; var cell: TPIRTableCell; begin FDescrItem.Source := mmoSource.Text; FDescrItem.SrcType:=TPIRTableSourceType(cbbSrcType.ItemIndex); // cell.Row:=udRow.Position; // cell.Col:=udCol.Position; FDescrItem.CellTL:=TPIRTableCell.Create(udRow.Position, udCol.Position); FDescrItem.Color:=btnColor.Brush.Color; FDescrItem.Font:=btnFont.Caption; end; function TframeDescriptorItem.GetDescrItem: TPIRItemDescriptor; begin FillItem; Result:=FDescrItem; end; function TframeDescriptorItem.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 TframeDescriptorItem.Init; begin Initialized:=True; GetStrListFromEnum(TypeInfo(TPIRTableSourceType), cbbSrcType.Items); end; procedure TframeDescriptorItem.SetDescrItem(const Value: TPIRItemDescriptor); begin FDescrItem := Value; ShowItem; end; procedure TframeDescriptorItem.SetItemName(const Value: string); begin FItemName := Value; lblItemName.Caption:=Value; end; procedure TframeDescriptorItem.ShowItem; begin if not Initialized then Init; mmoSource.Text:=FDescrItem.Source; cbbSrcType.ItemIndex:= ord(FDescrItem.SrcType); udRow.Position:=FDescrItem.CellTL.Row; udCol.Position:=FDescrItem.CellTL.Col; btnColor.Brush.Color:=FDescrItem.Color; btnFont.Caption:=FDescrItem.Font; end; end.