📄 formtype.pas
字号:
unit FormType;interfaceuses SysUtils, Types, Classes, Variants, QGraphics, QControls, QForms, QDialogs, QStdCtrls, QExtCtrls, QComCtrls, QMenus, QTypes;type TObjType = ( otComponents, otControls ); TFrmMain = class(TForm) RadGrpBorderStyle: TRadioGroup; BtnCreate: TButton; GrpBoxBorderIcon: TGroupBox; ChkBoxSystemMenu: TCheckBox; ChkBoxMinimize: TCheckBox; ChkBoxMaximize: TCheckBox; ChkBoxHelp: TCheckBox; LblScaleBy: TLabel; EdtScaleBy: TEdit; BtnScale: TButton; RadGrpPosition: TRadioGroup; StatusBar: TStatusBar; MainMenu: TMainMenu; MnuFile: TMenuItem; BtnShow: TButton; LstBoxFormEvents: TListBox; procedure BtnCreateClick(Sender: TObject); procedure BtnScaleClick(Sender: TObject); procedure BtnShowClick(Sender: TObject); private { Private declarations } public { Public declarations } end;var FrmMain: TFrmMain;implementationuses NewForm;{$R *.xfm}procedure TFrmMain.BtnCreateClick(Sender: TObject);var FrmNew: TFrmNew; BorderStyle: TFormBorderStyle; BorderIcons: TBorderIcons; i: Integer; AnObjType: TObjType;begin// FrmNew := TFrmNew.Create( Self ); FrmNew := TFrmNew.Create( Application ); BorderStyle := TFormBorderStyle( RadGrpBorderStyle.ItemIndex ); BorderIcons := []; if ChkBoxSystemMenu.Checked then System.Include( BorderIcons, biSystemMenu ); if ChkBoxMinimize.Checked then System.Include( BorderIcons, biMinimize ); if ChkBoxMaximize.Checked then System.Include( BorderIcons, biMaximize ); if ChkBoxHelp.Checked then System.Include( BorderIcons, biHelp ); FrmNew.BorderStyle := BorderStyle; FrmNew.BorderIcons := BorderIcons; FrmNew.Position := TPosition( RadGrpPosition.ItemIndex ); FrmNew.Caption := RadGrpBorderStyle.Items[ RadGrpBorderStyle.ItemIndex ];// AnObjType := otControls; AnObjType := otComponents; if AnObjType = otComponents then begin FrmNew.LstBoxComponents.Items.Add( 'Components'' Count is ' + IntToStr( ComponentCount ) ); for i := 0 to ComponentCount - 1 do begin if Components[i] is TForm then FrmNew.LstBoxComponents.Items.Add( TForm( Components[i] ).Name ) else if Components[i] is TButton then FrmNew.LstBoxComponents.Items.Add( TButton( Components[i] ).Name ) else if Components[i] is TRadioGroup then FrmNew.LstBoxComponents.Items.Add( TRadioGroup( Components[i] ).Name ) else if Components[i] is TCheckBox then FrmNew.LstBoxComponents.Items.Add( TCheckBox( Components[i] ).Name ) else if Components[i] is TGroupBox then FrmNew.LstBoxComponents.Items.Add( TGroupBox( Components[i] ).Name ) else if Components[i] is TStatusBar then FrmNew.LstBoxComponents.Items.Add( TStatusBar( Components[i] ).Name ) else if Components[i] is TMainMenu then FrmNew.LstBoxComponents.Items.Add( TMainMenu( Components[i] ).Name ) else if Components[i] is TMenuItem then FrmNew.LstBoxComponents.Items.Add( TMenuItem( Components[i] ).Name ) else if Components[i] is TLabel then FrmNew.LstBoxComponents.Items.Add( TLabel( Components[i] ).Name ) else if Components[i] is TEdit then FrmNew.LstBoxComponents.Items.Add( TEdit( Components[i] ).Name ); end; end else if ANObjType = otControls then begin FrmNew.LstBoxComponents.Items.Add( 'Controls'' Count is ' + IntToStr( ControlCount ) ); for i := 0 to ControlCount - 1 do begin if Controls[i] is TForm then FrmNew.LstBoxComponents.Items.Add( TForm( Controls[i] ).Name ) else if Controls[i] is TButton then FrmNew.LstBoxComponents.Items.Add( TButton( Controls[i] ).Name ) else if Controls[i] is TRadioGroup then FrmNew.LstBoxComponents.Items.Add( TRadioGroup( Controls[i] ).Name ) else if Controls[i] is TCheckBox then FrmNew.LstBoxComponents.Items.Add( TCheckBox( Controls[i] ).Name ) else if Controls[i] is TGroupBox then FrmNew.LstBoxComponents.Items.Add( TGroupBox( Controls[i] ).Name ) else if Controls[i] is TStatusBar then FrmNew.LstBoxComponents.Items.Add( TStatusBar( Controls[i] ).Name )// else if Controls[i] is TMainMenu then// FrmNew.LstBoxComponents.Items.Add( TMainMenu( Controls[i] ).Name )// else if Controls[i] is TMenuItem then// FrmNew.LstBoxComponents.Items.Add( TMenuItem( Controls[i] ).Name ) else if Controls[i] is TLabel then FrmNew.LstBoxComponents.Items.Add( TLabel( Controls[i] ).Name ) else if Controls[i] is TEdit then FrmNew.LstBoxComponents.Items.Add( TEdit( Controls[i] ).Name ); end; end;// FrmNew.Show(); // This will immediately destroy the window FrmNew. FrmNew.ShowModal(); LstBoxFormEvents.Items.Add( 'Invoking the Free method from FrmMain.' ); FrmNew.Free();end;procedure TFrmMain.BtnScaleClick(Sender: TObject);begin ScaleBy( StrToInt( EdtScaleBy.Text ), 100 );end;procedure TFrmMain.BtnShowClick(Sender: TObject);var PointA, PointB: TPoint; ABoundsRect: TRect;begin PointA := Classes.Point( Width, Height ); PointB := Classes.Point( ClientWidth, ClientHeight );// ABoundsRect :={ StatusBar.Panels[0].Text := StatusBar.Panels[0].Text + IntToStr( BoundsRect.TopLeft.X ); StatusBar.Panels[1].Text := StatusBar.Panels[1].Text + IntToStr( BoundsRect.TopLeft.Y ); StatusBar.Panels[2].Text := StatusBar.Panels[2].Text + IntToStr( ClientWidth ); StatusBar.Panels[3].Text := StatusBar.Panels[3].Text + IntToStr( ClientHeight );} StatusBar.Panels[0].Text := StatusBar.Panels[0].Text + IntToStr( Width ); StatusBar.Panels[1].Text := StatusBar.Panels[1].Text + IntToStr( Height ); StatusBar.Panels[2].Text := StatusBar.Panels[2].Text + IntToStr( ClientWidth ); StatusBar.Panels[3].Text := StatusBar.Panels[3].Text + IntToStr( ClientHeight ); StatusBar.Panels[4].Text := StatusBar.Panels[4].Text + '( ' + IntToStr( ClientRect.Left ) + ', ' + IntToStr( ClientRect.Top ) + '; ' + IntToStr( ClientRect.Right ) + ', ' + IntToStr( ClientRect.Bottom ) + ' )'; Canvas.Brush.Color := $00F0F0F0; Canvas.FillRect( ClientRect ); Canvas.MoveTo( 0, 0 );// Canvas.LineTo( Width, Height ); Canvas.LineTo( ClientWidth, ClientHeight - 19 );end;end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -