AutoIt3: Despre GUI-uri, cu calm (IV)


Încetul cu încetul acoperim control-urile din interfeţele grafice (GUI) realizabile cu AutoIt3. Acum m-am gândit să mă opresc la taburi… dar ce să afişez în taburi? Ce-ar fi să punem nişte hărţi Google! Dar cum punem hărţi de pe Google într-un program? În primul rând am folosit hărţile statice (nu necesită cheie şi rezultă imagini uşor de inserat într-un program; am optat pentru GIF-uri, dat fiind că – am spus deja – PNG-urile dau unele bătăi de cap). Cum hărţile nu se schimbă des am făcut un artificiu: ele sunt cerute de la Google doar dacă nu există deja local. Cu alte cuvinte la prima lansare ele sunt "extrase" şi salvate; la a doua lansare doar afişate.

imagine

Dacă credeţi că o hartă s-a schimbat, trebuie doar ştearsă şi va fi regenerată. Un program mai dichisit i-ar da utilizatorului posibilitatea din program să şteargă. Se poate, se poate fără probleme. Dar ar complica ceea ce acum e un cod simplu de înţeles. Şi ca să mai adaug ceva am ales să fie un program cu splash screen, adică acea imagine ce apare câteva secunde când lansaţi de exemplu MS Word sau Photoshop. Vedeţi mai jos ce imagine am conceput pentru splash. AutoIt3 pune la dispoziţie funcţiile SplashImageOn şi SplashOff pentru aceste imagini.

imagine

Să vedem codul. Afişez splash-ul chiar la început, ca să se vadă până când – dacă e cazul – se iau hărţile de pe Google. Am folosit InetGet care foarte simplu ia ce îi dau şi pune unde îi spun. Dacă cumva nu trebuie generate imaginile, pentru că există, am pus o „staţionare” de 1 secundă, altfel nu se vede splash-ul, pe care apoi îl sistez. Urmează crearea GUI-ului. Am pus butonul de ieşire apoi tabul: de la cadru până la filele respective, fiecare cu titlu şi având ca şi conţinut o imagine. Apoi bucla infinită, deja clasică, şi terminarea. Dacă aţi urmărit „lecţiile” anterioare, (şi) aceasta vi se va părea banală.

[PHP]#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
SplashImageOn("Splash Screen", "splash.jpg",200,90,-1,-1,1)
If Not FileExists("hartasibiu.gif") Then
InetGet("http://maps.google.com/maps/api/staticmap?center=Sibiu&zoom=10&size=592×445&format=gif&sensor=false", "hartasibiu.gif")
EndIf
If Not FileExists("hartacluj.gif") Then
InetGet("http://maps.google.com/maps/api/staticmap?center=Cluj+Napoca&zoom=10&size=592×445&format=gif&sensor=false", "hartacluj.gif")
EndIf
If Not FileExists("hartabucuresti.gif") Then
InetGet("http://maps.google.com/maps/api/staticmap?center=Bucuresti&zoom=10&size=592×445&format=gif&sensor=false", "hartabucuresti.gif")
EndIf
Sleep(1000)
SplashOff()
$hGUI=GUICreate("CNet.ro – Harta pe taburi",600,530,-1,-1,$WS_BORDER)
$iesire = GUICtrlCreateButton("iesire", 480, 475, 100, 22)
GUICtrlCreateTab(0, 0, 600, 470)
GUICtrlCreateTabItem("Cluj")
GuiCtrlCreatePic("hartacluj.gif",3,22,592,445)
GUICtrlCreateTabItem("Sibiu")
GuiCtrlCreatePic("hartasibiu.gif",3,22,592,445)
GUICtrlCreateTabItem("Bucureşti")
GuiCtrlCreatePic("hartabucuresti.gif",3,22,592,445)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $iesire
ExitLoop
EndSwitch
WEnd
GUIDelete()[/PHP]

PS: Toate fişierele acestei serii de tutoriale sunt publice şi descărcabile de aici. Exemplul de aici este fereastra08.au3 (cu imaginile aferente).


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (2 evaluări, media: 5,00 din 5)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *