Jump to content

风吹小机机

uniGUI Subscriber
  • Posts

    157
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by 风吹小机机

  1. I have tested it and can support HTML text
  2. https://share.weiyun.com/5fxh27g
  3. Access violation at address 75948970 in module 'combase.dll'. Read of address 00000000
  4. The main purpose of obtaining equipment information is to verify the validity of the software What good way do you have? No, Under the application program, this code can obtain the device information But an error is reported in UNGUI uses NB30, Winapi.ActiveX, System.Win.ComObj; {$region 'function GetWMIProperty(WMIType, WMIProperty: AnsiString): string;'} function GetWMIProperty(WMIType, WMIProperty: AnsiString): string; var Wmi, Objs, Obj: OleVariant; Enum: IEnumVariant; 😄 Cardinal; begin try Wmi := CreateOleObject(AnsiString('WbemScripting.SWbemLocator')); Objs := Wmi.ConnectServer(AnsiString('.'), AnsiString('root\cimv2')).ExecQuery(AnsiString('Select * from Win32_' + WMIType)); Enum := IEnumVariant(IUnknown(Objs._NewEnum)); Enum.Reset; Enum.Next(1, Obj, C); Obj := Obj.Properties_.Item(WMIProperty, 0).Value; if VarIsArray(Obj) then Result := Obj[0] else Result := Obj; except Result := 'error'; end; end; {$ENDREGION} //获取计算机名称 function GetComputerName: string; begin Exit(GetWMIProperty('OperatingSystem', 'CSName')); end; //获取BISO序列号 function GetBIOSSerialNumber: string; begin Exit(GetWMIProperty('BIOS', 'SerialNumber')); end; procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Lines.Clear; Memo1.Lines.Add(GetComputerName); Memo1.Lines.Add(GetBIOSSerialNumber); end;
  5. According to this setting, you can't pull in full screen As shown in the figure:
  6. Is there a method like CXGRID cxGrid1DBTableView1.DataController.PostEditingData; Because I found that after changing the data on the unidbgrid, Save the data set directly on the button, such as CDs Post, it is found that the data set is not saved to the current modified value, and the cursor must be moved to update the data set
  7. Excuse me unidbgrid How to save the currently edited data I really can't find the relevant method in the source code of unidbgrid
  8. MenuTree.ClientEvents.ExtEvents.Values['afterlayout'] := ' function afterlayout(sender, layout, eOpts)' + ' {' + ' Ext.get("' + MenuTree.JSId + '").setStyle({"background-color":"rgba(0,0,0,0)"});' + ' if(!!Ext.get("' + MenuTree.JSId + '").el.dom.children[0].id){' + ' var kid = Ext.get("' + MenuTree.JSId + '").el.dom.children[0].id;' + ' Ext.get(kid).setStyle({"background-color":"rgba(0,0,0,0)"});' +' };' + ' }'; Set the tree menu background to transparent
  9. Online development, directly write code on the browser to pull the control, and move the Delphi ide to the browser, which is very convenient
  10. http://www.9pas.com:8888/?OpenRunForm=CB576A87-96CC-4FE9-8AB3-CA653CC22E17&UserName=AllowLoginFreeUser&PassWord=123&Language=0
  11. You should ask questions on fasteport's official website
  12. Yes, the classic Delphi DLL One main program and multiple business module DLLs or function DLLs
  13. That is, the module code is written in the DLL, and the basic code is written in the framework body [such as connecting data, calling permission, etc.] DLL and framework body interact with each other through Delphi internal interface Of course, my framework can be separated from Delphi development [i.e. online runtime development], but some special functions still need to be encapsulated by modular DLL. My DLL can support unifrom and uniframe, and can also register the functions and processes inside the framework
  14. There is no onafterrunscript event. You can create a create by yourself OOP foundation is still important
  15. unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, uniGUITypes, uniGUIAbstractClasses, uniGUIClasses, uniGUIFrame, uniGUIBaseClasses, uniPanel; type TUniFrame2 = class(TUniFrame) P: TUniContainerPanel; SP: TUniSimplePanel; private { Private declarations } public { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation {$R *.dfm} constructor TUniFrame2.Create(AOwner: TComponent); begin inherited Create(AOwner); p.ClientEvents.ExtEvents.Values['afterlayout'] := 'function afterlayout(sender, layout, eOpts)' + ' {' + ' var PWidth = Ext.get("' + p.jsid + '").getWidth ();' + ' var PHegith = Ext.get("' + p.jsid + '").getHeight();' + ' var FWidth = Ext.get("' + SP.jsid + '").getWidth();' + ' var FHegith = Ext.get("' + SP.jsid + '").getHeight();' + ' var PLeft = FWidth / 2 - PWidth/2;' + ' var PTop = FHegith / 2 - PHegith/2;' + ' Ext.get("' + p.JSId + '").setStyle({"top":PTop + "px","left":PLeft + "px"});' +'}'; end; destructor TUniFrame2.Destroy; begin inherited Destroy; end; end. object UniFrame2: TUniFrame2 Left = 0 Top = 0 Width = 472 Height = 355 Align = alClient Anchors = [akLeft, akTop, akRight, akBottom] TabOrder = 0 ExplicitWidth = 320 ExplicitHeight = 240 object SP: TUniSimplePanel Left = 0 Top = 0 Width = 472 Height = 355 ParentColor = False Align = alClient TabOrder = 0 ExplicitLeft = 68 ExplicitTop = 181 ExplicitWidth = 256 ExplicitHeight = 128 object P: TUniContainerPanel Left = 13 Top = 14 Width = 256 Height = 128 ParentColor = False Color = 12615680 TabOrder = 1 end end end
×
×
  • Create New...