Gambas-it
  Blog     Wiki     Download     Il resto del Pinguino  
23 Maggio 2013, 05:54:50 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizie: Nasce Il resto del Pinguino: Scrivi anche tu!
 
  Home Guida Ricerca Utenti Accedi Registrati  
  Visualizza messaggi
Pagine: [1] 2 3 ... 84
1  Gambas3 / Programmazione / Re: setfocus su vari controlli inserito:: Ieri alle 19:15:20


....ma il ".SetFocus" non è una semplice funzione di diversi oggetti ?   Bocca cucita
[/quote]
Hai ragione, ho scritto male il codice. La maniera esatta è:
Codice:
Object.SetFocus

La documentazione di Gambas pone il termine ".SetFocus" fra i metodi dei vari oggetti grafici di Gambas
Citazione
Control.SetFocus (gb.qt4)
Sub SetFocus ( )
Gives the focus to the control.
Chiedo scusa per l'involontario errore.  Imbarazzato

@giob1642:
Se hai completato, scrivi [Risolto] nel 1° post della disussione.

 Ciao ciao
2  Gambas3 / Programmazione / Re: setfocus su vari controlli inserito:: Ieri alle 16:01:12
Mi permetto solo di precisare che Picavbg intendeva la WIKI del nostro forum
Esattamente!

@giob1642:
Secondo me navigare fra gli oggetti interni ad una Form con cicli di tipo whlie ... wend è oltremodo pericoloso, come è pure pericoloso dare frequentemente comandi "setfocus.object". Gambas ha i suoi criteri di gestione degli oggetti e dei loro eventi ed intervenire con setfocus.object a raffica porta a alterare profondamente la struttura di attivazione sequenziale delle classi costruita da Gambas internamente ad una Form.Class. Te lo dico perchè, nei miei approcci iniziali ho sbattuto il grugno tantissime volte con risultati imprevedibili, tanto che in qualche occasione ho dovuto affrontare loop anomali, difficili da individuare, anche attraverso la procedura di debug. Ho deciso allora di sostituire al "SetFocus.Object" il richiamo di una SUB o di una FUNCTION  comune agli eventi interessati ed ho eliminato quasi del tutto l'istruzione  "SetFocus.Object".

Ti consiglio perciò di abbandonare il concetto While...Wend e di pensare a qualche altra soluzione. Se dovessi avere bisogno di suggerimenti, domanda pure liberamente.
 Occhiolino  Ciao ciao
3  Gambas3 / Programmazione / Re: setfocus su vari controlli inserito:: 21 Maggio 2013, 23:49:42
Sembra facile ma se guardi gb qt4 vedrai che gambas3 in qt4 non ammette il lostfocus

Ma dove l'hai letto? Secondo me, non me ne volere, hai maturato nel tuo programma una bella confusione. Quando entri nella documentazione di Gambas, direttamente dall'hide di gambas del tuo programma, col tasto "F1", clicca in successione su Componenti 3.0 --> Qt4 --> TextBox/ComboBox (quale vuoi): fra gli eventi trovi elencato anche il LostFocus.
Potrai constatare personalmente che l'evento LostFocus continua ad esistere e gode di ottima salute. Posso confermartelo anche praticamente perchè nel mio ContabFam utilizzo molto l'evento LostFocus sin da quando ho scritto le prime istruzioni sotto Gambas2. Quando ho installato Gambas3, ho attivato la conversione automatica da G2 a G3 ed il mio programma continua a funzionare bene anche in G3.

Per risolvere i tuoi problemi ci sono varie possibilità. Dovresti però fermare un pò la stesura di codice, leggere alcuni argomenti sul Wiki del Forum come "Miscellania --> Assegnare più oggetti ad un gruppo" ed altrri che mi viene difficile segnalarti perchè non conosco le tue difficoltà, ma sono sicuro che tu, scorrendo i titoli dei vari argomenti, sarai benissimo in grado di individuare.
Rivisitando poi, con maggioire consapevolezza conoscitiva, il tuo programma, vedrai che troverai molto da cambiare e, sicuramente, in meglio.
 Ciao ciao
4  Gambas3 / Programmazione / Re: vista inserito:: 20 Maggio 2013, 23:22:13
@ player:
Scusa se rispondo con qualche giorno di ritardo, ma sono stato fuori casa per qualche giorno ed ho letto soltanto l'ultimo tuo post.

Vediamo se ho capito quello che vorresti fare:
Da alcune tabelle del tuo DB vorresti leggere con un'unica query di tipo join i dati contenuti nei campi di record-tabella e visualizziarli, per es., dentro una TableView. Dalla letturta vorresti ricavare, oltre che i dati, anche i nomi delle singole colonne della tabella-query che costruirai per leggere il contenuto del DB. Potere fare tutto ciò automaticamente sarebbe bellissimo, ma non è purtroppo proprio così, perchè il formato sql di accesso ai DB accede alle colonne di una tabella di DB attraverso i nomi forniti nella riga sql.exec che ricerca nei nomi attribuiti in fase di creazione di ciascuna tabella di DB. Ciò significa che il nome campo(o colonna, chiamalo come vuoi) $Result!nome lo devi fornire tu, esattamente uguale a quello contenuto nella tabella d'origine del DB. In mancanza di tale corrispondenza, viene segnalato, durante l'esecuzione del programma, un errore formale sull'istruzione DbConn.Exec.

Utilizzando la struttura DB SQlite3 (conosco solo quella), supponiamo di avere creato un DB con due sole tabelle:
Codice: gambas
dim sql as string

sql = "CREATE TABLE Tabella1"
 sql = sql & "('idTabella1' INTEGER PRIMARY KEY AUTOINCREMENT,"
 sql = sql & " 'Campo1T1' INTEGER,"
 sql = sql & " 'Campo2T1' INTEGER,"  
 sql = sql & " 'Campo3T1' CHAR(1) DEFAULT NULL,"
 sql = sql & " 'Campo4T1' FLOAT,"
 sql = sql & " 'Campo5T1' VARCHAR(100) DEFAULT NULL"
 sql = sql & " );"
ApriDB.DB_Connection.Exec(sql)

sql = "CREATE TABLE '" & $Tabella2 & "'"                
 sql = sql & "('idTabella2' INTEGER PRIMARY KEY AUTOINCREMENT,"
 sql = sql & " 'Campo1T2' INTEGER,"  
 sql = sql & " 'Campo2T2' VARCHAR(50) DEFAULT NULL,"
 sql = sql & " 'Campo3T2' CHAR(1) DEFAULT NULL,"
 sql = sql & " 'Campo4T2' INTEGER"  
 sql = sql & " );"
ApriDB.DB_Connection.Exec(sql)

Supponiamo ora di dover leggere il contenuto di: Campo1T1, Campo3T1, Campo2T2, Campo3T2. La query occorrente è:
Codice: gambas
Dim RecQuery As Result

RecQuery = ApriDB.DB_Connection.Exec("SELECT * FROM  Tabella1,Tabella2 WHERE Tabella1.Campo1T1 = Tabella1.Campo1T2  ORDER BY  Tabella1.idTabella1 ")
For Each RecQuery
  CompilaRigaTableView
Next

Public Sub CompilaRigaTableView
'      ---bla---bla---bla---               Gruppo di istruzioni occorrenti per la compilazione delle righe di TableView
END

Fammi sapere se ho capito e se l'esempio riportato sopra  sia calzante alle tue necessità.
 Ciao ciao
5  Gambas3 / Programmazione / Re: ripulire un picture box dalla precedente immagine inserito:: 07 Maggio 2013, 19:11:12
... forse mi sono spiegato male .......

mi sarebbe servito che  picturebox.clear eliminasse l'immagine dal form e riportasse il rettangolo al colore di base (grigiolino per le mie impostazioni).
Hai ragione, la proprietà ".Clear" lascia inalterato il contenuto della PictureBox. La soluzione la suggerisce Minisini sempre nello stesso post di vuott:
Codice:
PictureBox1.Picture = Null
che poi è quello che avevi già comunicato tu nel post d'apertura.

Se tu aggiungi il bordo alla PictureBox, dopo l'esecuzione dell'istruzione poc'anzi indicata, potrai vedere l'oggetto ripulito dell'immagine, ma col colore di fondo di default o quello eventualmente da te impostato.
Scusa per il disordine che ho generato.  Imbarazzato
 Ciao ciao
6  Gambas3 / Programmazione / Re: ripulire un picture box dalla precedente immagine inserito:: 07 Maggio 2013, 09:40:22
Dimenticavo: Buon caffè anche a voi.
7  Gambas3 / Programmazione / Re: ripulire un picture box dalla precedente immagine inserito:: 07 Maggio 2013, 09:34:41
Però, leggendo il post di vuott, ho provato così:

Codice:
Public Sub PictureBox1_DblClick()
  PictureBox1.Picture.clear
  PictureBox1.Picture = picture.load(User.home & "/mont/dativari/Documenti_Vari/iconcff.png")
End

Ed ecco le due immagini.

8  Gambas3 / Programmazione / Re: ripulire un picture box dalla precedente immagine inserito:: 07 Maggio 2013, 08:39:01
Scusate, non ci avevo fatto caso. Ho fatto soltanto una prova veloce.  Indeciso
9  Gambas3 / Programmazione / Re: ripulire un picture box dalla precedente immagine inserito:: 06 Maggio 2013, 23:57:11
funziona anche con
Codice:
PictureBox_Logo.Delete
Ciao ciao
10  Gambas3 / Programmazione / Re: [risolto[...]]esiste una funzione che cerca un crt all'interno di una stringa inserito:: 05 Maggio 2013, 21:34:13
si ma la strada è ancora lunga Pianto Pianto
La strada non è lunga. Devi solamente affrontare le difficoltà che incontri una alla volta.
In questo momento dovresti lavorare su quello che hai già cominciato a gestire. Vero quello che ha messo in evidenza pastrank. Però non mettere troppa carne sui fuoco.
Ti do ancora due consigli:
- rispondi allle proposte già affrontate ed a cui non ha ancora risposto;
- leggi bene il contenuto della mia firma, dopo averne fatto tesoro, cammina sempre dentro il binario della razionalità
 Ciao ciao
11  Gambas3 / Programmazione / Re: [risolto[...]]esiste una funzione che cerca un crt all'interno di una stringa inserito:: 05 Maggio 2013, 17:16:58
La tua Function Filtro è richiamata nell'evento KeyPress?

Non capisco la seguente istruzione
Codice:
If (ricerca(stringa, ".") = 1 And Len(stringa) >= 1) Then 

puoi scriverla anche così:
Codice:
If ricerca(stringa, ".") = 1 And Len(stringa) >= 1  Then
 
Ma ricerca(stringa, ".") non funziona in quanto non  ricerca non è riconosciuto da Gambas. Fai invece
Codice:
dim ricerca as Integer
........................................
ricerca = instr(stringa,".")
if ricerca > 0  then
  Stop Event
Endif

Inoltre, come ti ho già detto nel mio precedente post, l'istruzione:
Codice:
If Key.Text = "è" Or Key.Text = "ò" Or Key.Text = "à" Or Key.Text = "ù" Then 
non produce alcun effetto, perchè non verrà mai eseguita. il quanto quel lavoro è già egregiamente svolta dalla
Codice:
If key.Text Like "[^0-9.,-]" Then 

12  Gambas3 / Programmazione / Re: [risolto[...]]esiste una funzione che cerca un crt all'interno di una stringa inserito:: 04 Maggio 2013, 22:39:40

$como è una variabile??
Si, è una variabile String

Citazione di: simo97
con questa ho quello che voglio ma no trascura acuni caratteri (èòàùì....) ma la funzione dice "tutto ciò che non è nell'intervallo" (ca.) e perciò dovrebbero essere presenti anche quei caratteri...
Codice: gambas
Public Function Filtro()  
If key.Text Like "[^0-9.,-]" Then
  Stop Event
Endif
End

ora la domanda si compone da sola...
come faccio a escludere anche quei caratteri???
l'istruzione if dell'esempio fornito da 9Bit trascura anche i crt "à, é, è, ì, ò, ù", ma trascura anche tutti i crt alfabetici, quindi puoi benissimo utilizzare solamente quella.Non hai perciò di usare la mia
Codice:
$Como = Key.Text 
Select Case $Como 
             Case "a" to "z", "A" to "Z",".", ",", ecc..... 
                   Stop Event 
End Select
Devi però testare anche i tasti come [Canc], [Tab], [Shift+Tab], [Backspace], [freccia indietro], [freccia avanti], perchè non sono sicuro che non vengano trascurati.
 Ciao ciao
13  Gambas3 / Programmazione / Re: [risolto]esiste una funzione che cerca una lettera all'interno di una stringa inserito:: 04 Maggio 2013, 00:07:47
lo scopo finale era una funzione di trasformazione "controllata" da una text a una value ma con le caratteristiche di una text e controllata perchè:
-usa il puntino al posto della virgola e se viene insetrita la virgola inserisce comunque il puntino
-può supportare anche le lettere se inserite dal programma ma non da chi lo usa(un controllo che annulla la funzione)

-se mi invento qualcosaltrto alla fine pubblicherò qui la funzione completa...

bè se volete tolgo il risolto ma lo scopo di questa discussione (un pò evoluto) alla fine è stato risolto...
Scusami, ma continuo a non capirti. Il tuo intento porta ad azioni diverse:
1a- trascurare tutti i caratteri diversi dalla virgola, dal punto e dai numeri.
              E questo ti conviene farlo come ti avevo suggerito, cioè con l'evento TextBox.KeyPress, perchè è la via più semplice, più leggera perchè risparmi istruzioni e sbrigativa. Lo stesso evento può controllare che venga immesso un solo "." o una sola "," e trascurare tutti quelli successivi al prmo.
2a- la scrittura di una funzione che si occupi della conversione dell'eventuale crt "," in ".". Sono istruzioni che non si possono risparmiare perchè il crt immesso può essere, in KeyPress, soltanto controllato ed eventaulmente scartato, ma non può essere convertito in un crt diverso.
Secondo me la funzione non deve essere richiamata, ma semplicemente inserita come istruzioni dentro l'evetnto TextBox.Change, cioè subito dopo che il crt digitato è stato già aggiunto ai precedenti, già presenti nella TextBox.
3a- una funzione specifica che si occupi dell'inserimento di crt alfabetici, secondo le tue necessità.

Spero di essere stato più chiaro. Non capisco perchè vuoi costruire a tutti i costi una funzione per gestire tutto quando non ne hai bisogno. Ricorda:
Meno codice scrivi, ... meno sbagli.  Occhiolino

Poi, se proprio non vuoi sentire ragioni, perchè hai simpatizzi per la superfunzione, fai come credi. Non posso che augurarti un buon  Occhi ruotati
 Ghigno  Ciao ciao
14  Gambas3 / Programmazione / Re: esiste una funzione che cerca una lettera all'interno di una stringa inserito:: 02 Maggio 2013, 23:19:20
Scusami Picavbg, forse non ho capito, ma se elimino la riga "Else If", non si limita più a farmi inserire un solo "punto"...ma continua a farmeli inserire?  Indeciso

Ma infatti io avevo capito che il "." fosse un crt da trascurare, mentre i numeri sarebbero comunque stati gli unici crt consentiti in digitazione. Però il prosieguo della discussione mi ha fatto capire che il problema fosse in realtà quello di individuare la ricorrenza di certi crt e la presenza singola di un certo crt. Non ne ho capito lo scopo perchè non è stato citato. Penso tuttavia, visto che è stato già considerato [Risolto], che possiamo benissimo risparmiarci qualsiasi approfondimento.
 Ciao ciao
15  Gambas3 / Programmazione / Re: esiste una funzione che cerca una lettera all'interno di una stringa inserito:: 02 Maggio 2013, 23:10:19

A volte succede che non si riesce ad essere chiari nelle premesse e negli obiettivi, ed effettivamente è difficile capire quello che si vuole.

Quello che dici tu è vero, ma riguarda un concetto più generale che sta a monte di un progetto, quando invece si entra nel dettagli, ormai la fase progettuale deve essere stata affrontata, ragionata e completata. Poi qualsiasi progetto, piccolo a grande che sia, dovrebbe essere sempre sostenuto da una traccia scritta che si dovrebbe seguire perchè il progetto si mantenga sempre dentro i binari del disegno logico da realizzare, secondo la formula
Citazione
dati di partenza -> programma -> risultato
il programma costituisce l'insieme dei processi tecnici occorrenti per produrre il risultato voluto coi dati pertinenti a disposizione.
L'aspetto a cui ho accennato or ora sarebbe stato un ottimo argomento da inserire fra gli articoli del nostro e-zine, ormai in stato di quarantena dal lontano dicembre 2010.  Pianto
Ciò non significa che il Forum non possa essere d'aiuto; basta spiegare passo passo, senza timore di dilungarsi, partendo dall'idea di base. quello che si vorrebbe realizzare. In presenza di richieste di sostegno per la progettazione, i supporter, secondo me, dovrebbero limitarsi a dare opinioni progettuali teoriche, senza mai sostituirsi all'ideatore con soluzioni pratiche di realizzazione di Form e/o di classi. Non credo assolutamente che sia un vero aiuto. La soluzione pratica deve essere sempre scelta ed applicata dall'autore, unico proprietario dell'idea concettuale della realizzazione, salvo, naturalmente, una sua diversa indicazione durante tutta l'evoluzione della discussione. Sorriso

Dopo lo sforzo sostenuto per scrivere codeste poche righe, ho riletto il tutto e, debbo dire, che mi sono capito. Spero di avere espresso il mio concetto chiaramente anche per chi, diversamente da me che hoavuto l'idea di scriverlo,  dovesse solamente leggere questo post.  Ghigno
 Ciao ciao


Pagine: [1] 2 3 ... 84
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines XHTML 1.0 valido! CSS valido!
Se vuoi sostenere Gambas-it.org puoi fare una piccola donazione utilizzando PayPal: