كيف اقوم بتشغيل فورم اشأته برمجياً في كل مرة يعمل البرنامح بها
#6
أخوتي الكرام الحمدلله حلت المشلكة واليكم الحل :

أولأ أنشأت ServerSocket و ClinetSocket على فورم واحد بعنوان 127.0.0.1

ثم وضعت تايمر بتوقيت 100 جزء يقوم بفتح الاتصال في ClinetSocket ومن ثم يوم بارسال جملة اليكم الكود :

هذا بالنسبة للسيرفر :

PHP كود :
procedure TForm10.CheckNameClientRead(Sender: TObject;
  
Socket: TCustomWinSocket);
 var   
s,r,str,name,all_Room,roomcontrol:string;
      
i,n:integer;
  
begin
   S
:=Socket.ReceiveText;
   
n:=pos('@',S);
   if 
n>0 then
   begin
     str
:=copy(S,1,n-1);
     if 
str='*Mr2*' then
      begin
    
for i := 0 to lvl1.Items.Count - 1 do
    
all_Room:=all_Room
    
+lvl1.Items[i].subitems[0] +'^%'
    
+lvl1.Items[i].subitems[1]+'$%'
    
+lvl1.Items[i].subitems[2]+'&)'
    
+lvl1.Items[i].SubItems[3]+'&('
    
+lvl1.Items[i].SubItems[4]+'&!'
    
+lvl1.Items[i].SubItems[5]+'&#'
    
+lvl1.Items[i].SubItems[6]+'&%'
    
+lvl1.Items[i].SubItems[7]+'&^'
    
+lvl1.Items[i].SubItems[8]+'&&'
    
+lvl1.Items[i].SubItems[9]+'(|'
    
+lvl1.Items[i].SubItems[10]+'!!'
    
+lvl1.Items[i].SubItems[11]+'!#'
    
+lvl1.Items[i].SubItems[12]+'!$'
    
+lvl1.Items[i].SubItems[13]+'!%'
    
+lvl1.Items[i].SubItems[14]+'!^'
    
+lvl1.Items[i].SubItems[15]+'!&'
    
+lvl1.Items[i].SubItems[16]+'!*'
    
+lvl1.Items[i].SubItems[17]+'!('
    
+lvl1.Items[i].SubItems[18]+'!)'
    
+lvl1.Items[i].SubItems[19]+'#!'
    
+lvl1.Items[i].SubItems[20]+'##'
    
+lvl1.Items[i].SubItems[21]+'#$'
    
+lvl1.Items[i].SubItems[22]+'#%'
    
+lvl1.Items[i].SubItems[23]+'#&'+'@';
    for 
i:=0 to CheckName.Socket.ActiveConnections-1 do
    
CheckName.Socket.Connections[i].SendText('*Mr2*@'+all_Room);
   
end;
   
end;
  
end; 

وهذا بالنسبة لـ كلاينت


PHP كود :
procedure TForm10.clntsckt1Read(Sender: TObject; Socket: TCustomWinSocket);
var 
str1,name,s,str2,nei_rong:string;
    
n,i:integer;
      
ni_cheng:string;
        
F:TForm5;
begin
str1
:=socket.ReceiveText;
str2:=copy(str1,1,pos('@',str1)-1);
      if 
str2='*Mr2*' then
      begin
        str1
:=copy(str1,pos('@',str1)+1,length(str1)-pos('@',str1));
        while 
str1<>'' do
        
begin
         s
:=copy(str1,1,pos('@',str1)-1);

  
F := TForm5.Create(nil);
  
f.Name:='R'+copy(s,pos('^%',s)+2,pos('$%',s)-pos('^%',s)-2);  //اسم الفورم
  
f.tsNt.Caption:=copy(s,1,POS('^%',s)-1);     // اسم الغرفة
  
f.Caption:=copy(s,1,POS('^%',s)-1);          //اسم الغرفة
                             //بورت الاتصال
  
f.Sr1.Port:=StrToInt(copy(s,pos('^%',s)+2,pos('$%',s)-pos('^%',s)-2));
  
f.Sr2.Port:=StrToInt(copy(s,pos('^%',s)+2,pos('$%',s)-pos('^%',s)-2))+1;
  
f.Sr3.Port:=StrToInt(copy(s,pos('^%',s)+2,pos('$%',s)-pos('^%',s)-2))+2;
  
f.n1.Port:= StrToInt(copy(s,pos('^%',s)+2,pos('$%',s)-pos('^%',s)-2))+3;
  
f.n2.Port:= StrToInt(copy(s,pos('^%',s)+2,pos('$%',s)-pos('^%',s)-2))+4;
                            
//
                            //ثيرد الاتصال
  
f.Sr1.ThreadCacheSize:=StrToInt(copy(s,pos('$%',s)+2,pos('&)',s)-pos('$%',s)-2));
  
f.Sr2.ThreadCacheSize:=StrToInt(copy(s,pos('$%',s)+2,pos('&)',s)-pos('$%',s)-2));
  
f.Sr3.ThreadCacheSize:=StrToInt(copy(s,pos('$%',s)+2,pos('&)',s)-pos('$%',s)-2));
  
f.n1.ThreadCacheSize:=StrToInt(copy(s,pos('$%',s)+2,pos('&)',s)-pos('$%',s)-2));
  
f.n2.ThreadCacheSize:=StrToInt(copy(s,pos('$%',s)+2,pos('&)',s)-pos('$%',s)-2));
                            
//
  
f.ClE3.Text:=copy(s,pos('&%',s)+2,pos('&^',s)-pos('&%',s)-2);  //التاريخ
  
f.cl2.Text:=copy(s,pos('&^',s)+2,pos('&&',s)-pos('&^',s)-2);   //التاريخ
                            //
  
f.edt18.Text:=copy(s,pos('&(',s)+2,pos('&!',s)-pos('&(',s)-2); // السكيورتي
  
f.e1.Text:='0';
  
f.Ow1.Text:=copy(s,pos('&&',s)+2,pos('(|',s)-pos('&&',s)-2);//رقم الصورة المفعلة
  
f.Eedt1.Text:=copy(s,pos('!!',s)+2,pos('!#',s)-pos('!!',s)-2);//رابط
  
f.se1.Value:=StrToInt(copy(s,pos('^%',s)+2,pos('$%',s)-pos('^%',s)-2));//رقم الغرفة
  
f.ClE2.Text:=copy(s,pos('$%',s)+2,pos('&)',s)-pos('$%',s)-2);//حجم الغرفة
  
f.Eow1.Text:=copy(s,pos('&!',s)+2,pos('&#',s)-pos('&!',s)-2);//الاونر
  
f.Erla1.Text:=copy(s,pos('(|',s)+2,pos('!!',s)-pos('(|',s)-2);//المود العام

  
f.edt5.Text:=copy(s,pos('!$',s)+2,pos('!%',s)-pos('!$',s)-2);//اعدادات الاونر
  
f.edt13.Text:=copy(s,pos('!%',s)+2,pos('!^',s)-pos('!%',s)-2);//الغرفة صامتة
  
f.edt14.Text:=copy(s,pos('!^',s)+2,pos('!&',s)-pos('!^',s)-2);//اعدادات المود
  
f.Edit2.Text:=copy(s,pos('!&',s)+2,pos('!*',s)-pos('!&',s)-2);//باسورد الغرفة
  
f.Edit1.Text:=copy(s,pos('!*',s)+2,pos('!(',s)-pos('!*',s)-2);//تفعيل الكتابة
  
f.Edt15.Text:=copy(s,pos('!(',s)+2,pos('!)',s)-pos('!(',s)-2);//الكتابة الخاصة
  
f.Edt16.Text:=copy(s,pos('!)',s)+2,pos('#!',s)-pos('!)',s)-2);//تفعيل الصوت
  
f.Edt17.Text:=copy(s,pos('#!',s)+2,pos('##',s)-pos('#!',s)-2);//تفعيل الصورة
  
f.se4.Text:=copy(s,pos('##',s)+2,pos('#$',s)-pos('##',s)-2);//المايكريفونات
  
f.se2.Text:=copy(s,pos('#$',s)+2,pos('#%',s)-pos('#$',s)-2);//ادوار الانتظار
  
f.se3.Text:=copy(s,pos('#%',s)+2,pos('#&',s)-pos('#%',s)-2);//التحدث بالثواني
  
for i := 0 to lv1.Items.Count - 1 do
  if  
lv1.Items[i].subitems[5]=copy(s,pos('^%',s)+2,pos('$%',s)-pos('^%',s)-2) then begin
  with f
.lv2.Items.Add do  begin
  Caption
:=IntToStr(f.lv2.Items.Count);
  
SubItems.Add(lv1.Items[i].subitems[0]);
  
SubItems.Add(lv1.Items[i].subitems[1]);
  
SubItems.Add(lv1.Items[i].subitems[2]);
  
SubItems.Add(lv1.Items[i].subitems[3]);
  
SubItems.Add(lv1.Items[i].subitems[4]);
  
end;
  
end;
   for 
i := 0 to lvlv2.Items.Count - 1 do
  if  
lvlv2.Items[i].subitems[2]=copy(s,pos('^%',s)+2,pos('$%',s)-pos('^%',s)-2) then begin
  with f
.lv4.Items.Add do  begin
  Caption
:=IntToStr(f.lv4.Items.Count);
  
SubItems.Add(lvlv2.Items[i].subitems[0]);
  
SubItems.Add(lvlv2.Items[i].subitems[1]);
  
SubItems.Add(lvlv2.Items[i].subitems[2]);
  
end;
  
end;
  
f.Sr1.Active:=True;
  
f.Sr2.Active:=True;
  
f.Sr3.Active:=True;
  
f.n1.Active:=True;
  
f.n2.Active:=True;
  
f.Show;
  
f.e1.Clear;
  
f.e1.Text:='0';
  
f.Hide;
  
str1:=copy(str1,pos('@',str1)+1,length(str1)-pos('@',str1));
end;
Form1.n3.Open;
end; 

بحيث يقوم في كل تشغيل بعمل تلقائي لكل فورم لوحده وبعد نهايته من العمل يقوم بتشغيل السوكت الرئيسي

شكراً لكم آخوتي

اللهمّ إنّي ظلمت نفسي ظلماً كثيراً ولا يغفر الذّنوب إلا أنت

فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم
الرد


الردود في هذا الموضوع
كيف اقوم بتشغيل فورم اشأته برمجياً في كل مرة يعمل البرنامح بها - بواسطة M_Mori2010 - 13-10-2012, 05:22 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم