نقل الداتا من WebBrowser الى memo
#1
السلام عليكم
هذا الكود لاظهار الاي بي IP، كيف نقله الى عنصر memo او edit ؟
كود :
form1.WebBrowser1.Navigate('http://automation.whatismyip.com/n09230945.asp');
الرد
#2
وعليكم السلام
استخدم البحث قبل طرح سؤال جديد، راجع كل من


كيف أعرف بوجود كلمة ما في صفحة على الانترنت ؟
http://www.delphi4arab.net/forum/showthread.php?tid=608

كيف يمكن الحصول على رقم ip الحقيقى بالدالفى
http://www.delphi4arab.net/forum/showthread.php?tid=452

تحديد Ip الخاصة بالاتصال الانترنت, ليس IP الشبكة المحلب
http://www.delphi4arab.net/forum/showthr...p?tid=1827
الرد
#3
استخدام مكون اسهل بكثير لاحظ الموضوع http://www.delphi4arab.net/forum/showthr...p?tid=2141
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
الرد
#4
راجعت البحث اخي ! لو وجدت ما طرحت السؤال

لدي اكثر الاكواد تعمل بشكل جيد على دلفي 7 لكن عندما نقلت المشروع على xe2 واجهت مشاكل في بعض الاكواد
كود :
function GetHTML(const AURL: string): string; var sHead,sHost,sPage: string; x,xCnt,xCntTotal: integer; sock: TClientSocket; ws: TWinSocketStream; ss: TStringStream; buff: array[0..4095] of char; const CrLf = #13#10; begin Result := ''; sHost := AURL; x := Pos('//',sHost) ; if x > 0 then System.Delete(sHost,1,x+1) ; x := Pos('/',sHost) ; if x > 0 then begin sPage := Copy(sHost,x,Length(sHost)) ; System.Delete(sHost,x,Length(sHost)) ; end else begin sPage := '/'; end; sock := TClientSocket.Create(nil) ; try try sock.ClientType := ctBlocking; sock.Port := 80; sock.Host := sHost; sock.Open; // set timeout to 20 seconds ws := TWinSocketStream.Create(sock.Socket,20000) ; ss := TStringStream.Create('') ; try sHead := 'GET ' + sPage + ' HTTP/1.0 ' + CrLf + 'Host: ' + sHost + CrLf + CrLf; StrPCopy(buff,sHead) ; ws.Write(buff,Length(sHead) + 1) ; ws.Position := 0; FillChar(buff,SizeOf(buff),0) ; repeat xCnt := ws.Read(buff,SizeOf(buff)) ; xCntTotal := xCntTotal + xCnt; ss.Write(buff[0],xCnt) ; until xCnt = 0; Result := ss.DataString; finally ws.Free; ss.Free; end; except end; finally sock.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); var ip: string; begin with TStringlist.Create do try Text := GetHTML('http://automation.whatismyip.com/n09230945.asp') ; if Count > 0 then ip := Strings[Count - 1]; finally Free; end; edit1.Text:= ip ; end;
الرد
#5

إقتباس :راجعت البحث اخي ! لو وجدت ما طرحت السؤال
كل من الروابط الاربع السابقة تجيب على السؤال فان لم تفهم ذلك موضوع اخر

إقتباس :تعمل بشكل جيد على دلفي 7 لكن عندما نقلت المشروع على xe2 واجهت مشاكل
أولا لم تذكر اصدار دلفي بأول مشاركة انه XE2
ثانيا لسنا منجمين لكي نعرف ما هي المشاكل التي تواجهك، لم تذكر ادنى معلومة: ماهو المشكل/رسالة الخطأ إن وجدت...
دائما حاول ذكر كل التفاصيل لتربح وقتك ووقت غيرك

نعود للمثال المكتوب فوق:
1- استخدمت TClientSocket
مكونات Socket غالبا تكون غير مثبتة مع اصدارات دلفي 6 وما فوق على ما اتذكر
لتثبيتها بدلفي XE2 إتبع ما يلي:
- من القائمة Component اختر Install Packages
- في Install Packages انقر الزر Add
- اذهب للمجلد \bin لدلفي XE وغالبا ما يكون بالمسار \Program Files\Embarcadero\RAD Studio\9.0\bin
- اختر الملف dclsockets160.bpl ثم Open
- ثم OK ثم Install Packages
- الى هنا تم تثبيت مكونات Socket بدلفي XE2

2- تبقى TClientSocket غير معرفة عليك باضافة System.Win.ScktComp بقائمة ال uses باعلى الملف المصدري لمشروعك

3- المشروع ينفذ دون اخطاء والنتيجة غير صحيحة
دلفي 2009 وما فوق يتعامل مع النصوص String على انها نصوص Unicode اي WideString نفس الشيئ بالنسبة للحروف Char
بالمثال فوق ابحث عن كل من
String غيرها بAnsiString
Char غيرهابAnsiChar

هذا كل شيئ، جرب: نفذ، بالتوفيق
الرد
#6
B.M.AbdelAziZ بارك الله فيك اخي شكراا لجهودك
الرد


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


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