-
برنامه هاي چند فرمي
من داده اي را در فرم يك و دو تعريف كردم.اين داده در رويداد Onclickچند دكمه در فرم2 مقدارهاي متفاوت مي گيرد.و در فرم 1 در عبارت Case Of اين داده مورد بررسي قرار دادم.اما در اجرا هر كدام از رويدادهايي كه در فرم 2 هم كه اتفاق بيافتد فقط مقدار رويداد اول به آن داده داده مي شود.
چه كار كنم كه بر حسب رويدادي كه اتفاق مي افتد به آن داده مقدار داده شود؟
-
به انجمن ما خوش اومدی
روند کاریتو توضیح میدی ؟
یعنی میگی این Case Of رو برای چی نوشتی تا شاید بتونم کمکی کنم؟
-
procedure TForm6.Label2Click(Sender: TObject);
begin
case form11.newgame of
nomaze: form12.Show;
box: form13.show;
tunnel: form14.show;
spiral: form15.show;
blockade: form16.show;
twisted: form17.show
اين كد رو در برچسب2 فرم 6 نوشتم.
-
برنامه چند فرمي
.procedure TForm11.Label2Click(Sender: TObject);
begin
form11.Hide;
form18.show;
newgame:=nomaze;
end;
procedure TForm11.Label3Click(Sender: TObject);
begin
form11.Hide;
form19.show;
newgame:=box;
end;
procedure TForm11.Label4Click(Sender: TObject);
begin
form11.hide;
form21.show;
newgame:=tunnel;
end;
اين كد هم در فرم11 برنامه ام نوشتم.
-
public
newgame:(nomaze,box,tunnel,spiral,blockade,twistwd );
اين هم در بخش عمومي
حالا هر وقت روي هر كدام از برچسب هاي فرم11 كه كليك كنم و بعد بر روي برچسب2 فروم 6 كليك كنم فقط دستور مربوط به مقدار اولين رويداد فرم 11 اجرا مي شود
در صورتي كه من مي خوام روي هر رويدادي كه كليك مي كنم دستور مربوط به همان مقار رويداد اجرا شود
من بايد چطور اين كد رو تغيير بدم تا درست اجرا شه؟
-
اینجوری همه چیز به نظرم خوب میاد.
اگه میتونی Source برنامت رو لینک بده تا دانلود کنم و اصلاحات رو روش انجام بدم و بعدش بگم مشکلت کجا بوده.
خوبه ؟
-
Form6
کد:
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm6 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Label1Click(Sender: TObject);
procedure Label3Click(Sender: TObject);
procedure Label2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
newgame:(nomaze,box,tunnel,spiral,blockade,twisted);
end;
var
Form6: TForm6;
implementation
uses Unit7, Unit10, Unit13, Unit14, Unit15, Unit16, Unit17, Unit11, Unit12,
Unit18;
{$R *.dfm}
procedure TForm6.FormCreate(Sender: TObject);
begin
end;
procedure TForm6.Label1Click(Sender: TObject);
begin
form6.hide;
form7.show;
end;
procedure TForm6.Label2Click(Sender: TObject);
begin
case newgame of
nomaze: form12.Show;
box: form13.show;
tunnel: form14.show;
spiral: form15.show;
blockade: form16.show;
twisted: form17.show;
else
showmessage('select mazes');
end;
end;
procedure TForm6.Label3Click(Sender: TObject);
begin
form6.Hide;
form10.show;
end;
end.
-
Form11
کد:
کد:
unit Unit11;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm11 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
procedure Label1Click(Sender: TObject);
procedure Label2Click(Sender: TObject);
procedure Label3Click(Sender: TObject);
procedure Label4Click(Sender: TObject);
procedure Label5Click(Sender: TObject);
procedure Label6Click(Sender: TObject);
procedure Label7Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
newgame:(nomaze,box,tunnel,spiral,blockade,twisted);
end;
var
Form11: TForm11;
implementation
uses Unit7, Unit12, Unit19, Unit13, Unit18, Unit21, Unit20, Unit22, Unit23;
{$R *.dfm}
procedure TForm11.FormCreate(Sender: TObject);
begin
end;
procedure TForm11.Label1Click(Sender: TObject);
begin
form11.Hide;
form7.show;
end;
procedure TForm11.Label2Click(Sender: TObject);
begin
form11.Hide;
form18.show;
newgame:=nomaze;
end;
procedure TForm11.Label3Click(Sender: TObject);
begin
form11.Hide;
form19.show;
newgame:=box;
end;
procedure TForm11.Label4Click(Sender: TObject);
begin
form11.hide;
form20.show;
newgame:=tunnel;
end;
procedure TForm11.Label5Click(Sender: TObject);
begin
form11.hide;
form21.show;
newgame:=spiral;
end;
procedure TForm11.Label6Click(Sender: TObject);
begin
form11.Hide;
form22.show;
newgame:=blockade;
end;
procedure TForm11.Label7Click(Sender: TObject);
begin
form11.Hide;
form23.show;
newgame:=twisted;
end;
end.
-
Form7
کد:
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm7 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Label3Click(Sender: TObject);
procedure Label1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
uses unit6, Unit11;
{$R *.dfm}
procedure TForm7.FormCreate(Sender: TObject);
begin
end;
procedure TForm7.Label1Click(Sender: TObject);
begin
form7.Hide;
form11.Show;
end;
procedure TForm7.Label3Click(Sender: TObject);
begin
form7.Hide;
form6.show;
end;
end.
-
Form10
کد:
unit Unit10;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm10 = class(TForm)
Label1: TLabel;
procedure Label1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form10: TForm10;
implementation
uses Unit6;
{$R *.dfm}
procedure TForm10.FormCreate(Sender: TObject);
begin
end;
procedure TForm10.Label1Click(Sender: TObject);
begin
form10.Hide;
form6.show;
end;
end.