Ecco la nuova versione del mio precedente programma, un lettore che legge un formato ebook creato da me. (la prima versione
<2> Aggiunta la possibilitą di ingrandire a tutto schermo il programma.
CODICE
#NoTrayIcon
#include <GUIConstants.au3>
Global $npagine, $pagtemp, $pag, $szinfos, $i, $nSize, $nuovapagina
Global $nCmdEnabled = False, $msgbox
Global $white = 0xFFFFFF
Local $o_speech = ObjCreate("SAPI.SpVoice")
If Not IsDeclared('WS_CLIPSIBLINGS') Then Global $WS_CLIPSIBLINGS = 0x04000000
$gui = GUICreate("I.Ren New Ebook format reader v0.3", 493, 574, 193, 115,$WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 489, 513, BitOR($ES_WANTRETURN, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY))
If FileExists('opzioni.ini') Then
If IniRead('opzioni.ini','zoom','zoom','') = '50%' Then GUICtrlSetFont(-1,9.5,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '60%' Then GUICtrlSetFont(-1,10,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '70%' Then GUICtrlSetFont(-1,11,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '80%' Then GUICtrlSetFont(-1,12,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '90%' Then GUICtrlSetFont(-1,13,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '100%' Then GUICtrlSetFont(-1,14,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '110%' Then GUICtrlSetFont(-1,15,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '120%' Then GUICtrlSetFont(-1,16,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '130%' Then GUICtrlSetFont(-1,17,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '140%' Then GUICtrlSetFont(-1,18,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '150%' Then GUICtrlSetFont(-1,19,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '160%' Then GUICtrlSetFont(-1,20,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '170%' Then GUICtrlSetFont(-1,21,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '180%' Then GUICtrlSetFont(-1,22,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '190%' Then GUICtrlSetFont(-1,23,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '200%' Then GUICtrlSetFont(-1,24,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '210%' Then GUICtrlSetFont(-1,25,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '220%' Then GUICtrlSetFont(-1,26,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '230%' Then GUICtrlSetFont(-1,27,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '240%' Then GUICtrlSetFont(-1,28,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '250%' Then GUICtrlSetFont(-1,29,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '260%' Then GUICtrlSetFont(-1,30,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '270%' Then GUICtrlSetFont(-1,31,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '280%' Then GUICtrlSetFont(-1,32,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '290%' Then GUICtrlSetFont(-1,33,Default,1,'arial')
If IniRead('opzioni.ini','zoom','zoom','') = '300%' Then GUICtrlSetFont(-1,34,Default,1,'arial')
Else
GUICtrlSetFont(-1,9.5,Default,1,'arial')
EndIf
GUICtrlSetBkColor($Edit1, $white)
$hMenu = GUICtrlCreateMenu("New Ebook format")
$hMenu2 = GUICtrlCreateMenu(" Other")
$hMenu3 = GUICtrlCreateMenu(" Nbf file editor and creator")
$hApriEditor = GUICtrlCreateMenuItem("Open nbf file editor and creator",$hMenu3)
$hleggi = GUICtrlCreateMenuItem("Speak text",$hMenu2)
$hOpzioni = GUICtrlCreateMenuItem("Setting",$hMenu2)
GUICtrlCreateMenuItem('',$hMenu2)
$hAbout = GUICtrlCreateMenuItem("About",$hMenu2)
$hapri = GUICtrlCreateMenuItem("Open New EBook format", $hMenu)
GUICtrlCreateMenuItem('',$hMenu)
$hinfo = GUICtrlCreateMenuItem("Pages Info", $hMenu)
GUICtrlCreateMenuItem('',$hMenu)
$hExit = GUICtrlCreateMenuItem("Exit", $hMenu)
$hPrev = GUICtrlCreateButton("Previous Page", 89, 528, 77, 17, 0)
$succ = GUICtrlCreateButton("Next Page", 344, 528, 73, 17, 0)
$Input1 = GUICtrlCreateInput("", 216, 528, 49, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState(@SW_SHOW)
If $cmdline[0] Then
$pag = carica($cmdline[1], "{nuovapagina}")
$nuovapagina = StringReplace($pag[1], "[para]", @CRLF ' ')
GUICtrlSetData($Edit1, $nuovapagina)
$npagine = 1
GUICtrlSetData($Input1, $npagine & "\" & $pag[0])
EndIf
While 1
Switch GUIGetMsg()
Case $hOpzioni
Call('Opzioni')
Case $hApriEditor
Call('Editor')
Case $habout
MsgBox(0x40,'About','Program created whit autoit v.3., by I.Ren'&@cr&'This program read EBooks (*.nbf). For create *.nbf file use the editor, in this program')
Case $GUI_EVENT_CLOSE
Exit
Case $hleggi
_Talk($o_speech, GUICtrlRead($edit1))
Case $hapri
_carica()
Case $hPrev
If IsArray($pag) Then
If $npagine = 1 Then
MsgBox(0x10, "Error", "Reached the first page. Cannot go back")
Else
$nuovapagina = StringReplace($pag[$npagine - 1], "[para]", @CRLF & ' ')
GUICtrlSetData($Edit1, $nuovapagina)
$npagine = $npagine - 1
GUICtrlSetData($Input1, $npagine & "\" & $pag[0])
EndIf
Else
MsgBox(0x10, "Error", "Any EBook loaded!")
EndIf
Case $succ
If IsArray($pag) Then
If $npagine < $pag[0] Then
$nuovapagina = StringReplace($pag[$npagine + 1], "[para]", @CRLF & ' ')
GUICtrlSetData($Edit1, $nuovapagina)
$npagine = $npagine + 1
GUICtrlSetData($Input1, $npagine & "\" & $pag[0])
Else
MsgBox(0x40, "End of Book", "You have reached the end of your New EBook format")
EndIf
Else
MsgBox(0x10, "Error", "Any EBook loaded!")
EndIf
Case $hexit
Exit
Case $hinfo
If IsArray($pag) Then
For $i = 1 To $pag[0]
$nSize += StringLen($pag[$i])
Next
MsgBox(0x40, "Book Info", "# Of Pages:" & $pag[0] & @CRLF & "# of letters:" & $nSize)
Else
MsgBox(0x10, "Error", "No New EBook format is loaded. No informaton to give")
EndIf
Case Else
Sleep(20)
EndSwitch
WEnd
Func carica($sPath, $snuovpaginaDilemeter)
Local $fData, $split
If Not FileExists($sPath) Then
Return -1
EndIf
$fData = FileRead($sPath)
$split = StringSplit($fData,$snuovpaginaDilemeter, 1)
If Not IsArray($split) Then
Return -1
EndIf
Return $split
EndFunc ;==>carica
Func _carica()
$pagtemp = GUICtrlRead($Edit1)
$fapri = FileOpenDialog("Open New EBook format", @DesktopDir, "New EBook format (*.nbf)")
If @error Then
MsgBox(0x10, "Error", "Error opening file")
GUICtrlSetData($Edit1, $pagtemp)
EndIf
$pag = carica($fapri, "{nuovapagina}")
$nuovapagina = StringReplace($pag[1], "[para]", @CRLF & ' ')
GUICtrlSetData($Edit1, $nuovapagina)
$npagine = 1
GUICtrlSetData($Input1, $npagine & "\" & $pag[0])
EndFunc
Func _Talk(ByRef $o_speech, $s_text, $s_voice = 3)
Local Const $SVSFlagsAsync = 1
Select
Case $s_voice == 1
$o_speech.Voice = $o_speech.GetVoices ("Name=Microsoft Mary", "Language=409").Item (0)
Case $s_voice == 2
$o_speech.Voice = $o_speech.GetVoices ("Name=Microsoft Mike", "Language=409").Item (0)
Case $s_voice == 3
$o_speech.Voice = $o_speech.GetVoices ("Name=Microsoft Sam", "Language=409").Item (0)
EndSelect
$o_speech.Speak ($s_text, $SVSFlagsAsync)
EndFunc ;==>_Talk
Func editor()
$gui2 = GUICreate('Nbf file creator and editor',300,500)
$hMenu4 = GUICtrlCreateMenu("Nbf file")
$hSalva = GUICtrlCreateMenuItem("Salva",$hMenu4)
$hApri2 = GUICtrlCreateMenuItem("Open",$hMenu4)
$hElimina = GUICtrlCreateMenuItem("Delete NBF file",$hMenu4)
$hMenu5 = GUICtrlCreateMenu("How to")
$HcmCreare=GUICtrlCreateMenuItem(".. create NBF file",$hMenu5)
GUICtrlCreateMenuItem('',$hMenu4)
$hCiao = GUICtrlCreateMenuItem("Exit",$hMenu4)
$AggPara = GUICtrlCreateButton('Add paragraph',2,2,80,20)
$AggPag = GUICtrlCreateButton('Add page',90,2,80,20)
$Edit2 = GUICtrlCreateEdit('',0,30,300,400,BitOR($ES_WANTRETURN, $WS_VSCROLL, $ES_AUTOVSCROLL))
GUICtrlSetFont(-1,9.5,Default,1,'arial')
GUISetState( )
While 1
Switch GUIGetMsg()
Case $hCmCreare
MsgBox(0,'How to..',' - Sorry this minguide is write in italian... wait the next version for the english version..'&@CR& 'Scrivete il vostro testo normalmente in questo editor, e se volete mettere dei paragrafi, scrivete [para] oppure premete il comodo pulsante xD' &@CR& 'Se volete aggiungere una pagina al vostro EBook, scrivete {nuovapagina} oppure premete anche qui il pulsante')
Case $hElimina
$daEliminare = FileOpenDialog('Select NBF file to Delete',@desktopdir,'New EBook format (*.nbf)')
If @error Then
;;;
Else
FileDelete($daEliminare)
EndIf
Case $hSalva
$dove = FileSaveDialog('Save your NBF file',@desktopdir,'New EBook format (*.nbf)')
If @error Then
MsgBox(0x10,'Error!','Any file created!')
Else
FileWrite($dove & '.nbf',GUICtrlRead($edit2))
EndIf
Case $hApri2
If GUICtrlRead($edit2) <> '' Then
$file = FileOpenDialog('Open nfb file',@desktopdir,'New EBook format (*.nbf)')
If @error Then
;;;
Else
GUICtrlSetData($Edit2,'')
GUICtrlSetData($Edit2,FileRead($file))
EndIf
Else
$a = MsgBox(36,'Are you sure?','Are your sure to load file?')
If $a = 6 Then
$file = FileOpenDialog('Open nfb file',@desktopdir,'New EBook format (*.nbf)')
If @error Then
;;;
Else
GUICtrlSetData($Edit2,'')
GUICtrlSetData($Edit2,FileRead($file))
EndIf
EndIf
If $a = 7 Then
;;;
EndIf
EndIf
Case $AggPag
GUICtrlSetData($Edit2,GUICtrlRead($edit2) & "{nuovapagina}")
Case $AggPara
GUICtrlSetData($Edit2,GUICtrlRead($edit2) & "[Para]")
Case $hCiao
GUIDelete($gui2)
ExitLoop
Case $GUI_EVENT_CLOSE
GUIDelete($gui2)
ExitLoop
EndSwitch
WEnd
EndFunc
Func opzioni()
$gui3 = GUICreate('Options',250,60)
GUICtrlCreateLabel('Zoom:',2,5)
GUICtrlSetFont(-1,8,5000,1,'arial')
If FileExists('opzioni.ini') Then
$zoom = GUICtrlCreateCombo(IniRead(@ScriptDir&'\opzioni.ini','zoom','zoom',''),40,2,200,20)
GUICtrlSetData(-1,'60%|70%|80%|90%|100%|110%|120%|130%|140%|140%|150%|160%|170%|180%|190%|200%|210%|220%|230%|240%|250%|260%|270%|280%|290%|230%')
Else
$zoom = GUICtrlCreateCombo('50%',40,2,200,20)
GUICtrlSetData(-1,'60%|70%|80%|90%|100%|110%|120%|130%|140%|140%|150%|160%|170%|180%|190%|200%|210%|220%|230%|240%|250%|260%|270%|280%|290%|230%')
EndIf
$applica = GUICtrlCreateButton('Apply and exit',2,30,240,20)
GUISetState( )
While 1
Switch GUIGetMsg()
Case $applica
IniWrite('opzioni.ini','zoom','zoom',guictrlread($zoom))
Exit
Case $GUI_EVENT_CLOSE
GUIDelete($gui3)
ExitLoop
EndSwitch
WEnd
EndFunc
L'exe qui sotto, ditemi che ne pensate.