Crearea unui contor cgi în Delphi 5, delphisite

procedura GetPaths # 40; Cerere: TWebRequest; var ScriptPath, LocalPath. șir # 41; ;

ScriptPath: = Cerere. SCRIPTNAME;

ScriptFileName: = ExtractFileName # 40; ParamStr # 40; 0 # 41; # 41; ;







// Eliminați numele EXE / DLL pentru a obține calea

șterge # 40; ScriptPath, Poz # 40; ScriptFileName, ScriptPath # 41; -1. lungime # 40; ScriptFileName # 41; +1 # 41; ;

// Îndepărtează oblicul principal

șterge # 40; ScriptPath, 1. 1 # 41; ;

LocalPath: = ExtractFilePath # 40; ParamStr # 40; 0 # 41; # 41; ;

// Eliminarea ScriptPath ne oferă calea principală

șterge # 40; LocalPath, Poz # 40; ScriptPath, LocalPath # 41; -1. lungime # 40; ScriptPath # 41; +1 # 41; ;

Procedura SetVariable va fi utilizată pentru a inițializa variabilele de care avem nevoie.

procedura SetVariable # 40; var S. String; const Valoare, Implicit. șir # 41; ;
începe
S: = valoare;
dacă S = "atunci
S: = Implicit;
se încheie;

Întreaga esență a scenariului CGI se află în evenimentul OnAction. Să ne uităm în pași.
procedura TWebModule1.WebModule1WebActionItem1Action (Expeditor: TObject;
Cerere: TWebRequest; Răspuns: TWebResponse; var manipulat: boolean);
În primul rând, declarăm câteva variabile locale.

Acum apelați GetPaths pentru a afla calea către scenariu, precum și calea locală. În acest exemplu, vom plasa contoarele noastre în directorul "contoare". Calea fizică va arăta mai degrabă ca "C: \ InetPub \ counters".

GetPaths # 40; Cerere, ScriptPath, LocalPath # 41; ;

LocalPath: = LocalPath + 'Counters';

Apoi, primim toți parametrii parcurși împreună cu apelul scenariului. Parametrii vin la noi prin proprietatea Request.QueryFields. Rețineți că dacă un parametru nu a fost trecut, atunci SetVariable îl setează la valoarea implicită.

cu Cerere. QueryFields începe

Numele fișierului: = LocalPath + Values # 91; 'FileName' # 93; + '.txt';

setVariable # 40; Txt, valori # 91; 'Txt' # 93;. "Sunteți vizitator. astăzi și. vreodată ". # 41; ;

setVariable # 40; FontName, valori # 91; 'FontName' # 93;. 'Arial' # 41; ;

setVariable # 40; FontSize, Values # 91; 'FONTSIZE' # 93;. '10' # 41; ;

setVariable # 40; FontColor, valori # 91; 'FONTCOLOR' # 93;. 'ClWhite' # 41; ;

setVariable # 40; BackgroundColor, Values # 91; 'BackgroundColor' # 93;. 'ClBlack' # 41; ;







Acum trebuie să fim siguri că există un dosar pentru acest contor. Dacă nu este, atunci o creăm pur și simplu.

// Scrieți un nou număr de contor gol dacă nu există

dacă nu FileExists # 40; FileName # 41; apoi începe

AssignFile # 40; fp, FileName # 41; ;

rescrie # 40; fp # 41; ;

WriteLn # 40; fp, 0 # 41; ;

WriteLn # 40; fp, Data # 41; ;

WriteLn # 40; fp, 0 # 41; ;

CloseFile # 40; fp # 41; ;

Deci, dosarul există. Estevstvenno dacă l-am creat, că contorul este egal cu 0, altfel vom citi valorile vechi și le zmenyat, dacă este necesar. Fiți atenți. cu privire la modul în care urmărim numărul total de vizite și vizite pe zi.

// Citiți vechile valori ale contorului

AssignFile # 40; fp, FileName # 41; ;

readln # 40; fp, LastEver # 41; ;

Încă: = LastEver +1;

readln # 40; fp, LastDate # 41; ;

readln # 40; fp, LastToday # 41; ;

dacă Data = LastDate atunci

Astăzi: = LastToday +1

CloseFile # 40; fp # 41; ;

În cele din urmă, trebuie să scrieți noile valori într-un fișier care conține datele contorului.

// Scrieți noile valori ale contorului

AssignFile # 40; fp, FileName # 41; ;

rescrie # 40; fp # 41; ;

WriteLn # 40; fp, Ever # 41; ;

WriteLn # 40; fp, Data # 41; ;

WriteLn # 40; fp, Astăzi # 41; ;

CloseFile # 40; fp # 41; ;

Acum, începeți să creați ceea ce va fi denumit în cele din urmă JPEG. Mai întâi, faceți TForm invizibil care conține TPanel și TMemo. De asemenea, instalați FontName și FontSize.

Formă: = TForm. crea # 40; zero # 41; ;

cu Formă. Fontul începe

Dimensiune: = StrToInt # 40; FONTSIZE # 41; ;

Ne asigurăm că textul pe care am pus în controlul memo, conține o valoare de contor citește din fișierul.

Txt: = Formatare # 40; txt, # 91; Astăzi, vreodată # 93; # 41; ;

Apoi, vom crea un panou. Lățimea și înălțimea vor fi determinate de lățimea textului pe care îl punem. De asemenea, setați cosit pentru efect 3D.

Panou: = TPanel. crea # 40; zero # 41; ;

cu Panoul începe

Lățime: = Formă. Canvas. textwidth # 40; txt # 41; + 9;

Înălțime: = Formă. Canvas. TextHeight # 40; txt # 41; + 9;

Am pus o notă în panoul și setați lățimea și înălțimea sa, precum si culoarea care este specificată în BackgroundColor.

Memo: = TMemo. crea # 40; zero # 41; ;

cu Memo să înceapă

Lățime: = Panou. Lățimea -5;

Înălțime: = Panou. Înălțimea -5;

Culoare: = StringToColor # 40; BackgroundColor # 41; ;

Acum trebuie să facem o imagine a elementului de control pe care l-am creat. Pentru aceasta, creați TBitmap și vopsiți-l cu panoul. Pentru a desena textul pe bitmap.

Bitmap: = TBitmap. Creați;

cu Bitmap să înceapă

Lățime: = Panou. Lățimea -1;

Înălțime: = Panou. Inaltime -1;

Panou. PaintTo # 40; Canvas. Mâner. 0. 0 # 41; ;

Canvas. Perie. Stil: = bsClear;

cu Canvas. Fontul începe

Dimensiune: = StrToInt # 40; FONTSIZE # 41; ;

Culoare: = StringToColor # 40; fONTCOLOR # 41; ;

Canvas. TextOut # 40; 4. 3, Txt # 41; ;

Apoi convertiți bitmap-ul la JPEG. JPEG va fi înregistrat în fluxul de memorie. Acest flux va fi conectat la browser și trimis vizitatorului paginii sub forma unei imagini.

Răspunsul trebuie început

MS: = TMemoryStream. Creați;

cu TJPEGImage. Creează nu începe

atribui # 40; Bitmap # 41; ;

SaveToStream # 40; MS # 41; ;







Articole similare

Trimiteți-le prietenilor: