关于网友提出的“ delphi控件visible使用的一个bug(是否bug)”问题疑问,本网通过在网上对“ delphi控件visible使用的一个bug(是否bug)”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: delphi控件visible使用的一个bug(是否bug)
描述: 1 在一个form1中,有一个page control,可以动态生成tabsheet
2 动态生成form2 ,放置在tabsheet上
3 在form2 中的show事件,可以改变控件的visible
问题:控件的visible=false ,控件可以看见。
form1源码:
unit FormPageForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin;
type
TForm1 = class(TForm)
ToolBar1: TToolBar;
btnPage: TToolButton;
PageControl1: TPageControl;
procedure btnPageClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses
FormInPage;
procedure TForm1.btnPageClick(Sender: TObject);
var
Form: TForm;
Sheet: TTabSheet;
begin
// create a tabsheet within the page control
Sheet := TTabSheet.Create(PageControl1);
Sheet.PageControl := PageControl1;
// create the form and place it in the tabsheet
Form := TForm2.Create (Application);
Form.BorderStyle := bsNone;
Form.Align := alClient;
Form.Parent := Sheet;
Form. Visible := True;
// activate and set title
PageControl1.ActivePage := Sheet;
Sheet.Caption := Form.Caption;
end;
end.
form2源码:
unit FormInPage;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm2 = class(TForm)
RichEdit1: TRichEdit;
Edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
Label2: TLabel;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormShow(Sender: TObject);
begin
Edit1.Visible:=False;
Label1.Visible :=False;
Edit2.Visible:=True;
Label2.Visible :=True;
Self.Repaint;
end;
end.
------------------------------
[?]忘各位能帮助解决,谢谢!
以上介绍了“ delphi控件visible使用的一个bug(是否bug)”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2381604.html