Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - Picavbg

Pagine: 1 [2] 3 4 ... 108
16
Programmazione / Re:classe action
« il: 27 Aprile 2019, 16:39:17 »
La frase da te quotata non sottintende nulla di esoterico, solo cerca di rimarcare che le finestre in Gambas devono innanzi tutto essere disegnate attraverso i contenitori.
Io ti consiglierei di guardare come è costruita la IDE, lo so è parecchio complicata e tende a fuorviare, è appunto per questo motivo che ho creato il progetto GPW (se non è chiaro terrei a precisare che il titolo è ironico) che intende focalizzarne i punti principali.
Ho scaricato e lanciato il tuo GPW, ma non si avvia.
Ho guardato un pò dentro l'IDE, ma non ho trovato la classe Action che mi aspettavo. Ho trovato, dentro il contenitore Workspace, l'evento Action_activate. Inoltre l'oggetto Workspace è contenuto in un panel, disegnato nella form.FMain.
Come esempio di riferimento dedicato all'illustrazione della classe Action, francamente, a me non risulta comprensibile.
Forse occorrerebbe un opportuno documento descrittivo sui meccanismi di funzionamento tecnico, oppure, se possibile mi potresti sottoporre allo stuzio un'altro più alla mia portata terra terra.

17
Programmazione / Re:classe action
« il: 27 Aprile 2019, 00:19:50 »
Mi incuriosisce molto questa tua affermazione:
Citazione
nel rispetto degli schemi grafici del linguaggio
Cosa significa?
Letta così, come l'hai citata tu, non significa niente, ma letta, insieme al concetto che la precede:
Citazione
Io ho sempre costruito le finestre utili ad un mio progetto proprio partendo dalla form main presentata di default dall'IDE di Gambas, nel rispetto degli schemi grafici del linguaggio,
significa che io ho rispettato quanto ho letto nella guida ufficiale di Gambas "A Beginner's Guide to Gambas", dove non viene fatto alcun riferimento alla classe Action, nè ad approfondimenti per ottimizzare la realizzazione di progetti applicativi con Gambas.
Però, da quanto emerso dalle tue insistenti punti d'attenzione, io capisco che la "Beginner's guide" non aiuta a programmare bene, ma a raffazzonare, abbandonando gli apprendisti programmatori, nel ruolo degli eterni principianti.
Ciò mi fa stare male e mi porta a scoprire, dopo 10 anni di utilizzo di strumenti Gambas, che sono rimasto un ignorantone e, per cercare di uscire da codesto stadio, devo chiedere continuamente supporto a chi, come te, riesce a districarsi fra i complessi documenti in lingua inglese.
Rispetto i vostri meriti e mi congratulo, ma, allo stesso tempo, mi sento umiliato dal boomerang della mia inutile esperienza.
Ti ringrazio per avermi linkato il programma GPW da cui spero di apprendere e capire, tornando a scuola, come realizzare un vero progetto professioonale in Gambas.

18
Programmazione / classe action
« il: 24 Aprile 2019, 22:55:05 »
Ho letto nel wiki l'articolo relativo alla classe Action e mi ha molto incuriosito l'affermazione
Citazione
Per comprendere a fondo Action occorre capire bene come devono essere costruite le finestre.
Io ho sempre costruito le finestre utili ad un mio progetto proprio partendo dalla form main presentata di default dall'IDE di Gambas, nel rispetto degli schemi grafici del linguaggio, però mi accorgo che probabilmente non ho preparato a dovere gli oggetti grafici da immettere nella Form, perchè non avrei tenuto conto della classe Action.
Infatti da quanto letto ho capito che prima di tutto avrei dovuto preparare a monte di tutto, sempre nella form main il codice di costruzione di xodesta classe, genitrice assoluta di tutte le classi da appendere ad esaa.
Mi servirebbe, perciò, per capire "... se ho capito ,,," un esempio pratico di programma basato sulla classe Action.
Ciò perchè il concetto è quasi chiaro, ma non mi è chiaro come dovrei agire nella pratica di programmazione, per realizzare la sorta di albero gerarchico necessario per una corretta attivazione della classe di tutte le classi.

19
Programmazione / Re:Finestra Gambas Perfetta
« il: 13 Marzo 2019, 19:52:13 »
Scusate l'intromissione, ma mi pare che questa discussione prosegua un argomento già iniziato, ma dove?

20
Programmazione / Re:Tabstrip
« il: 10 Marzo 2019, 17:49:32 »
Ragazzi questa non riesco proprio a capirla

ho provato per giorni questo codice
Codice: [Seleziona]
Public Sub TabStrip1_Click()

  Print TabStrip1.Index
  Print TabStrip1.text

End

mi dava solo errori
oggi funziona

nel frattempo sulla TabStrip non ho fatto nulla, l'unica cosa ho fatto degli aggiornamenti al sistema.

metto risolto

Eh!, Eh!, Eh!
Mancava la mia benedizione .....- :rotfl:


21
Programmazione / Quel sempre sofferto .setfocus
« il: 09 Marzo 2019, 18:49:40 »
Tanto per dire sempre le stesse cose, ancora una volta ho sbattuto la testa sull'impiostazione del focus, dentro una qualsiasi Form.
Questa volta però penso di avere trovato una soluzione, almeno per me. Tuttavia, come da mia abitudine, mi piace pubblicare la trovata, magari può piacere a qualcun altro.
Gambas ha la sua gestione del passaggio del focus, non proprio ortodossa e ciò, secondo me, dipende dal fatto che l'evento Lostfocus viene schedulato dopo che il controllo che possedeva il focus lo ha perso. Ricordo che in V.B. lo stesso evento viene schedulato come ultimo evento della catena, ma sempre prima che il controllo detentore del focus lo perda.
Col focus già abbandonato andare eventualmente a riprenderlo, diventa quanto mai laborioso e difficoltoso. Già nel passato non recente ho fatto studi e prove infinite sull'argomento.
In questi giorni mi sono dovuto cimentare ancora in uno scontro da giostra medioevale con l'aborrito nemico Gambas e, come al solito, non ne sono venuto a capo, così ho pensato:  E se inibissi per tutti i controlli della form a proprietà NoTabFocus ?
E così ho fatto. Ora, posso decidere di volta in volta quale controllo rendere attivo, mentre scorre il codice,e quando abbandonare il focus del controllo correntemente attivo. Vi posso assicurare che ho provato la nuova impostazione  e che funziona perfettamente. Mi sento come un tenore lirico che ha centrato finalmente il suo potente Do di petto.  :2birre:

L'unica cosa che non so se sia possibile realizzare è quella di modificare, nell'ide di Gambas, fra le proprietà di ciascun controllo il default della proprietà "NoTabFocus", in modo da averla sempre "= TRUE", senza perciò doverla andare a modificare io ad ogni nuovo controllo disegnato nella Form, infatti lo standard la mostra sempre "= FALSE".

22
Programmazione / Re:Tabstrip
« il: 09 Marzo 2019, 18:23:25 »
Ciao Dex,
ho letto per caso questa discussione e, visto che le tabStrip le conosco un pò, mi sento di dire la mia.
la tabstrip non è altro che un array bidimensionale grafico, con la differenza che quando stai trattando dati all'interno di un elemento di livello superiore (che da ora chiamerò pagina),  puoi riferirti agli elementi di sottolivello, direttamente coi nomi dei controlli interni a quell'elemento,
Ti porto un esempio preso da un pezzo del mio programma riguardante la tabstrip.
Nel mio programma, stabilisco che a fine caricamento di tutta la tabstrip, attivo sempre la 1.a pagina  di essa,  atraverso il comando
Codice: [Seleziona]
 Schedario.Index = 0
inversamente puoi rilevare la pagina attiva.
mentre per caricare un valore stringa all'interno di un elemento interno alla pagina attiva della TabStrip eseguo semplicemente:
Codice: [Seleziona]
 EstrNomiCti = New EstrazNomiCti(Str(iCoVoce))     ' richiamo della classe per estarre il valore stringa occorrente
  NomeCtoCas.Text = EstrNomiCti.$NomeConto     ' valorizzazione della TextLabel della pagina attiva di TabStrip

Spero di esserti stato d'aiuto

Purtroppo io mi affaccio pocop alla finestra del fForum, ma spero di non deluderti se avessi acora bisogno d'aiuto
 :ciao:

23
Programmazione / Re:frame a sorpresa
« il: 06 Marzo 2019, 15:41:08 »
Oggi ho fatto un ulteriore prova emettendo la frame su una gridview quasi vuota . Questa volta il fenomeno anomalo non si è manifestato.

24
Programmazione / frame a sorpresa
« il: 06 Marzo 2019, 15:37:45 »
Non capisco. Più vado avanti e più mi convinco che Gambas è peggiorato nella sua struttura di programmazione.
L'ultima volta che ho scritto è stato per denunciare il mancato riconoscimento della parola chiave "<center>" in HTML , all'interno di un testo di Message.box.
Oggi voglio farvi vedere come viene riempita una frame che vorrei fare comparire in sovrapposizione ad una gridview. Per questo allego l'immagine che ho catturato.

Ho esaminato attentamente i parametri relativi ai controlli risultanti trasparenti (4 TextBox e 1 Panel). Ho anche ripetuto la definizione di detti parametri all'interno del codice, ma senza ottenere cambiamenti migliorativi.
Codice: [Seleziona]
 With Frame1
            .X = Me.X + 525
            .Y = Me.Y + 238
            .Width = 427
            .Height = 235
            .Visible = True
            .Enabled = True
      End With
      With Label6
            .X = 125 
            .Y = 40
            .Width = 133
            .Height = 28
'            .Visible = True
'          .Enabled = True
      End With     
      With Label7
            .X = 266
            .Y = 40
           .Width = 133
            .Height = 28
'          .Visible = True
'          .Enabled = True
      End With     
      With Label5
            .X = 14
            .Y = 70
            .Width = 112
            .Height = 28
'          .Visible = True
'          .Enabled = True
      End With     
      With Label8
            .X = 14
            .Y = 106
           .Width = 119
            .Height = 28
'          .Visible = True
'          .Enabled = True
      End With
      With CoVoCasVec
            .X = 125
            .Y = 70
           .Width = 133
            .Height = 28
'          .Visible = False
'          .Enabled = False
      End With
      With CoVoCasNuo
            .X = 266
            .Y = 70
            .Width = 133
            .Height = 28
'          .Visible = False
'          .Enabled = False
      End With
      With CoContrPartVec
            .X = 125
            .Y = 106
           .Width = 133
            .Height = 28
'          .Visible = False
'          .Enabled = False
      End With
      With CoContrPartNuo
            .X = 266
            .Y = 106
            .Width = 133
            .Height = 28
'          .Visible = False
'          .Enabled = False
      End With
      With Panel2
            .X = 91
            .Y = 160
            .Width = 245
            .Height = 55
            .Visible = True
            .Enabled = True
            .Background = iColorPanel2
      End With
      With Label10
            .X = 14
            .Y = 15
            .Width = 147
            .Height = 28
      End With
      With SiConf
            .X = 196
            .Y = 10
            .Width = 35
            .Height = 21
            .Value = False
            .NoTabFocus = False
      End With
      With NoConf
            .X = 196
            .Y = 25
            .Width = 35
            .Height = 21
            .Value = True
            .NoTabFocus = False
      End With

25
Programmazione / Re:Centrare testo in MessageBox
« il: 29 Dicembre 2018, 23:05:29 »
ed ecco, in allegato, il risultato ottenuto in entrambi gli utilizzi

26
Programmazione / Centrare testo in MessageBox
« il: 29 Dicembre 2018, 23:00:51 »
Da tempo utilizzo il codice HTML all'interno di qualsiasi testo da mostrare in una finestra di tipo MessageBox e fino a poco tempo fa l'ho sempre fatto senza problemi.
Da ieri invece non riesco più a centrare un banale messaggio, perchè il comando <CENTER> non viene più riconosciuto. Ho utilizzato anche il comando "<DIV align=center>. Ebbene nemmeno quest'ultimo viene riconosciuto come tale
Ecco il codice scritto:
Codice: [Seleziona]
'    Message.INFO("<DIV align=center><b>Nessuna riga selezionata</b><BR><BR>per tornare alla finestra precedente")
    Message.INFO("<CENTER><b>Nessuna riga selezionata</b><BR><BR>per tornare alla finestra precedente")
Come si può vedere dal risultato, tutti gli altri comandi HTML vengonmo riconosciuti. La versione dio Gambas installata sul mio  SO.fedora è la 3.10.0

27
Programmazione / Re:Oggetto DateBox, controllo digitazione
« il: 28 Novembre 2018, 23:36:06 »
Picavbg, mi spieghi per quale motivo (solo per mia curiosità) usando una DateBox lasci libertà di digitazione della data
quando impostando la proprietà ReadOnly a True ti eviti gli errori formali e al massimo sbagli solo la data
intesa come periodo.
L'oggetto stampa caricava nella ListBox tutte le date contabili presenti nella tabella riepilogativa delle giornate di registrazioni. Ciò comportava un inutile perdita tempo nel caricamento di tutte quelle date (oggi sono 9033). Ho pensato allora di caricare solamente quelle riguardanti l'ultimo anno.
Mi occorre perciò permettere un'eventuale ricerca di altri intervalli più antichi, per eventuali necessità occasionali. Ecco il motivo delle due DateBox.
Apponendo la proprietà "read only", ho soltanto la possibilità di aprire un piccolo calendario in cui andare a scorrere gli anni fino a trovare quello che mi interesserebbe, coi relativi giorno e mese. Mi pare molto più agevole e rapido digitare direttamente le date di inizio e fine periodo.
Tutto qua. Si tratta semplicemente di una scelta mia. Comunque oggi ho veramente superato il problema dei controlli col ritorno, in caso di data errata,  del SetFocus nella DateBox contenente l'errore, immediatamente dopo la digitazione errata.
Purtroppo Gambas gestisce gli eventi provocati dal mouse in maniera diversa rispetto a quelli provocati dall'uso della tastiera.
Spero di avere soddisfatto la tua curiosità.

28
Programmazione / Re:Oggetto DateBox, controllo digitazione
« il: 28 Novembre 2018, 09:58:38 »
< Ultime Notizieee <<<<
Ho sostituito il pannello "Aggiorna Lista" con un ButtonBox ed ho ripetuto l'esecuzione inserendovi anche le istruzioni di controllo sulla data, ciò in quanto l'oggetto DateBox permette di digitare solo numeri, ma non formattati come data. Il metodo di controllo data (DtIniFinLostFocus_mio) è stato chiamato dentro l'evento DatIniz_LostFocus che questa volta si è manifestato, correttamente, prima dell'evento PulsAggiList_MouseUp.
Ho però eliminato il comando Stop Event che non ha senso.
Citazione
Form11.DatIniz_GotFocus.270: Evento 'DatIniz_GotFocus' - apertura
Form11.DatIniz_LostFocus.277: Evento 'DatIniz_LostFocus' - apertura
Form11.DtIniFinLostFocus_mio.289: metodo 'DtIniFinLostFocus_mio' - apertura
Form11.PulsAggiList_MouseUp.323: Evento PulsAggiList_MouseUp - apertura
Form11.PulsAggiList_GotFocus.318: Evento PulsAggiList_GotFocus - apertura
Form11.DatIniz_GotFocus.270: Evento 'DatIniz_GotFocus' - apertura


Pare che ora funzioni tutto come desiderato, col cursore che si riposiziona all'inizio della casella DateBox.

@ Gianluigi
In effetti ho seguito la tua tecnica. Non ho selezionato il gruppo di caratteri errati perchè l'istruzione DateBox.Select mi ha dato errore, ma anche perchè ho segnalato l'errore con una finestra d'errore prima di restituire il Focus al DateBox di partenza. Penso però di migliorare il puntamento del cursore all'interno del DateBox, portandolo proprio sul primo gruppo di carattweri da correggere.

29
Programmazione / Re:Oggetto DateBox, controllo digitazione
« il: 27 Novembre 2018, 23:40:58 »
Beh, se LostFocus ti provoca acidità, allora... :D

In ogni caso non mi sembra una maniera sbagliata di gestire la cosa e se funziona... ;)
Ahéééé ! Allora ti servirà il bicarbonato di sodio !
;D
Avete ragione, battute  più che  meritate.
 :2birre:

Comunque, la mia prova è andata a farsi ...

Guardate sia la form allegata che la sequenza degli eventi quando dopo l'inserimento di una data non corretta, clicco col mouse puntato sul pannello "Aggiorna Lista"
Citazione
Form11.DatIniz_GotFocus.294: Evento 'DatIniz_GotFocus' - apertura
Form11.AggiListPuls1_MouseUp.183: Evento AggiListPuls1_MouseUp
Form11.DatIniz_LostFocus.301: Evento 'DatIniz_LostFocus' - apertura
L'evento DatIniz_LostFocus viene schedulato dopo AggiListPuls1_MouseUp

Perciò sono ancora fermo sullo stesso punto.

30
Programmazione / Re:Oggetto DateBox, controllo digitazione
« il: 27 Novembre 2018, 17:42:38 »
Siccome ogni programmatore ha un suo stile proprio di scrivere codice, io ho preferito mantenermi nell'ambito dell'oggetto con la digitazione errata e, anche se l'evento LostFocus di Gambas mi fa acidità, ho agito così;
Codice: [Seleziona]
Public Sub DatIniz_LostFocus()
Dim TstDtDig As TestData

Dim $AA As String
Dim $GG As String
Dim $MM As String
Dim $Data As String
'------------------------------------------------------------------------------
  Debug "Evento 'DatIniz_LostFocus' - apertura" 
  $Data = DatIniz.value       'formato della data: MMggAAAA
  $GG = Mid($Data, 4, 2)
  $MM = Left($Data, 2)
  $AA = Mid($Data, 7, 4)
  $Data = Mid($Data, 7, 4) & Left($Data, 2) & Mid($Data, 4, 2)
  TstDtDig = New TestData($GG, $MM, $AA)              'Testa validità data e se data errata pone bSwVeFa = False
  If TstDtDig.bSwVeFa = False Then
                  Message.ERROR("<CENTER>data immessa ERRATA O INCOMPATIBILE <BR> <BR> ---  C O  R R E G G I  --- </CENTER>") '''
                  Stop Event
                  DatIniz.SetFocus
  Endif
Ho aggiunto uno Stop Event, allo scopo di annullare  il nuovo evento chiamato dal gestore eventi e permettere quindi di indirizzare il Focus di nuovo all'oggetto Datiniz.
E' superfluo?   Non lo so, ma non intralcia sicuramente.
Purtroppo il comando Set Focus posto nel metodo LostFocus, mi ha dato, in passato, non pochi supplizi.
Ho provato e funziona tutto benissimo.
 :D :ciao:

Pagine: 1 [2] 3 4 ... 108