Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Buchetto in InputBox?

Usando la funzione InputBox (quella che consente di attendere un dato in
input), se il messaggio (Prompt) che si espone contiene almeno una riga
_senza spazi_ che supera in larghezza (anche in funzione del font che viene
utilizzato da Win e dei più ampi caratteri maiuscoli) lo spazio (sarà una
label) previsto in larghezza per il messaggio stesso, beh, c'è il rischio
che la parte finale del messaggio non sia completa, anche se il numero dei
caratteri complessivi fosse assolutamente irrisorio.
Ecco un esempio di istruzioni (tratte dal mio ESP0DAMA,
ESF0DAMA.btn_varie_db_Click e "sfrondate/adattate" per semplificarne la
lettura e la prova) che provocano il problema, ovvero la riga del messaggio
che inizia con "5" non viene esposta, sempre che la riga con String (vedi
riga con '<<<) contenga un numero sufficiente di caratteri "W" tali da non
essere contenuti in ampiezza e, appunto, da formare una riga _senza spazi_
(che ne consentirebbero il riporto a capo):
comodo = ""
comodo = "Funzioni sul Database e Varie:" & vbCrLf & vbCrLf
comodo = comodo & String(40, "W") & vbCrLf & vbCrLf '<<<
comodo = comodo & "0 - Rientra senza far nulla" & vbCrLf & vbCrLf
comodo = comodo & "1 - Crea" & vbCrLf
comodo = comodo & "2 - Duplica (con opzioni)" & vbCrLf
comodo = comodo & "5 - Svuota elenco/combo Db (riduce ESP0DAMA.INI)"
Per controprova, tutto funziona (almeno con la mia definizione video,
1024x768) se la riga incriminata viene trasformata in:
comodo = comodo & String(20, "W") & vbCrLf & vbCrLf '<<<
o anche in:
comodo = comodo & String(20, "W") & Space(1) & String(20,"W") & vbCrLf &
vbCrLf '<<<
Non mi pare un buchetto da niente. Non tanto e solo per la riga troppo larga
che viene troncata, quanto per quelle finali del messaggio.
Usando l'InputBox con l'intento di dare anche qualche nota operativa, si
rischia che questa venga troncata al punto da risultare inutile se non,
addirittura, fuorviante.
Vi risulta? Grazie.

 comodo = comodo & "5 - Svuota elenco/combo Db (riduce ESP0DAMA.INI)"
Chiaramente qui, dopo la riga che inizia con "5", mancava:
risposta = InputBox(comodo)

[*Lupo*=
LupoOrmaiR...@libero.it
] ha scritto:
Mi rendo conto che nulla č dovuto, ma mi servirebbe una conferma o una
smentita.
Qualcuno potrebbe provare, per cortesia?
Io ho solo due macchine e il problema si presenta con entrambe.
Rimetto qui il codice, giusto per favorire il copia/incolla, anche in
Form_Load.
Se il problema si presenta, la riga che inizia con "5" non si dovrebbe
vedere.
Grazie.
comodo = ""
comodo = "Funzioni sul Database e Varie:" & vbCrLf & vbCrLf
comodo = comodo & String(40, "W") & vbCrLf & vbCrLf '<<<
comodo = comodo & "0 - Rientra senza far nulla" & vbCrLf & vbCrLf
comodo = comodo & "1 - Crea" & vbCrLf
comodo = comodo & "2 - Duplica (con opzioni)" & vbCrLf
comodo = comodo & "5 - Svuota elenco/combo Db (riduce ESP0DAMA.INI)"
risposta = InputBox(comodo)

 vedere.
Confermo.
Sembra che la label dell'imputbox sia a dimensioni fisse e venga 
troncata sia a dx che in basso.
Ciao

vedere.
Infatti č cosě! Il problema si presenta.
Andrea.

 Confermo.
Grazie. Mi basta.

 Qualcuno potrebbe provare, per cortesia?
Confermo.
ciao
ugo

 troncata sia a dx che in basso.
Grazie anche a te.
Curiosità (ma proprio solo tale), in Net (suppongo che esista una funzione
simile) funziona?

 assolutamente irrisorio.
scommetti che se chiedi a Microsoft ti dicono che l'InputBox è obsoleto?
<eg>
--
Salutoni
Sergio

 <eg>
beh, onestamente, non č che ci voglia chissachč a scriversi un proprio
inputbox un po' piů furbo...
;)
ciao
ugo

 vedere.
confermo senza provare, mi ero già imbattuto nello stesso problema.
ciao
Mirko Parisi
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 vedere.
Confermo!
Alex
°°° Posted from X-Privat Free NNTP server - 
www.x-privat.org
 °°°

 ;)
infatti credo di essere capace anche io a farlo. non è quello il problema.
la cosa spiacevole è avere a disposizione uno strumento limitato senza che
il produttore ti informi dei suoi limiti. anche perchè una limitazione
legata allo "spazio disponibile" è estremamente subdola: in funzione delle
impostazioni del pc può farsi sentire o no.
--
Salutoni
Sergio

[*CSSoft*=
news...@cssoft2001.com
] ha scritto:

Se consideriamo un NG di MS (che finisce con .vb) e un MVP ... è già
accaduto (ho letto giusto adesso) qualcosa del genere...
Consiglio simile a quello di Ugo (che non azzanno giusto per simpatia).
Sottolineo solo una cosa: Credo che InputBox (come MsgBox) non scateni
l'evento Deactivate e successivo Activate del form chiamante, per me
fondamentali (pur se gestiti adeguatamente).
Sono (siamo) capace di scrivere un form per l'input e persino anche uno per
un MsgBox più elegante ed elastico, non l'ho mai fatto proprio per quegli
eventi.
In sintesi, mi tengo il baco e anche le considerazioni su M$. (Sarei solo
curioso di sapere se in Net un simil-InputBox funziona..., giusto per capire
se l'allevamento di bachi è fra le priorità, e quindi il mantenimento, di
M$)

 solo curioso di sapere se in Net un simil-InputBox funziona...,
non ho guardato, non la uso mai. stasera, se mi ricordo, verifico.
--
Salutoni
Sergio

 si ho appena letto anche io. e il mvp è quello di un precedente flame...
Forse no... non lui. Non qui.

 Forse no... non lui. Non qui.
lui sě, qui no. sul ng di MS, a gbc che chiedeva come fare a risolvere un
problema che gli applicativi (piů che altro gli ocx) fatti in vb6 gli
creavano nello sviluppo di applicazioni in vb5, ha candidamente invitato gbc
a passare al vb6...
la logica č ancora quella...
--
Salutoni
Sergio

 ha scritto

gia'. e dalle loro risposte "m" in m.v.p. mi sa significhi mrsmith.vp
qui temo solo di essere a zion. mica per altro, ma mi rugherebbe un casino
essere un bug di msmatrix :)

[*Lupo*=
LupoOrmaiR...@libero.it
] ha scritto:
...
Soluzione (risolutiva per l'esempio fatto, sono in attesa di capire se è un
caso o cosa...)
di Gianluca Cannalire (MVP) in microsoft.public.it.vb (abbiate pazienza, ma
non se Google registra qual NG e quindi non ho modo di citare il link):
"Aggiungi, in fondo all'ultima riga del testo, un vbCrlF e fammi sapere se
risolvi..."
Funziona.

 Funziona
in lungo e in largo?
cioč: sia per le troppe righe che per quelle troppo lunghe?
Comunque onore al merito al mvp: questa mi sembra una buona risposta.
--
Salutoni
Sergio

 cioè: sia per le troppe righe che per quelle troppo lunghe?
Non ti capisco...
Diciamo che nell'esempio preciso fatto in questo (e in quel) topic,
funziona. Ho chiesto se c'è qualche spiegazione tecnica (tale da ipotizzare
che funzioni sempre) o ... se è un caso. Sono in attesa di eventuale
risposta.
Non ho fatto prove di "troppo" righe, ma mi pare che il limite possa essere
quello di un msgbox (1024?) oppure quello della Caption di una label. Non
saprei. Certo è molto di più di 255 caratteri massimi.

 la logica è ancora quella...
Sì, hai ragione, rammento.

 label. Non saprei. Certo è molto di più di 255 caratteri massimi.
La guida dice:
"La lunghezza massima di prompt è di circa 1024 caratteri e dipende dalla
larghezza dei caratteri utilizzati."

 Non ti capisco...
no, ero io che non avevo esattamente capito il problema.
--
Salutoni
Sergio

 se è un caso o cosa...) (snip)
come prevedevo... prova a raddoppiare la linea lunga...
--
Salutoni
Sergio

[*CSSoft*=
news...@cssoft2001.com
] ha scritto:

Ebbravo. Grazie ( pur con :-( )
Ok, diciamo che mi "accontento" nel senso che, generalmente, in un testo
"normale" qualche spazio c'è sempre fra un "a capo" e l'altro.
Però (ma che bastardata!!!) pare che funzioni aggiungendo un _doppio_ vbCrLf
in coda, insomma, uno per ogni riga "lunga"...
Nel caso specifico la "riga lunga" era un percorso e nome di un database,
senza spazi all'interno e, oltretutto, maiuscole che consumano maggiormente
in larghezza.
Quindi (ma, naturalmente, entro 3 minuti netti avrò la netta sensazione del
contrario...) posso ipotizzare che un caso del genere (non mi viene in mente
altro che percorsi e nomi di file), di una doppia riga senza spazi e lunga,
sia abbastanza raro.
In conclusione, diciamo che non mi strappo i capelli e non intervengo a
tappeto. Se proprio mi capiterà, provvederò al momento.
Grazie ancora.