Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: Lux - 25 Novembre 2008, 00:26:17

Titolo: Timer
Inserito da: Lux - 25 Novembre 2008, 00:26:17
Ciao, ho questo problemino, ho un picturebox ed un timer, ora vorrei far si che il picturebox si aggiorni ogni 2 secondi ma non ho ben capito come collegare i due oggetti.
PS:Ma esiste un manuale di gambas 2? Conosco solo quello per la prima versione ed è anche un pdf che, almeno sul mio pc non si stampa!!!
Titolo: Re: Timer
Inserito da: md9327 - 25 Novembre 2008, 10:49:55
L'uso di Timer è piuttosto semplice. L'unica attenzione è sull'uso massivo, perchè può saturare le risorse di sistema e in casi eccessivi rendere impossibile l'uso dell'applicazione.

Ad ogni modo, l'oggetto è presente nella toolbox dell'ide di gambas; basta trascinarla sulla form e impostare il periodo di attivazione (in millisecondi, 1 secondo=1000).
In alternativa, è possibile usarlo all'interno di una classe non grafica (es. un processo sequenziale...). In questo caso basta creare una proprietà di di classe di tipo Timer, e il resto funziona allo stesso modo delle form.

L'oggetto ha una proprietà, come detto, per impostare l'intervallo di tempo tra un tick e il successivo, ovvero, il timer scatena un evento ogni qualvolta scade il tempo prefissato.
Creare un evento Timer in una form è molto semplice: una volta inserito l'oggetto Timer nella form, basta farci un doppio click sopra, e verrà creato automaticamente un metodo _Timer(); altrimenti è possibile crearlo manualmente con le stesse impostazioni:

Codice: [Seleziona]

PUBLIC SUB Timer1_Timer()
END


All'interno del motodo è possibile inserire tutto il codice necessario per utilizzare il timer all'interno della classe (o Form).
E' da tener ben presente che se le funzioni all'interno dell'evento, superano l'intervallo impostato, l'evento viene chiamato ulteriormente; la cosa può creare grossi problemi, in quanto gli eventi si accavallano, e possono incasinare il lavoro fatto nell'evento precedente.
In questi casi è utile avere la possibilità di disabilitare momentaneamente il timer (c'è un metodo apposito nella stessa classe Timer), che varrà riattivato al termine della procedura.

Il timer è possibile utilizzarlo anche come one-shot (un solo evento), in questo caso è sufficiente disabilitarlo in modo definitivo una volta entrati nel metodo Timer.
Un'altro suggerimento: alla chiusura (destroy) della classe contenente il Timer, è sempre meglio disattivarlo in ogni caso (Enable=FALSE), onde evitare che rimanga appeso e attivo all'interno dell'applicazione, causando guai. In una Form è sufficiente inserirlo nell'evento Close, negli oggetti in genere basta inserirlo nel metodo speciale _free() (come ho spiegato anche nel Wiki).

Spero che la mia descrizione sia stata esauriente.

Ciao
Titolo: Re: Timer
Inserito da: Lux - 25 Novembre 2008, 18:48:59
Quindi nel mio caso mi basterebbe scrivere : Picturebox.picture = Timer() ecco è questa parte che non ho capito...cosi eseguirei l'aggiornamento ogni secondo(senza quindi toccare nulla nelle prorpietà del timer).....
Titolo: Re: Timer
Inserito da: leo72 - 25 Novembre 2008, 21:04:10
No, sarebbe:
Codice: [Seleziona]

PUBLIC SUB Timer1_Timer()
  ...fai qualcosa sulla PictureBox...
  ...ad esempio...
  PictureBox1.Refresh
ENDRefresh
Titolo: Re: Timer
Inserito da: md9327 - 26 Novembre 2008, 12:11:37
Esatto!
Infatti, avevo accennato ad un esempo di evento legato al timer, che giustamente leo ho approfondito meglio.

Noticina: non si può associare un oggetto di un tipo ad un'altro di tipologia completamente diversa: Picture non c'entra nulla con Timer.
Titolo: Re: Timer
Inserito da: Lux - 26 Novembre 2008, 16:19:31
Grazie mille ragazzi!!
Purtroppo, riesco a dedicare poco tempo a gambas. quindi il vostro aiuto è fondamentale per me! :-D
Titolo: Re: Timer
Inserito da: md9327 - 27 Novembre 2008, 15:34:03
AH!!! E quindi vuoi far perdere tempo a noi?

SCHERZOOOOO!!!!


:-)
Titolo: Re: Timer
Inserito da: Ceskho - 28 Novembre 2008, 15:34:26
Non si potrebbe copiare la spiegazione (ottimo lavoro!!!) di md9327 nel wiki per la voce timer?
Titolo: Re: Timer
Inserito da: leo72 - 29 Novembre 2008, 16:26:22
Il wiki è libero. Sia md9327 che tu potete accedervi e creare la pagina interessata ;-)
Titolo: Re: Timer
Inserito da: Lux - 30 Novembre 2008, 16:49:45
Ok, grazie mille ragazzi, solo una cosa, il wiki mi chiede sempre una password ed un nome utente per eccederci....
Titolo: Re: Timer
Inserito da: Ceskho - 30 Novembre 2008, 19:23:28
Devi prima registrarti, dopodichè potrai accedere e modificare le pagine con il nome utente e la password da te scelti....
Titolo: Re: Timer
Inserito da: Lux - 02 Dicembre 2008, 10:47:36
Ok, continuo quì per non intasare il forum.
Chiedo lumi sull'utilizzo del componente timer. Ho questo problema: lo sto utilizzando per creare un lettore audio, lo uso per muovere la posizione della sbarretta dello slider. l'ho settato ogni 1000 ms (quindi deve muovere lo slider ogni secondo come fanno tutti i lettori musicali) il punto è che questa opzione mi occupa tanta di quella memoria da farmi ascoltare il brano audio a scatti (anche lo slider si muove a scatti) e spesso blocca tutta l'applicazione dandomi un errore tipo signa 11 o 8.
Ora ho visto che negli esempi vi è proprio quello che sto facendo io. Ma non capisco come l'autore di quel programma (si chiama MusicPlayer e si trova nella sezione audio degli esempi di gambas) abbia risolto il problema.
Non credo che dipenda dall' hardware che ho dato che possideo un intel core 2 duo 2.4 ghz e 2gb di ram. come distro ho lenny.
Ciao a tutti.
Titolo: Re: Timer
Inserito da: fsurfing - 02 Dicembre 2008, 20:00:35
quello che scrivi è decisamente strano ... sicuramente c'è qualche errore nel codice che hai scritto perche se il delay è settato a 1000 per rallentare il pc ne devi fare di operazioni al secondo!
a me il tuo problema lo dava con un delay di 10 ms in cui dovevo fare un numero enorme di operazioni grafiche!!!!!

ricontrolla bene il tutto o posta il codice se vuoi un opinione in +

ciao ciao
Titolo: Re: Timer
Inserito da: Lux - 02 Dicembre 2008, 22:23:31
Allora ho appena controllato, il Delay del timer è settato a 1000, ed ecco il mio codice
Codice: [Seleziona]
PUBLIC SUB Timer2_Timer()   
'Aggiorna la posizione dello slider1
  Slider1.Value = Music.Pos END
e poi ho questo codice:
Codice: [Seleziona]
PUBLIC SUB Slider1_Change()   'Varia la posizione dello slider in base alla posizione della musica   Music.Pos = Slider1.Value END

In verità non ho capito dove sbaglio....
Ciao.
Titolo: Re: Timer
Inserito da: fsurfing - 02 Dicembre 2008, 22:30:33
a occhio e croce hai fatto un bel loop !!!!!!!!!!!!
Titolo: Re: Timer
Inserito da: fsurfing - 02 Dicembre 2008, 22:36:58
cancella tutto dalla funzione

PUBLIC SUB Slider1_Change()   'Varia la posizione dello slider in base alla posizione della musica   Music.Pos = Slider1.Value END

la funzione

Slider1.Value = Music.Pos

gia posiziona il cursore sullo slider

il problema è dare un valore a music.pos

ti consiglio di creare una funzione che in base alla durata della canzone calcola la percentuale di brano gia ascoltata , di conseguenza se lo slidera avra come val min e val max 0 e 100 music.pos sara uguale al valore persentuale

ciao ciao
Titolo: Re: Timer
Inserito da: Lux - 03 Dicembre 2008, 21:33:41
mmmm, saresti così gentile da spiegarmi come ho fatto il loop?
Comunque per ora ho risolto eliminando la riga:
Codice: [Seleziona]
PUBLIC SUB Slider1_Change()   'Varia la posizione dello slider in base alla posizione della musica   
'Music.Pos = Slider1.Value END

e cambiando invece:
Codice: [Seleziona]
PUBLIC SUB Timer2_Timer()   
'Aggiorna la posizione dello slider1  
Slider1.Value = Music.Pos    
Label6.Caption = Music.Pos * 60 END

Ovviamente ci sono degli errori, non far caso a quel *60 che non serve a nulla, provo semplicemente a far comparire il tempo trascorso in un label.
Ho anche un'altro problemino che però non c'entra nulla col timer, ma descrivo quì dato che il programma è sempre lo stesso, ovviamente se ritenete che debba creare un topic apposito, lo faccio.
Riguarda il pulsante di stop, vorrei che prima di fermare il brano musicale, mi vada a diminuire lentamente il volume e poi stoppare tutto. Sto facendo alcuni esperimenti:
Codice: [Seleziona]
PUBLIC SUB ToolButton7_Click()   
'Stoppa la musica  
 DIM a AS Integer  
 DIM b AS Float  
 DIM c AS Float  
 b = 0.1  
 FOR a = 0 TO 10      
 Music.Volume = c      
 c = 1.0 - b  
 b = b + b    
 WAIT 1.5  
 NEXT    
 Music.Stop  
 Timer2.Enabled = FALSE  
 Slider1.Value = 0
 END

Il codice in linea di massima funziona ma non so perchè quando premo il tasto stop la musica si stoppa per un attimo, poi riparte e abbassa il volume fino poi a stopparsi completamente.
Ciao e grazie mille a tutti!!!!!!!!!!
PS: Perchè non lo facciamo noi un bel manuale per gambas2?????  :-D
Titolo: Re: Timer
Inserito da: Lux - 03 Dicembre 2008, 21:37:13
Dimenticavo, lo stesso problema che mi faceva il timer per l'ascolto della musica lo fa anche quando tento di visualizzare un video preso da una webcam in un picturebox...
ecco il codice che ho inserito:
Codice: [Seleziona]
PUBLIC SUB Timer1_Timer()   
'Refresh dell'immagine nel PictureBox1  
TRY PictureBox1.Picture = webcam.Picture  
PictureBox1.Refresh
END
In pratica il programma mi si muove a scatti e il video lo vedo con delle fastidiose bande nere che compaiono e scompaiono.
il Dalay del timer è però settato a 40...per avere 25 fps.
Ciao.
Titolo: Re: Timer
Inserito da: fsurfing - 03 Dicembre 2008, 21:44:00
spiegarlo a a parole non è semplice comunque la funzione di

Slider1_Change()

creava un loop all' evento timer anche se in teori a non avredbbe dovuto


per il secondo problema mi pare che ci sia una funzione apposita
Titolo: Re: Timer
Inserito da: Lux - 03 Dicembre 2008, 22:13:11
ok, Grazie mille. Per lo stoppare una canzone diminuendo lentamente il volume ci sono riuscito, ma resta quello strano effetto, ovvero appena premo il tasto stop il suono si interrompe per poi riprendersi e andare in dissolvenza proprio come voglio.
Per il video invece sto ancora cercando!
Ciao. :-D
Titolo: Re: Timer
Inserito da: fsurfing - 03 Dicembre 2008, 22:35:09
prova cosi


Codice: [Seleziona]

PUBLIC SUB ToolButton7_Click()  
'Stoppa la musica  
 DIM a AS Integer  
 DIM b AS Float  
 DIM c AS Float  
 b = 0.1  
c=1
 FOR a = 0 TO 10      
 Music.Volume = c      
 c = 1.0 - b  
 b = b + b    
 WAIT 1.5  
 NEXT    
 Music.Stop  
 Timer2.Enabled = FALSE  
 Slider1.Value = 0
 END
Titolo: Re: Timer
Inserito da: fsurfing - 03 Dicembre 2008, 22:36:49
per il video forse è meglio se posti tutto il programma

quello stralcio di codice non aiuta


potresti provare ad eliminare picturbox.refresh mi sembra tdi troppo
del resto l'immagine è gia cambata con picturbox1.picture=...


:)
Titolo: Re: Timer
Inserito da: Lux - 04 Dicembre 2008, 18:11:00
Grazie mille!!!! Per il video ho eliminato il codice picture.box.refresh ed ho eliminato quelle fastidiose bande nere che si creavano. il problema era semplice ma non ci avevo pensato....il refresh del picturebox comportava un' aggiornamento del compinente in questione che ha un background nero...ecco le bande...risolto!
Ora però mi resta il problema che col video attivato mi rallenta l'applicazione...
Postare tutto il programma, si può? è grandicello.....lo posso allegare? o è disturbo?
Poi ho anche il problema del tasto stop per l'audio. Io seleziono un file audio e lo faccio partire, ma quando clicco sul tasto stop questo mi si ferma poi riparte e dissolve l'audio fino a fermarsi....
PUBLIC SUB ToolButton7_Click()
  'Stoppa la musica
  DIM a AS Integer
  DIM b AS Float
  DIM c AS Float
  b = 0.1
  FOR a = 0 TO 10
      Music.Volume = c
      c = 1.0 - b
      b = b + 0.1
      WAIT 0.5
  NEXT
  Timer2.Enabled = FALSE
  Slider1.Value = 0
  Music.Stop
  Label6.Caption = "Stop"
  RETURN
END
Questo è il codice e in teoria deve stoppare la musica alla fine dopo aver portato in dissolvenza la musica...Tipo come fa anche amarok.
ciao.
Fatemi sapere se posso allegare il programma....
Titolo: Re: Timer
Inserito da: fsurfing - 04 Dicembre 2008, 21:18:55
la soluzione al problema dell' audio quando premi stop te lo scritta nella risposta di prima  :-o

basta che prima di iniziare il loop for-next

inizializzi c con c=1 altrimenti si autoinizializza a zero (picco con volume nullo)

per poi essere portata a 1 a inizio loop e poi si dissolve.


puoi postare tutto il programma basta che fai un pacchetto .tar o .bz2
Titolo: Re: Timer
Inserito da: Lux - 04 Dicembre 2008, 21:43:52
Citazione
la soluzione al problema dell' audio quando premi stop te lo scritta nella risposta di prima
:lol:
Mi credi che non mi ero accorto della risposta?? Mi sto rincretinendo!!!!!!
Ora provo subito, ti faccio sapere!!!
Grazie mille!!!!
Titolo: Re: Timer
Inserito da: Lux - 04 Dicembre 2008, 21:45:48
Ok, ho risolto....
Ora creo il tar e invio tutto, in questo modo mi date dei consigli!!!
Titolo: Re: Timer
Inserito da: Lux - 04 Dicembre 2008, 21:48:25
Ecco il file.
Ciao.
PS: Troverete un casino di errori, non fateci caso sto imparando adesso!!!!!
Titolo: Re: Timer
Inserito da: fsurfing - 04 Dicembre 2008, 22:16:12
bravo carino il prog. domani gli do un occhiata + approfondita se ho tempo.. ora vado a giocare a
spring

ciao ciao
Titolo: Re: Timer
Inserito da: fsurfing - 05 Dicembre 2008, 19:14:21
non riesco a caricare nessun video


non mi ricordavo male ...
gambas offre gia la possibilita di stoppare la musica diminuendo il volume progressivamente

basta che dai music.stop(0.5)  
0.5 è il valore float che determina la durata del fad out
Titolo: Re: Timer
Inserito da: Lux - 05 Dicembre 2008, 21:24:34
Citazione
non riesco a caricare nessun video

Per ora non carica video....il video lo puoi vedere solo dalla webcam...
Grazie per l'info sullo stop dell'audio.
Ora aggiusto.
Titolo: Re: Timer
Inserito da: fsurfing - 07 Dicembre 2008, 18:56:47
se vuoi ti ho fatto una piccola funzione per leggere i tag mp3 (solo igli id3v1 per ora)

Codice: [Seleziona]

PUBLIC SUB lettura_tag()

 
  DIM tag AS String
  DIM tag_album AS String
  DIM tag_anno AS String
  DIM tag_artista AS String
  DIM tag_commento AS String
  DIM tag_genere AS String
  DIM tag_null AS String
  DIM tag_traccia AS String
  DIM tag_titolo AS String
 
  'File.OPEN FOR READ BINARY #1
  pippo = File.Load(percorso)
 
  tag = Mid$(pippo, (Len(pippo) - 127), 128)
 
  IF Left$(tag, 3) = "TAG" THEN
  label1.Text = "id3v1"
        'effettua la lettura dei tag
        tag_titolo = Trim$(Mid$(tag, 4, 30))
        tag_artista = Trim$(Mid(tag, 34, 30))
        tag_album = Trim$(Mid(tag, 64, 30))
        tag_anno = Trim$(Mid(tag, 94, 4))
        tag_commento = Trim$(Mid(tag, 98, 28))
        tag_null = Trim$(Mid(tag, 126, 1))
        tag_traccia = Trim$(Mid(tag, 127, 1))
        tag_genere = Trim$(Mid(tag, 128, 1))
endif

END
Titolo: Re: Timer
Inserito da: Lux - 10 Dicembre 2008, 18:34:38
Grazie mille! Come hai potuto notare in questi giorni non ho avuto il tempo manco di accedere al forum, ora ho visto la tua risposta e sono contento che sei li ad aiutarmi e a supervisionare. dopo inserirò il tutto nel programma e ti faccio sapere.
Ciao! :-)
Titolo: Re: Timer
Inserito da: Lux - 08 Settembre 2009, 19:51:09
Scrivo qui tanto parlo di timer lo stesso;
se io scrivessi questo codice:
Codice: [Seleziona]
Public sub Timer1_Timer()
Dim a as integer
a = 0
Label4.text = a+1
End

ed avendo settato timer delay = 1000
ed enable = true
il programma non dovrebbe aggiornare il valore della label ogni secondo?
quindi scrivermi 1,2,3,4,ecc..?
Titolo: Re: Timer
Inserito da: - 08 Settembre 2009, 21:43:45
gioia mia bella .....

su 3  righe hai fatto 2 errori  

1) una variabile dichiarata con DIM si ri-inizializza ogni volta che richiami la SUB, quindi devi dichiararla all'inizio del progetto ( la variabile)

2) in quanto appena inizializzata (nel tuo codice) a è già =0 . Se la dichiari all'inizio del progetto ,come devi fare,non devi comunque porla =0 all'inteno della SUB in quanto l'incremento altrimenti come lo fai ????
Titolo: Re: Timer
Inserito da: Ceskho - 09 Settembre 2009, 00:32:51
Infatti manca l'incremento della variabile....

Devi tenere presente che il timer ad ogni "schiocco" richiama la sub. In questo caso il DIM non fa altro che creare la variabile ma al tempo stesso la distrugge all'uscita del ciclo stesso. Poi c'è la questione che se all'inizio del ciclo metti a=0 ad ogni richiamo la variabile vale comunque 0 e quindi nella tua label leggerai 0 + 1 = 1 ad ogni ciclo.

Il codice corretto è:
Codice: [Seleziona]

a as integer

Public sub Timer1_Timer()

a +=1 'equivalente di a = a + 1

Label4.text = str(a)

End
Titolo: Re: Timer
Inserito da: Lux - 09 Settembre 2009, 23:25:00
Citazione
gioia mia bella .....

su 3 righe hai fatto 2 errori

1) una variabile dichiarata con DIM si ri-inizializza ogni volta che richiami la SUB, quindi devi dichiararla all'inizio del progetto ( la variabile)

2) in quanto appena inizializzata (nel tuo codice) a è già =0 . Se la dichiari all'inizio del progetto ,come devi fare,non devi comunque porla =0 all'inteno della SUB in quanto l'incremento altrimenti come lo fai ????

e mi è anche andata bene, di solito in 3 righe faccio 4 errori... :oops:
Citazione
Infatti manca l'incremento della variabile....

Devi tenere presente che il timer ad ogni "schiocco" richiama la sub. In questo caso il DIM non fa altro che creare la variabile ma al tempo stesso la distrugge all'uscita del ciclo stesso. Poi c'è la questione che se all'inizio del ciclo metti a=0 ad ogni richiamo la variabile vale comunque 0 e quindi nella tua label leggerai 0 + 1 = 1 ad ogni ciclo.
Sinceramente non ho ben chiaro il funzionamento della dichiarazione di variabili, ad esempio non so manco quale sia il significato di DIM. Però utilizzando il vba di excel nn ho mai avuto questo problema, infatti la variabile a non viene cancellata e quindi mi viene incrementata.....(o forse mi sbaglio? domani darò un'occhiata al mio vecchi programmino fatto in vba)
Mi spieghereste DIM cosa significa?
Ho sempre dichiarato le mia variabili cominciando con DIM (qualche volta con private) ma non ho ben chiaro il concetto, però non ho mai dichiarato nulla senza DIM appunto. Invece mi avete mostrato che è possibile....che differenza c'è altre al fatto che quindi DIM crea e distrugge la variabile?
ciao!
Titolo: Re: Timer
Inserito da: Ceskho - 10 Settembre 2009, 01:16:07
Scrissi questo tempo fa, proprio per ovviare a questi dubbi: http://www.gambas-it.org/wiki/index.php/Le_Variabili
Titolo: Re: Timer
Inserito da: Lux - 10 Settembre 2009, 09:32:26
Grazie mille!
Avrei un'altra cosa da chiedere, nel link che mi hai postato, parli anche di classi. Ora se ho ben capito una classe è tutto il programma, quindi tutto ciò che contiene le mie funzioni, che sempre se ho capito sono le mie "public sub cosa_click() " giusto?
Quindi se dichiaro una variabile come public allora questa può essere usata ovunque nella mia classe, ho capito bene?
Titolo: Re: Timer
Inserito da: fsurfing - 10 Settembre 2009, 12:09:03
diciamo che le classi sono una cosa particolare, vengono usate quando utilizzi una programmazione ad oggetti nel tuo programma e il loro utilizzo è un'pò particolare (Luigi comunque ha scritto qualcosa in proposito nel wiki)

quello che maggiormente si utilizza sono i moduli che puoi intenderli come dei contenitori di funzioni e variabili globali che potrai richiamare ovunque nel tuo programma.

se in un modulo una variabile o funzione viene dichiarata come PUBLIC (potrà essere dichiarata solo ad inizio file subito dopo "'gambas file" e non all' interno dei una funzione)sarà visibile ed utilizzabile in tutto il progetto stessa cosa se dichiarata all' interno di un form.

se viene dichiarata come PRIVATE potrà essere utilizzata solo all' interno del form o del modulo in cui viene dichiarata (ovvero in tutte le funzioni del for o del modulo)

all' interno delle varie funzioni vengono dichiarate le variabili con DIM
queste variabili sono utilizzabili solo all' interno della funzione in cui sono dichiarate
Titolo: Re: Timer
Inserito da: Ceskho - 10 Settembre 2009, 13:06:46
Diciamo che le classi sono la base su cui nasce la programmazione ad oggetti....una classe puoi vederla come uno stampo di una fabbrica grazie al quale puoi creare oggetti del tutto simili alla classe...ad esempio se io creo una classe che si chiama Persona al suo interno posso salvare variabili e funzioni tipiche dell'oggetto che ho creato..una persona cosa fa? Mangia, dorme, parla (queste sono funzioni) e posso usarle in tutto il programma con

Persona.Parla o Persona.Mangia

Poi ci sono le variabili che possono essere viste come le caratteristiche di una persona, cioè: altezza, colore capelli e possono essere usate ad esempio in questo modo:

Persona.altezza = 1.70
Persona.colore_capelli = "biondo"
Persona.Nome = "Mario"
Persona.uomo = TRUE

o cose simili.

L'argomento è vasto ed interessante. TI consiglio di fare delle ricerche (non necessariamente su gambas, anche su altri linguaggi tanto il concetto è lo stesso).
Titolo: Re: Timer
Inserito da: ira83 - 13 Settembre 2009, 22:51:27
Leggermente offtopic ma in tema con il timer,

Message.Info(Date, "esci")
Message.Info(Time, "esci")

mi mostra la data in formato 11/11/11
mi mostra l'ora in formato 22:22:22

l'ora cosi mi sta anche bene, ma la data ho necessità assoluta mi venga stampata cosi  11-11-11

ho googolato x un bel bo senza successi.. mi date una dritta?
Titolo: Re: Timer
Inserito da: fsurfing - 13 Settembre 2009, 22:57:09
Codice: [Seleziona]

Message.Info(day(now) & "-" & month(now) & "-" & year(now) , "esci")

cosi potrebbe essere un modo
Titolo: Re: Timer
Inserito da: - 14 Settembre 2009, 22:47:55
format() non da la possibilità ?
Titolo: Re: Timer
Inserito da: md9327 - 15 Settembre 2009, 00:20:56
Format(Now(), "dd-mm-yyyy hh:nn:ss.u")


...sono ritonato, e ancora vedo le solite cose... dare sempre un'occhio alla, seppur poca e semplice, documentazione ufficiale!...

Characters for user-defined formats:
  +    Prints the sign of the number.
  -    Prints the sign of the number only if it is negative.
  #    Prints a digit only if necessary.
  0    Always prints a digit, padding with a zero if necessary.
  .    Prints the decimal separator.
  ,    Prints the thousand separators.
  %    Multiplies the number by 100 and prints a per-cent sign.
  E    Introduces the exponential part of a Float number. The sign of the exponent is always printed.

User-defined format characters for dates:
  yy    Prints the year on two digits.
  yyyy    Prints the year on four digits.
  m    Prints the month.
  mm    Prints the month on two digits.
  mmm    Prints the month in an abbreviatted string form.
  mmmm    Prints the month in its full string form.
  d    Prints the day.
  dd    Prints the day on two digits.
  ddd    Prints the week day in an abbreviated form.
  dddd    Prints the week day in its full form.
  /    Prints the date separator.
  h    Prints the hour.
  hh    Prints the hour on two digits.
  n    Prints the minutes.
  nn    Prints the minutes on two digits.
  s    Prints the seconds.
  ss    Prints the seconds on two digits.
  :    Prints the time separator.
  u    Prints the milliseconds, if they are different from zero.
Titolo: Re: Timer
Inserito da: fsurfing - 15 Settembre 2009, 12:51:47
ma ragazzi .. a lui serviva scrivere la data con il "-" come separatore, questo format non lo fa!  avete letto bene la guida? :-P
Titolo: Re: Timer
Inserito da: md9327 - 15 Settembre 2009, 15:01:02
Al momento non ho modo di verificare, ma mi pare strano, anche se probabilmente Gambas interpreta il "-" come segno.
Provato a metterla così?

Format(Now(), "dd\-mm\-yyyy")
Titolo: Re: Timer
Inserito da: Ceskho - 15 Settembre 2009, 15:19:48
Se il - viene passato come stringa non viene interpretato come segno...la stssa cosa vale con gli altri simboli matematici quali + * /