اخي الكريم AL-MOB4RM3G لم افهم لماذا استعملت ال MemoryStream .
اليس من السهل استعمال ال Stringlist مع خاصية ال commatext و بعد ذلك تقوم فقط بال stringlist lines parsing عند استقبالها من طرف ال Server ويمكن كذلك ظغطها اقصد ال stringlist اذا اردت .
ام هناك استعمال اخر لل memorystream غير ارسال القيم النصية اذا كان كذلك فهذا شئ مغاير .
في الحقيقة لا اعلم لماذا استخدمتها, كنت انظر الى الملف في هذه المشآركة, كان الأخ o15s19 استخدم فيها ال MemoryStream كي يرسل المعلومات من الكلينت الى السرفر,
في الحقيقة انا لا يهمّني اية طريقة استخدمها, يعني لست مرتبط بطريقة معيّنة,
المهم عندي ان ارسل جميع المعلومات دفعة وآحدة, يعني ليس التكست في ال Edit 1 و ثم التكست في edit 2 و هكذا, بل اضع التكست في ال Edit وآحد و اثنين في حاوي ان صح التعبير و بعدها ارسلها ثم استقبلها وبعدها استخدم كل شئ لوحده,
هل من حل لذلك بارك الله لكم ؟
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
إقتباس :اليس من السهل استعمال ال Stringlist مع خاصية ال commatext و بعد ذلك تقوم فقط بال stringlist lines parsing عند استقبالها من طرف ال Server ويمكن كذلك ظغطها اقصد ال stringlist اذا اردت .
همم, هذا الحل لا ينفع,
تم التطرق اليه سابقا والله المستعان في المشآركة هذه,
بارك الله لكم,
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
كيف لا تصلح اخي الكريم AL-MOB4RM3G , هل هذا ماتبحث عنه :
كود :
procedure TForm1.Button2Click(Sender: TObject);
var
Strs:TStringList;
begin
Strs:=TStringList.Create;
Try
IdTCPClient1.Connect;
Strs.Add('HI_SERVER_PLEAS_ACCEPT_THESE_VALUES');// this is the command
Strs.Add(edit1.text);
Strs.Add(edit2.text);
Strs.Add(edit3.text);
IdTCPClient1.IOHandler.WriteLn(Strs.CommaText);
Finally
Strs.Free;
end; end;
// Receive Values from IdTCPClient1
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
Var
Strs:TStringList;
begin
Strs:=TStringList.Create;
Try
Strs.CommaText:={uppercase}(AContext.Connection.IOHandler.ReadLn);
if Strs[0]='HI_SERVER_PLEAS_ACCEPT_THESE_VALUES' then
begin
edit4.Text:=Strs[1];
edit5.Text:=Strs[2];
edit6.Text:=Strs[3];
end;
Finally
Strs.Free;
end; end