Problem z SELF

0

W forum znalazlem ponizsza funkcje do sprawdzania zewnetrznego IP :

function GetIP: String;
var
WebAddress, SearchString: string;
TempInt: Integer;
NMHTTP1 : TNMHTTP;
txt : String;
begin
WebAddress := 'http://www.whatismyip.com/';
SearchString := 'Your ip is ';
NMHTTP1 := TNMHTTP.Create(self);
try
NMHTTP1.Get(WebAddress);
except
on E: Exception do
begin
// reakcja na blad, np jak nie moze polaczyc sie z internetem, lub cos takiego.
end;
end;
txt := NMHTTP1.Body;
TempInt:=Pos(SearchString,txt);
txt := Copy(txt,TempInt+Length(SearchString),15);
TempInt:=Pos(' ',txt);
txt:=Copy(txt,1,TempInt);
Result := txt;
end;

Niestety DELPHI pluje sie w lini:

NMHTTP1 := TNMHTTP.Create(self);

Czy molby ktos mi pomóc i powiedziec o co chodzi ?

0

Może zapodaj numer i opis błędu, który wyświetla, powinno pomóc innym w pomaganiu tobie :)
[dopisane]
Ale gdyby nie miał, to przy deklaracji by się burzył. Sam też o tym pomyślałem :)

0

a czy masz komponent TNMHTTP? Niektóre Delphi nie mają...

0

Błąd:
[Error]Unit1.pas(64): Undeclared identifier: 'self'

A komponent mom

0

Jeśli się nie mylę, to większości języków self to, to co w C++ this :)
Wiec spróbuj zastąpić linijkę:

NMHTTP1 := TNMHTTP.Create(self);

np. taką (Form1 to nazwa twojej Formy z której jest to wywoływane)

NMHTTP1 := TNMHTTP.Create(Form1);

Może podziała.

0

NMHTTP1: TNMHTTP;
Txt: string;
begin
NMHTTP1 := TNMHTTP.Create(self);
try
...

Niestety DELPHI pluje sie w lini: NMHTTP1 := TNMHTTP.Create(self); Czy molby ktos mi pomóc i powiedziec o co chodzi ?

Jeśli masz komponent to nie twórz go dynamicznie, tylko umieść na formie, albo w miejsce Create(Self) wpisz nazwę formy (Create(Form1)). Powinno pomóc.

[dopisane]
Krecik nie ma to jak napisać dwa razy to samo :P

0

W ogóle ten kod jest niezbyt dobry. Po pierwsze możesz użyć IdHTTP - jest ogólnodostepne, nowoczesne i równe dobrze działa. Po drugie sa lepsze sposoby na sprawdzanie IP zewnetrznego - patrz FAQ.

0

Wielkie dzieki to dziala :-)

0

A zeby wsadzic to do wtyczki dll co trzeba zmienic w miejsce tego "self"

1 użytkowników online, w tym zalogowanych: 0, gości: 1