الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في Comport

بدأه rachid.mtb في 10 يونيو 2008 · 1 رد · 932 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

استعملة خاصية البحث في الموقع لكن لم اجد حل لهده المشكلة

لقد قمت بانجاز برنامج بالدالفي للاتصال الهاتفي عن طريق منفد com

وقمت باستعمال المكون comport

procedure TForm2.BitBtn4Click(Sender: TObject); //ارسال

VAR

STR:STRING;

begin

COMPORT1.Open;

STR:='AT+CUSD=0,"*710#"'+#13+#10;

ComPort1.WriteSTR(STR);

TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); // استقبال

VAR

S:STRING;

begin

SetLength(S, Count);

ComPort1.Read( S[1] ,COUNT);

.Memo1.Text:=.Memo1.Text+S;

فكانت النتيجة كما يلي

AT+CUSD=0,"*710#"

+CUSD: 0,"CREDIT: 3895.16 DA . "

OK

المشكلة هي كيف اجعل الاستقبال لايظهر تعليمة الارسال اي

مربع النص memo

يظهر تعليمة الاستقبال والارسال في نفس الوقت

تعليمة الارسال هي المخططة بالون الاحمر

#2

الحل بسيط

في الحدث ComPort1RxChar يجب الانتباه إلى المتحول S ومعالجته للحصول على القيم المطلوبة ، بمعنى آخر فلترة النص

ولا تضيف إلى memo سوى النتيجة

مثال على ذلك

  1.  
  2. procedure TCallerIDF.ComPortRxChar(Sender: TObject; Count: Integer);
  3. var Str,coid: String;
  4. i,k:byte;
  5. begin
  6. coid := '';
  7. ComPort.ReadStr(Str, Count);
  8. if pos('B',Str) > 0 then
  9. with RichEdit do
  10. begin
  11. if cnumber = 0 then
  12. Lines.Add('رقم المتصل') else
  13. Lines.Add('الرقم المحلي');
  14.  
  15.  
  16. SelAttributes.Color := clblack;
  17. SelAttributes.Size := 8;
  18. SelAttributes.Style := [];
  19. Lines.Add('New Call :');
  20. SelAttributes.Color := clRed;
  21. SelAttributes.Size := 11;
  22. SelAttributes.Style := [fsbold];
  23. coid := copy(str,pos('B',Str)+5,12);
  24.  
  25. Lines.Add(coid);
  26.  
  27. SelAttributes.Color := clblack;
  28. SelAttributes.Size := 8;
  29. SelAttributes.Style := [];
  30. Lines.Add('DATE :'+datetostr(now));
  31. Lines.Add('TIME :'+timetostr(now));
  32. setRegistry(coid , RegPath , 'NCID');
  33. inc(cnumber);
  34. end;
  35. Memo.Text := Memo.Text + Str;
  36.  
  37.  

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 6 مارس 2009 في 16:39

بسام محمد الكحلان

مدير الانتاج

الراجحي سوفت

 

http://www.alrajhisoft.com

مواضيع مشابهة