Pewnie kazdy kto uzywal komponent GGlite zauwazyl ze w momencie wprowadzenia nowych tokenow (kolorowych), funkcja pobierania tychże tokenow przestala funkcjonować. A zatem mala poprawka ktora nalezy wprowadzic aby wsyzstko juz dzialalo poprawnie.
Edytujemy plik : gglite.pas z katalogu /lib
Szukamy funkcji :
Zmieniamy cala funkcje badz odpowiedni wiersze na ten wzor :
1. metoda :
2. metoda :
zamiast :
Nalezy wstawic :
Obie metody roznia sie pomiedzy soba jedynie tym iz w pierwszej jest adres wstawiony na "sztywno" jak to mialo miejsce w poprzednich wersjach GGlite, zas w 2 metodzie adres jest pobierany ze strony rejestracyjnej gadu, co uchroni w przyszlosci autorow programow korzsytajac z gglite, w momencie gdyby ponownie zmienil sie adres z ktorego pobierane sa tokeny. Niech kazdy wstawi odpowiednia funkcje wedle uznania.
Oki teraz przyklad programu pobierajacego nowy token :
Nalezy pamietac ze stream (obrazek, token) nie jest juz jpegiem a gifem, i w przypadku delphi nalezy dodac do uses GIFImage. Ponadto rozmiar sie zmienił , dawniej 60x24, teraz 115x30.
komponent GifImage mozna pobrac stad : http://finn.mobilixnet.dk/delphi/gifimaged7c.zip
Przykladowe zaladowanie tokena do Timage (ze stream'a) :
W ten sposob mozna pobrac token,nie bede sie jednak rozwodzic nad kazda linia, bo jesli ktos korzystal kiedykolwiek z funkcji pobierania tokena wie co i jak, tymbardziej ze zmienilo sie tylko pobranie gifa zamiast jpeg'a .
Proces rejestracji rowniez sie nie zmienil , wiec nie bede go opisywac :-]
Oczywiscie samo pobranie tokena mozna przeprowadzic bez uzycia komponentu gglite, uzywajac TIdHTTP, nom ale i tak z reguly na pobraniu tokenow korzystanie z ggilte sie nie konczy ;-)
The End
Edytujemy plik : gglite.pas z katalogu /lib
Szukamy funkcji :
Kod:
function TGGLite.GGGenerateToken(var TokenId: string; var TokenVal: TStream):integer;
1. metoda :
Kod:
function TGGLite.GGGenerateToken(var TokenId: string; var TokenVal: TStream):integer;
var
PostFields:TStrings;
ResponseMsg:string;
begin
result:=-1;
try
IdHTTP1.ProtocolVersion:=pv1_0;
IdHTTP1.Host:= 'register.gadu-gadu.pl';
IdHTTP1.Request.ContentType:='application/x-www-form-urlencoded';
IdHTTP1.Request.UserAgent:= HTTP_USER_AGENT;
IdHTTP1.Request.Pragma := 'no-cache';
PostFields:=TStringList.Create;
ResponseMsg:=IdHTTP1.Post('/appsvc/regtoken.asp',PostFields);
PostFields.Text:=ResponseMsg;
TokenId:=PostFields.Strings[1];
IdHTTP1.ProtocolVersion:=pv1_1;
IdHTTP1.Get('http://www.gadu-gadu.pl/register/regRndPict.php?tokenid='+TokenId,TokenVal);
result:=0;
except
end;
end;
zamiast :
Kod:
IdHTTP1.Get('http://www.gadu-gadu.pl/register/regRndPict.php?tokenid='+TokenId,TokenVal);
Kod:
IdHTTP1.Get(PostFields.Strings[2]+'?tokenid='+TokenId,TokenVal);
Obie metody roznia sie pomiedzy soba jedynie tym iz w pierwszej jest adres wstawiony na "sztywno" jak to mialo miejsce w poprzednich wersjach GGlite, zas w 2 metodzie adres jest pobierany ze strony rejestracyjnej gadu, co uchroni w przyszlosci autorow programow korzsytajac z gglite, w momencie gdyby ponownie zmienil sie adres z ktorego pobierane sa tokeny. Niech kazdy wstawi odpowiednia funkcje wedle uznania.
Oki teraz przyklad programu pobierajacego nowy token :
Nalezy pamietac ze stream (obrazek, token) nie jest juz jpegiem a gifem, i w przypadku delphi nalezy dodac do uses GIFImage. Ponadto rozmiar sie zmienił , dawniej 60x24, teraz 115x30.
komponent GifImage mozna pobrac stad : http://finn.mobilixnet.dk/delphi/gifimaged7c.zip
Przykladowe zaladowanie tokena do Timage (ze stream'a) :
Kod:
uses gifimage, jpeg, gglite i reszta;
var
tokenid : string;
procedure Tform1.button1click....;
var
stream : tstream;
gif : tgifimage;
begin
image1.picture:=nil;
tokenid:='';
stream := tmemorystream.create;
gg.gggeneratetoken(tokenid, stream);
application.processmessages;
sleep(100);
if stream.size <> 0 then
begin
stream.seek (0, 0);
gif := tgifimage.create;
gif.loadfromstream(stream);
image1.picture.bitmap.assign(gif);
application.processmessages;
gif.free;
stream.free;
end;
end;
Proces rejestracji rowniez sie nie zmienil , wiec nie bede go opisywac :-]
Oczywiscie samo pobranie tokena mozna przeprowadzic bez uzycia komponentu gglite, uzywajac TIdHTTP, nom ale i tak z reguly na pobraniu tokenow korzystanie z ggilte sie nie konczy ;-)
The End