PDA

Visualizza la versione completa : [AUTOIT] Calcolo consumo in applicazione


ubi1
17-03-2011, 08:55
Ciao sto cercando di sviluppare una applicazione portatile che mi calcoli il consumo
ma non riesco a capire come mai non funzioni.....


#include <GUIConstants.au3>
#include <StaticConstants.au3>
#include <guiedit.au3>
#include <WindowsConstants.au3>

Global $ptlcd, $ptled, $dif, $risp, $an


$calcolatrice = GUICreate("Calcolo consumo", 351, 400,-1,-1)
$valore1 = GUICtrlCreateInput("", 50, 20, 100, 21)
$valore2 = GUICtrlCreateInput("", 50, 60, 100, 21)
$valore3 = GUICtrlCreateInput("", 50, 100, 100, 21)
$valore4 = GUICtrlCreateInput("", 50, 140, 100, 21)
$valore5 = GUICtrlCreateInput("", 50, 180, 100, 21)
$somma = GUICtrlCreateButton("Calcola", 264, 240, 65, 25, $WS_GROUP)
$formato = GUICtrlCreateCombo("Estensione", 256, 208, 73, 25)
$formatov = GUICtrlSetData(-1, "26|32|42")

GUISetState(@SW_SHOW)


While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

case $somma
_Somma ($valore1,$valore2,$valore3,$valore4,$valore5,$for matov)
$ptlcd = GUICtrlCreateLabel($ptlcd, 0, 300, 350, 17, $SS_CENTER)
$ptled = GUICtrlCreateLabel($ptled, 0, 400, 350, 17, $SS_CENTER)
$dif = GUICtrlCreateLabel($dif, 0, 500, 350, 17, $SS_CENTER)
$risp = GUICtrlCreateLabel($risp, 0, 600, 350, 17, $SS_CENTER)
$an = GUICtrlCreateLabel($an, 0, 700, 350, 17, $SS_CENTER)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
EndSwitch
WEnd

Func _Somma ($var1,$var2,$var3,$var4,$var5,$formatov)

$vr1 = GUICtrlRead ($var1)
$vr2 = GUICtrlRead ($var2)
$vr3 = GUICtrlRead ($var3)
$vr4 = GUICtrlRead ($var4)
$formatov = GUICtrlRead ($formatov)
$vr5 = GUICtrlRead ($var5)
$ptlcd=(($formatov*$vr4*330)/1000)
$ptled=((($formatov-(($formatov/100)*40))*$vr4*330)/1000)
$dif=$ptlcd-$ptled
$risp=$dif*$vr5
$an=round(($ptlcd-$ptled-$vr3)/$risp)

EndFunc


Grazie

php_4ever
17-03-2011, 18:06
Il consumo di cosa? Cosa ha che non funziona?

ubi1
18-03-2011, 19:58
ciao php_4ever non funziona il fatto che se metto dei valori nei campi non mi calcoa nulla e se premo calcola anche a campi 0 lui mi genera dei valori sono alle prime armi con autoit e non capisco perchè non vada ti ringrazio per la pazienza

php_4ever
18-03-2011, 23:13
Probabilmente è perché tramite la funzione _Somma calcoli i valori ma poi non li ritorni in alcun modo... Aspetta che lo testo.

Trovato: prima di tutto ogni tanto sovrascrivi qualche variabile, ad esempio usi lo stesso identificatore per l'handle del controllo e per il valore del controllo.
Poi non leggi nel modo corretto dal Combo... Il problema è che lo leggi come viene detto nella documentazione in cui evidentemente c'è un errore.

Certo maggiori informazioni e poi ti dico.

ubi1
19-03-2011, 08:33
risolto non mettevo "GUICtrlRead" prima del ($valore2) da calcorare ....
php_4ever non riesco a capire come utilizzare ilGUICtrlCreateCombo
o meglio se io volessi che quando clicco mi esca il menu a tendina con dei numeri 10 / 20 / 30 ma a que numeri poi corrispondesse un'altro valore come posso fare?

se seleziono 10 il valore da calcorare e 1000

grazie ancora :dottò:

php_4ever
19-03-2011, 08:35
If $valore_del_combo = 10 Then
$valore_del_combo = 1000
EndIf

ubi1
19-03-2011, 23:03
$potenza=GUICtrlCreateCombo("", 10, 10, 200, 20)
GUICtrlSetData($potenza, "10|20")
GUISetState()
If GUICtrlRead($potenza) = 10 Then
$potenza =1000
EndIf

If GUICtrlRead($potenza) = 20 Then
$potenza = 2000
EndIf

non riesco :dhò: :confused: :cry:

php_4ever
19-03-2011, 23:08
Se tu sovrascrivi la variabile $potenza, quano poi la leggi nel secondo If non contiene più l'handle di un controllo.
Se io metto un pomodoro in una scatola, e poi lo tiro fuori e ci metto una carota, quando riapro la scatola avrò una carota e il pomodoro sarà perso.
Usa due scatole diverse!
Non esiste solo la variabile $potenza :|

ubi1
20-03-2011, 21:50
scusa ma non ti seguo non ho capito

php_4ever
21-03-2011, 15:05
$s = "Ciao"
$s = "Mucca"

MsgBox(0, "", $s & " " & $s)

Però io voglio che stampa "Ciao Mucca". Allora lo faccio così:


$s = "Ciao"
$t = "Mucca"

MsgBox(0, "", $s & " " & $t)

No? Se sovrascrivi la variabile del controllo con quella del valore del controllo non hai più l'handle del controllo e non ottieni nessun dato!

Loading