Sebagai alternatif tambahan saja,
saya coba sedikit modifikasi dari referensi reply posting terdahulu yang
sebenarnya sama saja kasusnya, (Masalah Create & Destroy Form (ASAP) - 10
September 2003 9:42), masih dalam bulan september kemarin koq, dan dengan
menggunakan sample surce code yang bung sugi buat, tetap bisa disederhanakan
hanya dengan memanfaatkan sebuah prosedur. anda bisa secara fleksibel
mengganti TFrame dengan TForm ataupun sebaliknya, cuman butuh sedikit
modifikasi saja koq dari contoh kode dalam postingan tersebut.
Salam,
-Jaimy
--
...Maybe you should think about how much time other people spend
on developing components to make you idiots which wouldn't even
be able to make a simple window showing up, possible to call
yourselves "PROGRAMMERS"...
-- James (20-09-2003 21:36)
----------- frmUnitJaimU.pas
unit frmUnitJaimU;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs, ComCtrls,
ExtCtrls, StdCtrls;
type
TFrameClass = class of TFrame;
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
StatusBar1: TStatusBar;
Button2: TButton;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
FActiveFrame: TFrame;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *.dfm}
//
// ******** cuman butuh prosedur ini ********
//
procedure FindFrameClass(AParent: TComponent;
AFrame: TFrameClass;
var AActiveFrame: TFrame);
var
i: integer;
begin
if Assigned(AActiveFrame) then
AActiveFrame.Hide;
AActiveFrame := nil;
if AParent.ComponentCount > 0 then
for i := 0 to AParent.ComponentCount-1 do
if (AParent.Components[i] is AFrame) then
begin
AActiveFrame := TFrame(AParent.Components[i]);
break;
end;
if not Assigned(AActiveFrame) then
begin
AActiveFrame := AFrame.Create(AParent);
AActiveFrame.Top := 0;
AActiveFrame.Left:= 0;
if AParent is TWinControl then
begin
AActiveFrame.Parent := TWinControl(AParent);
AActiveFrame.Height := TWinControl(AParent).ClientHeight;
AActiveFrame.Width := TWinControl(AParent).ClientWidth;
end;
end;
AActiveFrame.Show;
end;
//
// ****************
//
procedure TForm1.FormCreate(Sender: TObject);
begin
FActiveFrame := nil;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FindFrameClass(Panel1, TFrame2, FActiveFrame);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
FindFrameClass(Panel1, TFrame3, FActiveFrame);
end;
end.
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Upgrade to 128-Bit SSL Security!
http://us.click.yahoo.com/p7cEmB/s7qGAA/yigFAA/i7folB/TM
---------------------------------------------------------------------~->
Berlangganan: [EMAIL PROTECTED]
Stop Berlangganan: [EMAIL PROTECTED]
Keluhan Milis(Unbouncing,spam,dll): [EMAIL PROTECTED]
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/