المشاركات : 71
المواضيع 21
:
: 0
الإنتساب : Dec 2011
السلام عليكم
هذا الكود لاظهار الاي بي IP، كيف نقله الى عنصر memo او edit ؟
كود :
form1.WebBrowser1.Navigate('http://automation.whatismyip.com/n09230945.asp');
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
وعليكم السلام
استخدم البحث قبل طرح سؤال جديد، راجع كل من
كيف أعرف بوجود كلمة ما في صفحة على الانترنت ؟
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
المشاركات : 975
المواضيع 50
:
: 218
الإنتساب : Feb 2008
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
المشاركات : 71
المواضيع 21
:
: 0
الإنتساب : Dec 2011
راجعت البحث اخي ! لو وجدت ما طرحت السؤال
لدي اكثر الاكواد تعمل بشكل جيد على دلفي 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;
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
إقتباس :راجعت البحث اخي ! لو وجدت ما طرحت السؤال
كل من الروابط الاربع السابقة تجيب على السؤال فان لم تفهم ذلك موضوع اخر
إقتباس :تعمل بشكل جيد على دلفي 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
هذا كل شيئ، جرب: نفذ، بالتوفيق
المشاركات : 71
المواضيع 21
:
: 0
الإنتساب : Dec 2011
B.M.AbdelAziZ بارك الله فيك اخي شكراا لجهودك