1

まず、このファイルをダウンロードしてください(ダウンロード)。

Image1をユーザーに表示するためにForm2を「Sendtoback」に設定するにはどうすればよいですか?Image1.BringToFrontを使用します。しかし、このコードは機能しません!!

これが本体です:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Image1: TImage;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
      uses unit2;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   tFrm2:Tform2;
begin
     tFrm2:=Tform2.Create(self);
     tFrm2.Parent:=self;
     tFrm2.Align:=alClient;
     tFrm2.Show;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
//     Image1.BringToFront;

end;

end.
4

1 に答える 1

2

あなたがやっている方法では、多くの Form2 インスタンスを画像の上に積み重ねることができるので、すべての子フォーム (つまり、親が Form1 であるすべてのフォーム) を検索して、それぞれを非表示にすることができます。最終結果は、画像が再び表示されます。

procedure TForm1.Button2Click(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to Screen.FormCount - 1 do
    if (Screen.Forms[I].Parent = Self) then
      Screen.Forms[I].Hide;
end;

よろしくお願いします。

于 2010-10-26T23:40:43.813 に答える