View Full Version : [VB6]
The Magic
22-10-2004, 19:50
Vorrei sapere se è fattibile aggiungere degli oggetti (command button, textbox etc...) in un programma mentre lo stai eseguendo e soprattutto come fare!
P.S. Mi sapreste dire un sito dove trovare spiegazioni e codici per programmare in modo avanzato in VB6? Grazie in anticipo!
ringhio.net
03-11-2004, 15:05
per prima cosa devi inserire uno e dagli come proprietà
index=0
questo è il codice per un textbox
load textbox(1)
textbox(1).text=""
textbox(1).top=60
textbox(1).left=60
textbox(1).visible=true
se vuoi "eliminarlo"
unload textbox(1)
ricordati, ci deve essere sempre un textbox inziale.
The Magic
03-11-2004, 16:04
Grazie infinite!!!!!!! :) ;)
ringhio.net
04-11-2004, 09:18
prego.
se hai bisogno di altro, mandami pure e-mail.
sono felice di aiutarti.
ciao
The Magic
04-11-2004, 15:41
Grazie se ne dovessi avere bisogno lo faro!:) :D
ringhio.net
04-11-2004, 16:09
ok ciao
The Magic
04-11-2004, 18:39
Veramente un problemino mi si è formato:
Vorrei mettere in una variabile DATE una data composta da altre tre variabili (per giorno mese e anno) solo che se faccio cosi mi da errore:
data= #giorno/mese/anno#
l'errore è prevista espressione
Se ci metto tre cifre tutto ok
data = #12/6/2004#
Ho provato anche a metterci il valore di tre combobox ma niente...
Cosa mi consigli di fare?
Grazie
P.s. nel messaggio precedente mi avevi detto come creare per esempio piu oggetti, ma se per esempio tutti quelli che creo non mi stanno nel form(es. creo un text box in 4000x6000 e il form di grandezza mi arriva a 4000x5000 come faccio a scorrerlo senza ingrandirlo con le barre di scorrimento?
è in problema per te se i messaggi te li posto in questa discussione? Perchè qui mi trovo meglio!
Grazi ancora :)
ringhio.net
05-11-2004, 09:59
no problem posta pure qui
Allora, devi mettera in una variabile date la data.. fai così:
prova a fare così:
Dim d As Date 'data
Dim gg As String 'giorno
Dim mm As String ' mese
Dim yy As String 'anno
gg = 20
mm = 3
yy = 1984
d = gg & "/" & mm & "/" & yy
MsgBox d
la data sarà:
20/03/1984
Stai attento controlla il mese e il giorno sempre, se no ti da errore.
ringhio.net
05-11-2004, 10:22
problema due
per il textbox devi usare le barre di scorrimento, all'evento change della barra, devi spostare di l'altezza del textbox e nascondere gli altri
prova così:
'scrolla = vscroll
'3 è il numero di textbox da visualizzare puoi modificare
'a seconda di come vuoi tu
For i = 0 To textbox.Count - 1
textbox(i).Visible = False
Next i
i = 1
If scrolla.Value < 3Then
textbox(i).top=0
textbox(i).visible=false
For i = 1 To 3
textbox(i).Top = textbox(i-1).top+500
textbox(i).visible=true
Next i
Else
i = scrolla.Value - 3
textbox(i).top=500
textbox(i).visible=true
n = scrolla.Value
For i = scrolla.Value - 10 To n
textbox(i).Top = textbox(i-1).top+500
textbox(i).visible=true
Next i
End If
per poter andare a capo nel textbox devi usare la proprietà multiline e impostarla a true.
fammi sapere se funziona tutto.
ciao
The Magic
05-11-2004, 20:33
Il primo problema l'ho risolto, il secondo lo devo ancora guardare xchè sono appena tornato e sono anhce un po stanco...
Cmq ti devo ringraziare ancora! :) Non è che mi sapresti dirmi qualche sito che mi spieghi un po meglio VB (di quanto nn lo faccia il mio prof di laboratorio che nn ne ha proprio un'idea..... purtroppo :cry: :mad:) e che mi risolva problemi di questo tipo xchè mi scoccia disturbare qualcuno con queste banalita scolastiche!
Ciao!
ringhio.net
08-11-2004, 09:13
se fossero banalità non ti aiuterei mica!
cmq di siti non ne conosco.. quello che so è quello che ho imparato da solo.
The Magic
06-12-2004, 20:49
Ciao ti volevo chiedere una cosa, è concettualmente sbagliato salvere in un file (di qualsiasi tipo) il contenuto di un vettore o di una matrice?
(Te lo chiedo perche oggi la mia prof si è messa a fare un discorso lungo sul fatto che le matrici e i vettori sono troppo piccoli sul per contenere tutto il contenuto di e file e che potrebbe superare il numero di righe massime che puo avere una matrice o vettore.
Anche se per me se utilizzi una matrice per salvare dei dati quando la vai a ricaricare poi utilizzi sempre quella, e mi sembra difficile dover utilizzare piu di 32000 e rotte colonne anche perchè chi le deve caricare tutte si spara a meno che nn sia la macchina tramite un cilco)
Volevo sapere anche la tua opinione Grazie!
ringhio.net
07-12-2004, 09:17
E' concettualmente sbagliato... solo perchè il file serve per sostituire le matrici e i vettori.
Infatti a pensarci bene... nel file puoi mettere una infinità di valori, mentre nel vettore devi assolutemente indicare qual è la grandezza del vettore stesso.
Altra cosa... i dati del vettore verrano persi alla chiusura del programma, mentre nel file i dati saranno reperibili in ogni momento.
Ricorda i professori sanno la base dell'informatica... spetta a noi costruire su quella base.
E io sono qui ad aiutarti.
Un saluto.. ciao!
The Magic
07-12-2004, 21:04
Grazie della risposta!
Cmq mi ha sorpreso tantissimo la cosa perchè io prima che li spiegassere a scuola li ho sempre utilizzati cosi, cioè prima l'utente esegue le sue operazione e vengono salvate in memoria centrale poi eventualemte se dovesse decidere di salvarle lo poù fare in un secondo momento (le infrmazioni chiaramente venivano prese dalla memoria centrale).
Quindi anche tutti gli atlri programmi che hanno la necessita a lavoro finito di salvare dei dati li salvano mano mano che vengono inseriti? Ma se per caso gli stessi dati salvati dovessere essere riutilizzati non sarebbe pui lento l'accesso alla memoria di massa?
Non è che riusciresti per caso a farmi un esempio di programmi che al posto di vettori e matrici usano dei file collocati nell'hard-disk per salvare dati ineriti dall'utente (e come avviene il loro funzionamento)? Anche perchè io mi ero fatto trarre in inganno da word,excel etc... che alla fine mi chiedevano di salvare o cmq io a lavoro finito lo facevo
P.S. mi riferisco sempre a stringe di testo, numeri da salvare, perchè gli oggetti non c'ho mai provato e non so neanche come si faccia.
Grazie!
ringhio.net
09-12-2004, 09:14
Ciao, di programmi non ne conosco... cmq ti posso fare un esempio.
Come fai ad ordinare 10 numeri dal minore al maggiore?
Fai conto che questi numeri sono contenuti in un file e sono in numero sparso.
In questo caso... è comodo il vettore, perchè?
Semplice, perchè per fare la scansione nel vettore puoi fare un ciclo che va da zero a 10.
Un' altra cosa.. se devi salvare dei dati di vari tipi.. string, integer.. per poi salvarli.... tienili nelle variabili "normali" a che serve usare un vettore?
Ovvio se devi tenere diversi tipi di dato... non faccio obbiezione.
Fammi un esempio di programma che necessita di tenere in mente i dati.
Ciao
The Magic
10-12-2004, 15:20
Mha.... un esempio di programma che necessita di tenere in mente i dati faccio fatica a fartelo, è solo piu comodo per chi programma (o almeno per me) gestire dati in un vettore che in un file.
Cmq adesso mi è molto piu chiaro il concetto grazie ancora!
ringhio.net
11-12-2004, 10:11
Prego...
cmq sia... la scelta dipende dal programmatore e dalle esigenze del programma.
The Magic
13-12-2004, 15:50
Mi è sorto un piccolo problemino con text box, praticamente non riesco ad allineare i dati che metto al suo interno ( presi per esempio dai record di un file, anche se al suo interno sono allineati!)
Ti invio un progettino elentare per capire bene il problema!
ringhio.net
13-12-2004, 17:48
Ho capito... hai provato ad usare il controllo list box?
The Magic
14-12-2004, 19:03
Si ma mi fa la stessa cosa.... forse devo usare meglio la proprieta columns anche xchè ho visto che cosa cambia ma purtroppo il mio libro non spiega come usarla bene :cry:
ringhio.net
15-12-2004, 09:33
Puoi provare a fare delle righe di uguale lunghezza.
E' un gran casino.. ma si puo' fare.
In alternativa.. puoi usare il controllo MSFlexGrid. Ti crea una tabella tipo excel.
L'unica cosa è che non puoi scrivere nelle varie cella manualmente come fai per i textbox.
Provo a studiare meglio il tuo problema...
Ciao buona giornata.
The Magic
15-12-2004, 13:38
Ah è vero... la flexgrid.... c'era il mio prof che mi ha scassato l'anima per quell'oggetto.... Cmq se hai visto nel progetto ho usato tutte variabili di lunghezza fissa, infatti aprendo il file salvato questo vi vede solo che poi nel text... fa delle storie...
Va be grazie cmq e non ti stare a preoccupare... magari un modo lo troverò..... ;)
Ciao!
ringhio.net
15-12-2004, 14:57
stasera, quando sn a casa... provo!
E che cavolo ci sarà un modo!
The Magic
17-12-2004, 19:11
Ho un altro problemino con file.... :D (scusami ma quste cose il libro non le spiega proprio)... Praticamente con questa istruzione riesco a visualizzare uno per uno i record in un file sequenziale:
if Not EOF(1) Then
Input #1, vcognome, vnome, vcomune
txtcognome.Text = vcognome
txtnome.Text = vnome
txtcomune.Text = vcomune
End If
Ma quando sono arrivato alla fine come faccio per tornare all'inizio?
Grazie ancora
ringhio.net
20-12-2004, 09:32
Ciao, allora...
Se usi un file random... puoi andare direttamente all'inzio del file.. con l'istruzione seek, non so se funziona col file sequenziale (che è quello che usi tu).
Cmq se chiudi e riapri il file sei a posto.
The Magic
20-12-2004, 11:46
Grazie ancora!
ringhio.net
20-12-2004, 12:08
prego, ma ha funzionato?
The Magic
20-12-2004, 12:32
Mi ha funzionato chiudendo e riaprendo il file... l'istruzione seek mi da solo la posizione in cui è la testina è!
Grazie ancora!
The Magic
20-12-2004, 12:40
Ti volevo porre un altro quesito che da tempo non riesco a risolvere visto che nel mio libro non ne parla neanche, e cercando di trarre spundo da progetti scaricate da internet non mi funziona niente... Praticamete vorrei aggiungere sul form (o almeno utilizzare) oggetti di altri programmi come per esempio fogli di excel o tebelle di access!
So che bisognerebbe utilizzare le classi ma... ancora faccio fatica ad usarle...
Se il tutto di dovesse risultare molto lungo da spiegae fai pure con calma io non ho fretta (anche perchè in questi giorni di domande te ne ho fatte forse troppe :D )
Grazie ancora e ciao!
ringhio.net
20-12-2004, 13:39
troppe?????
chiedi pure... se no che ci sono a fare?
Cmq... non ho mai provato ad usare gli oggetti di altri software.. e non ci penso nemmeno a farlo.
Preferisco "copiare" gli stessi oggetti.... in modo tale da imparare e capire come hanno fatto a creare quell'oggetto,
Detto questo... questa volta non ti posso aiutare.
Perdonami
The Magic
20-12-2004, 14:04
Si credo tu abbia ragione, forse è meglio capire come come si crea un oggetto piuttosto che importarlo pari pari.... si usa di piu la testa! :) (Magari lo si migliora anche! :D )
ringhio.net
23-12-2004, 14:54
Bravo... cmq.. siamo quasi a natale
Auguri!
Buone vacanze!
The Magic
23-12-2004, 18:19
Auguri di buone vacanze anche a te!
Ciao!
ragazzi ho un problema con visual basic. Allora: ho provato a creare una calcolatrice simile a quella di windows xp, utilizzando per i numeri dei command button. E visualizzando il risultato in una label.Il problema è che non riesco a far visualizzare nella label + di un risultato a pressione di command button.
Es: premo sul cmd 1 e nella label compare 1; se premo il cmd 2 il numero 1 scompare sostituito dal 2. Io vorrei che nella label comparissero quanti numeri voglia l'operatore
http://img155.exs.cx/img155/5453/immagine1zn.jpg
no così
http://img155.exs.cx/img155/9350/immagine24pq.jpg
ma così
The Magic
24-12-2004, 20:15
Forse ti posso aiutare io... praticamente nel text ci deve aggiungere il valore e non modificarlo... quindi:
Text(del risultato)=Text(del risultato)+ "2" o qualisiasi altro numero (i numeri vanno tra apici perchè non si possono sommare dati alfanumerici contenuti nel text a dei dati numerici quindi è necessario trasformare quel 2 da numero a cifra)
Cmq stai attento perchè poi quando dovrai operare con i dati inseriti li dovrai portare da valori alfanumerici (presenti nel text) a valori numerici attraverso l'operatore val. Sta attento quindi a non mettere dati alfanumerici in delle variabili numeriche perchè se no ti da errore!
Spero di essere stato esauriente... poi eventualmete ti spieghera tutto meglio ringhio... che ne sa molte piu di me! :D
Ciao e buon natale anche anche a te!
ringhio.net
25-12-2004, 01:06
ok... è giusto quello che hai scritto.
L'unica cosa è che.. quando concateni due o piu' stringhe, devi farlo in questo modo.
stringa=stringa1 & stringa2
nel "problema" della calcolatrice devi stare attento a mettere la stringa vecchia dopo il numero:
fai in questo modo
lblNumero.caption="1" & lblNumero.caption
Cmq... complimenti magic.. fra un po' supererai il maestro.
A presto ciao
The Magic
25-12-2004, 10:10
Si è vero è meglio concatenare delle stringhe piuttosto che sommarle... Cmq sei siucuro di questo:
lblNumero.caption="1" & lblNumero.caption
non è il contrario?
lblNumero.caption= lblNumero.caption & "1"
in questo modo l'1 si accoda mentre come avevi fatto tu diventa il primo.... Non vorrei sbagliarmi pero....
Visto che è la mattina di natale.... BUON NATALE A TUTTI!
Fenomeno85
25-12-2004, 10:14
quando volete mettere dei numeri in un text box potete anche fare così: str(numero)
Buon Natale :)
~§~ Sempre E Solo Lei ~§~
ringhio.net
28-12-2004, 14:31
per magic...
è giusto quello che dici.. però... se guardi la calcolatrice... fa proprio in questo modo. sei libero di fare quello che vuoi.
fate attenzione alla funzione str(numero)
combina dei pasticci.
Fenomeno85
28-12-2004, 20:47
Originariamente inviato da ringhio.net
per magic...
è giusto quello che dici.. però... se guardi la calcolatrice... fa proprio in questo modo. sei libero di fare quello che vuoi.
fate attenzione alla funzione str(numero)
combina dei pasticci.
quali? mai successo nulla :mbe:
~§~ Sempre E Solo Lei ~§~
ringhio.net
29-12-2004, 10:43
Quando userai i database... lo saprai!
Fenomeno85
29-12-2004, 10:55
Originariamente inviato da ringhio.net
Quando userai i database... lo saprai!
dici a me? usati e mai nussun problema.
~§~ Sempre E Solo Lei ~§~
Fenomeno85
29-12-2004, 10:55
Originariamente inviato da ringhio.net
Quando userai i database... lo saprai!
dici a me? usati e mai nussun problema.
~§~ Sempre E Solo Lei ~§~
ringhio.net
29-12-2004, 12:56
fai attenzione lo stesso... fidati... ho una certa esperienza
Ok problema risolto. I numeri, ora, vengono visualizzati in sequenza:winner:
http://img130.exs.cx/img130/4481/immagine7pv.jpg
Purtroppo ho incontrato un altro ostacolo! :muro: :muro: Vi spiego. Con i cmd +;-;x;/ dovevo far sommare o sottrarre; ecc, un numero con l'altro. Pensavo di poterci riuscire facendo in questo modo:
http://img130.exs.cx/img130/3241/immagine29hx.jpg
Ma l'esito è negativo! COme potrei risolvere?
The Magic
06-01-2005, 14:56
Provo ad aiutarti io... allora facendo:
A=val(cmduno.caption)
b=val(cmddue.caption)
e poi sommarli non fai altro che sommare 1 a 2 perchè è il testo contenuto nel pulsate 1 e 2...
Quindi dovrai fare:
Private Sub Command1_Click()
App = Val(Text1.Text)
Text1.Text = a + b
risultato = Val(Text1.Text)
Text1.Text = 0
End Sub
Private Sub Form_Load()
App = 0
risultato = 0
End Sub
Naturalmete poi le 2 variabili saranno da azzerare con gli appositi comandi, devi stare attento anche a non dividere per 0, perchè altrimenti VB impazzisce a ti da errore.
Hai 2 soluzione o gestisci l'errore oppure controlli che la varibile d'appoggio dopo il primo inserimento non possa mai essere uguale a 0, usando un apposito contatore da azzerare ogni volta, ma questa è un strada che a me non piace... io ti consiglio di gestire l'errore e magari farti dare come risultato infinito, oppure ti fai dire "impossibile diviere per zero" cose di questo tipo, poi vedi tu.
Leggendo il tuo codice ho visto che hai utilizzato dei controlli di matrici... non so se sia voluto o hai semplicemente copiato i pulsati... ma ti consiglio vivamente di evitare di usarli a meno che non ti servano... (poi magari li sai usare anche meglio di me :D )
Un ultimissima cosa... l'oggetto dove vengono visualizzati i numeri è una label o un textbox?
P.s
Come si fa ad aggiungere delle immagini ad un post?
Spero di non aver commesso errori... Ci vediamo ciao!
The Magic
07-01-2005, 21:43
Adesso un problemino ce l'avrei io.... :D
Praticamente stavo provando ad usare le tecniche di drag & drop... Allora mi è balzato per la testa " perchè non proviamo a fare una bella battaglia navale?"
Per il momento so solo che bisogna impostare la proprieta dragmode da manual ad automatic e che per generare un evento quando si alzaun oggetto bisogna usare la routin dragover, e per generare un evento di un oggetto sul quale viene rilasciato un altro oggetto bisogna utilizzare la routin dragdrop...
Detto questo ho pensato di dare ad una varibile un valore a seconda dell'oggetto che si alza e poi controllare nell'oggetto su cui è stato possizzionato quello di partenza quale oggetto è stato spostato e quindi posizionarglielo sopra...
Fin qui mi sembrava semplice... solo che quando lo sono andato a farlo è venuto un gran copia->incolla di codice... di pagine e pagine di codice praticamente identico... il tutto mi è sembrato assurdo... non è che esiste un modo piu veloce e meno dispendioso per fare la stessa cosa?
Nel caso non aveste capito bene quello che ho fatto vi lascio allegato il mio progetto ( Il lavoro sopra indicato è stato fatto solo per un textbox... per gli altri mi sembrava superfuo per il momento. Non trovando delle barchette ho dovuto usare la prima cosa che mi è capitata fra le mani... :D )
P.s. se la risposta fosse banalissima o bastasse utilizzare la "testa"... magari datemi solo un aiutino... Grazie!
Originariamente inviato da The Magic
Provo ad aiutarti io... allora facendo:
A=val(cmduno.caption)
b=val(cmddue.caption)
e poi sommarli non fai altro che sommare 1 a 2 perchè è il testo contenuto nel pulsate 1 e 2...
Quindi dovrai fare:
Private Sub Command1_Click()
App = Val(Text1.Text)
Text1.Text = a + b
risultato = Val(Text1.Text)
Text1.Text = 0
End Sub
Private Sub Form_Load()
App = 0
risultato = 0
End Sub
Naturalmete poi le 2 variabili saranno da azzerare con gli appositi comandi, devi stare attento anche a non dividere per 0, perchè altrimenti VB impazzisce a ti da errore.
Hai 2 soluzione o gestisci l'errore oppure controlli che la varibile d'appoggio dopo il primo inserimento non possa mai essere uguale a 0, usando un apposito contatore da azzerare ogni volta, ma questa è un strada che a me non piace... io ti consiglio di gestire l'errore e magari farti dare come risultato infinito, oppure ti fai dire "impossibile diviere per zero" cose di questo tipo, poi vedi tu.
Leggendo il tuo codice ho visto che hai utilizzato dei controlli di matrici... non so se sia voluto o hai semplicemente copiato i pulsati... ma ti consiglio vivamente di evitare di usarli a meno che non ti servano... (poi magari li sai usare anche meglio di me :D )
Un ultimissima cosa... l'oggetto dove vengono visualizzati i numeri è una label o un textbox?
P.s
Come si fa ad aggiungere delle immagini ad un post?
Spero di non aver commesso errori... Ci vediamo ciao!
1)l'oggetto dove vengono visualizzati i numeri è una label
2)Per uppare le immagini vai qui (http://www.imageshack.us/): è gratuito
3)come faccio a dare questo comando:
Private Sub Command1_Click()
App = Val(Text1.Text)
Text1.Text = a + b
risultato = Val(Text1.Text)
Text1.Text = 0
End Sub
se devo operare con soli cmdbutton?Per quanto ne so, il comando text, non è presente nei cmd button:confused:
Forse ho capito male io?
The Magic
09-01-2005, 11:33
Originariamente inviato da Haku
3)come faccio a dare questo comando:
Private Sub Command1_Click()
App = Val(Text1.Text)
Text1.Text = a + b
risultato = Val(Text1.Text)
Text1.Text = 0
End Sub
se devo operare con soli cmdbutton?Per quanto ne so, il comando text, non è presente nei cmd button:confused:
Forse ho capito male io?
Devi Mettere quel codice nel cmdsomma al posto di quello che avevi scritto tu, e cmq visto che stai usando una label e non un textbox al posto di text1.text ci metti il nome della label e la sua proprieta.
Mi sono accorto di aver copito un codice sbagliato :muro: scusami... questo è quello giusto:
app = Val(Text1.Text)
Text1.Text = app + risultato
risultato = Val(Text1.Text)
Quello non so da dove scappasse fuori :D :D :D
Ricordati di dichiarare le varibili a livello di modulo.
Io però non ho capito cosa mi vuoi dire con questo: "Per quanto ne so, il comando text, non è presente nei cmd button"
Poi dimmi se ti funzia tutto! Grazie per il link Ciao!
Così?
A = Val(lblrisultato.Caption)
lblrisultato.Caption = A + risultato
risultato = Val(lblrisultato.Caption)
The Magic
09-01-2005, 17:54
Si proprio cosi... ti funzia?
No!:muro: :muro:
http://img140.exs.cx/img140/8222/immagine8zo.jpg
The Magic
09-01-2005, 19:40
Strano da me funzionava... Mi sapresti dire che problema ti da? Cmq le variabili le hai dichiarate a livello di modulo e numeriche?
C'è anche un altra piccola imperfezione... nel comando azzera oltre a cancellare il contenuto della label devi azzerare anche le variabili.
Le variabili sono sia a livello di modulo che a livello numerico
Il problema è che nonostante io abbia scritto il codice, il cmd(+) non da segni di vita!
ringhio.net
10-01-2005, 09:20
SEMPLICE:
OPTION EXPLICIT
dim risultato as single 'conterrà l'ultimo risultato
'IL CMD(+) DEVE AVERE QUESTO CODICE
sub cmdplus_click
dim n as single
n=txtrisultato.text
risultato=risultato+n
txtrisultato.text=risultato
end sub
'.......provate!!
The Magic
10-01-2005, 14:06
Si è piu o meno come avevo fatto io... però mi funzionava tranquillamente... strano pero che non ti dia segni di vita... controlla che il nome della routin sia uguale a quella dell'ogetto... è l'unica cosa che mi viene in mente, perchè anche se sbagliato ti dovrebbe fare qualche cosa o darti un errore.
Ringhio un problemino nel frattempo ce l'avrei anche io :D :
Originariamente inviato da The Magic
Adesso un problemino ce l'avrei io.... :D
Praticamente stavo provando ad usare le tecniche di drag & drop... Allora mi è balzato per la testa " perchè non proviamo a fare una bella battaglia navale?"
Per il momento so solo che bisogna impostare la proprieta dragmode da manual ad automatic e che per generare un evento quando si alzaun oggetto bisogna usare la routin dragover, e per generare un evento di un oggetto sul quale viene rilasciato un altro oggetto bisogna utilizzare la routin dragdrop...
Detto questo ho pensato di dare ad una varibile un valore a seconda dell'oggetto che si alza e poi controllare nell'oggetto su cui è stato possizzionato quello di partenza quale oggetto è stato spostato e quindi posizionarglielo sopra...
Fin qui mi sembrava semplice... solo che quando lo sono andato a farlo è venuto un gran copia->incolla di codice... di pagine e pagine di codice praticamente identico... il tutto mi è sembrato assurdo... non è che esiste un modo piu veloce e meno dispendioso per fare la stessa cosa?
Nel caso non aveste capito bene quello che ho fatto vi lascio allegato il mio progetto ( Il lavoro sopra indicato è stato fatto solo per un textbox... per gli altri mi sembrava superfuo per il momento. Non trovando delle barchette ho dovuto usare la prima cosa che mi è capitata fra le mani... :D )
P.s. se la risposta fosse banalissima o bastasse utilizzare la "testa"... magari datemi solo un aiutino... Grazie!
ringhio.net
10-01-2005, 14:18
ok, provo a guardare il progetto e ti rispondo.
Originariamente inviato da ringhio.net
SEMPLICE:
OPTION EXPLICIT
dim risultato as single 'conterrà l'ultimo risultato
'IL CMD(+) DEVE AVERE QUESTO CODICE
sub cmdplus_click
dim n as single
n=txtrisultato.text
risultato=risultato+n
txtrisultato.text=risultato
end sub
'.......provate!!
Ho provato!!!!!Ma Niente
Non so proprio dove sbattere la testa:muro: :muro: :muro:
Questo potrebbe centrare qualcosa?
http://img33.exs.cx/img33/4456/immagine9ir.jpg
Il mettere lblrisultato.caption & "2"?
The Magic
10-01-2005, 14:50
Non credo... prova ad allegare il programma che magari ci diamo un occhiata!
ringhio.net
10-01-2005, 15:46
parole sante!
dai haku, fai così...
The Magic
11-01-2005, 16:18
C'è una proprietà del form che faccia in modo che non possa essere ridimensionato dall'untente?
ringhio.net
11-01-2005, 17:04
no, lo devi costruire tu.
prova... non è difficile
The Magic
11-01-2005, 19:53
Originariamente inviato da ringhio.net
no, lo devi costruire tu.
prova... non è difficile
Scusami ma non ho capito a che cosa ti riferisci se alla proprietà del form oppure alla battaglia navale.
ringhio.net
12-01-2005, 09:17
scusa, hai ragione.
mi riferivo alla proprietà del form.
Cmq è semplice, vai nell'evento resize e fai un controllo sulla proprietà width e sulla proprietà height.
Fai pero' in modo tale che il form si possa ridurre a icona.
Prova.. fammi sapere... se proprio non riesci ti darò il codice, ma so che sei bravo.... buon lavoro!
The Magic
12-01-2005, 16:30
Inizialmente io l'avevo pensata cosi:
Private Sub Form_Resize()
If Main.Height = 5565 or Main.Width = 7530 Then
Exit Sub
Else
Main.Height = 5565
Main.Width = 7530
End If
End Sub
Ma mi dava errore... poi ho controllato la librerie e mi ha detto di mettere windowstate =1 o a 2 a seconda se ridotto ad icona oppure ingrandito quindi dopo il risultato è stato questo:
Private Sub Form_Resize()
If (Main.WindowState = 1 Or Main.WindowState = 2) Then
Exit Sub
Else
Main.Height = 5565
Main.Width = 7530
End If
End Sub
Il ragionamento l'ho fatto tutto da solo... ma quella proprietà proprio non la conoscevo.
Dai oggi ho scoperto come utilizzare un evento in più di un form... dai non c'è male considerando che adesso siamo a 3 e che ce ne sono solo altre 28 da imparare! :D :D :D
Ci vediamo e grazie ancora!!!!
ringhio.net
12-01-2005, 16:50
BRAVO!
IO FACCIO IN UN ALTRO MODO
MA SEI STATO VERAMENTE BRAVO
The Magic
12-01-2005, 19:57
Cosi per curiosità tu come fai?
ringhio.net
13-01-2005, 09:30
ciao, è simile al tuo modo:
prima di tutto imposto la proprietà maxButton della form a false
'Questo è il codice che uso
Private Sub Form_Resize()
If Form1.Width = 4800 Or Form1.Width = 2400 Then
Else
Form1.Width = 4800
End If
If Form1.Height = 3600 Or Form1.Height = 465 Then
Else
Form1.Height = 3600
End If
End Sub
The Magic
13-01-2005, 09:57
Si è vero ora che mi ci fai pensare quell'exit sub dopo il then non ha molto senso. Mi sembra strano però, che il primo condice da me usato mi dia errore anche se è ugual al tuo... o sbaglio?
ringhio.net
13-01-2005, 10:26
sì è vero, è simile.
mi sembra strano pure a me. Lo proverò.
The Magic
13-01-2005, 20:04
Ciao ringhio... scusami se ti disturbo ancora, ma su un post di questo forum ho trovato:
per vedere se esiste il file usi questo:
code:--------------------------------------------------------------------------------
Public Function FileExists(sFullPath As String) As Boolean
Dim oFile As New Scripting.FileSystemObject
FileExists = oFile.FileExists(sFullPath)
End Function
--------------------------------------------------------------------------------
ti dico i passi:
1) nel form load metti il richiamo alla funzione che ti ho postato;
2) se ti da esito positivo leggi il file ed estrai i dati
3) se è il contrario non fai una cippa.
Le queste function in visual basic non le avevo mai viste... ho cercato nel mio libro e su internet ma non ho trovato gran che... e sinceramente non so neanche come utilizzarla...
Io per vedere se un file esiste avevo pensato ad una cosa più intuitiva, faccio aprire con un input il file e se non c'è gestisco l'errore altrimenti lo chiudo.
(Subito mi era venuto in mente di aprirlo con la append, cosi se non c'è lo crea, ma la prof mi ha detto che è melgio di no perchè altri programmi mi potrebbero dare errore)
Mi potresti spiegare brevemente che cos'è e come funziona questa function e quale dei tre metodi è migliore per verificare la presenza di un file?
Grazie e ciao!!!!
ringhio.net
14-01-2005, 09:26
ciao, questa funzione la uso in vb.net.
in vb6, faccio come fai te.
Uso l'append per il file sequenziali e il random per i file random, poi con la funzione LOF controllo la grandezza, se LOF uguale a Zero il file è stato creato se LOF > 0, il file esisteva gia'.
Spero di essere stato chiaro.
Fatti dire dalla tua prof, che errori puo' dare. A me non me ne ha mai dati.:D
The Magic
14-01-2005, 13:06
No diceva che con altri programmi potrebbe dare errore come la input... Ma neanche io non ho capito perchè si faccia tanti problemi...:confused:
Grazie ancora e ciao!!!!
ringhio.net
14-01-2005, 13:47
PREGO, SI OVVIO CON LA INPUT TI DARA' ERRORE PERCHE' CON LA INPUT CI DEVE ESSERE IL FILE GIA' ESISTENTE.
CIAO
The Magic
16-01-2005, 18:45
La funzione LOF mi restituisce un valore in byte... per che cosa divido quel valore o cmq come faccio ad ottenere il numero dei record presenti nel file? (mi serve come numero di partenza per il contatore)
Grazie!
The Magic
16-01-2005, 20:06
No ninete scusami ho risolto da solo!
ringhio.net
17-01-2005, 09:26
Ciao, scusa se ti rispondo solo ora.
Posso sapere come hai fatto a risolvere?
The Magic
17-01-2005, 12:04
Ho ragionato cosi:
Mi sono accorto che dividendo la lunghezza in byte per il numero di record inseriti mi dava sempre
come risultato 0.0140 etc... così prendo il valore in byte, lo moltiplico per 0.014, ci tolgo la parte decimale
e ci aggiungo 1.
Ciao!!!!!!!!!!
ringhio.net
17-01-2005, 12:15
Ok, va bene.
Zagor HW
19-01-2005, 15:09
Ciao ringhio sono sempre io magic, ho dovuto cambiare accaunt, d'ora in poi userò questo! E visto che ci sono ti volevo sottoporre un altro problemino :D
Praticamente mi sto cimentando con la stampa e il metodo print, in particolare per rendere bella una stampa con le tabulazioni.
Fin quando si tratta di usare la proprietà tab(numero colonna) per le tabulazioni a sinistra niente problemi... ma quando devo fare la tabulazione a destra... mi nascono dei casini.
Il libro mi suggerisce di usare la proprietà spc(num spazi) che mi consente di mettere gli spazi desiderati dopo l'ultimo carattere stampato, io ho ragionato così:
Dico che dall'inizio dell'ultima parola stampata alla prossima cifra da stampare ci siano 15 spazi, quindi per calcolare quanti spazi ci devo aggiungere dall'ultimo carattere stampato faccio 15 - la lunghezza della parola precedente.
Anche se il mio libro termina qui secondo me è sbagliato perchè cosi si allinea a sinistra, quindi per farlo a destra devo togliere al valore ottenuto la lunghezza della cifra da stampare.
Facendo le dovute prove matematiche il ragionamento fila... solo che quando provo a farlo in VB le cifre non sono allineate... e non sono proprio come fare... non è che potresti darmi una mano? Grazie
(Ti allego il progetto per maggior chiarezza)
Zagor HW
19-01-2005, 16:46
Originariamente inviato da Zagor HW
(Ti allego il progetto per maggior chiarezza)
ringhio.net
19-01-2005, 17:38
Ciao, ti posso chiedere una cosa?
mi mandi i progetti... via mail?
Te le chiedo perchè non avendo tempo... puo' essere che mi dimentichi di aiutarti.
Se me li mandi via mail.. sicuramente mi ricorderò di guardarli.
Grazie
Ciao
Zagor HW
19-01-2005, 20:06
Ok non c'è problema solo che mandandoti un e-mail dal forum non riesco ad allegarti il file, non è che mi potresti dare la tua e-mail?
Però se dovessi avere dei problemi fa pure con calma... io non ho fretta, e poi è molto più importante il tuo lavoro!
Ciao e Grazie!!!!!
ragazzi ke voi sappiate, è possibile creare un programma e renderlo eseguibile?cioè, farlo girare su un combiuter senza ke ci sia installato VB?e se si,mi potreste dire come fare?
ringhio.net
20-01-2005, 09:06
Per Zagor HW
la mia mail è
[email protected] .
Non ti preoccupare per il mio lavoro...è un piacere aiutarti.
Per jo.
Per rendere eseguibile un programma fatto con vb, devi
aprire il progetto, poi File--->Crea progetto1.exe.
Scegli la destinazione dove crearlo. E clicca su ok.
Al posto di progetto1 potresti trovare il nome del progetto, cioè se il progetto lo ha chiamato prova, troverai
Crea prova.exe
Spero di essere stato chiaro.
ok,ora c provo!grazie mille
ringhio.net
21-01-2005, 09:03
Ok, se hai altri problemi.. chiedi pure.
ciao
Zagor HW
24-01-2005, 15:13
L'allineamento a destra l'ho risolo.... ma quanto ho dovuto patire... per 2 settimane ho vuoluto ragionare come il mio libro... ma non c'è stato verso... tutto tempo sprecato... poi ho ragionato un attimo da solo e bum in 2 secondi ho risolto...
Era anche piu semplice di quello che pensassi basta va fare Tab(colonna - lunghezza cifra)
Io ti saluto Ciao!!!!!!
ringhio.net
24-01-2005, 16:04
Bravo... vedo che stai imparando.
Zagor HW
24-01-2005, 18:59
Sai che forse ho capito anche il perchè... Forse visto che la funzione spc mette degli spazi dopo l'ultima cifra probabilmente lo spazio occupato dalle lettere varia e quindi mettendo degli spazi ci sono comunque delle differenze di posizione da stringa a stringa... mentre invece col tab la colonna inizia al tal spazio qualunque stringa ci sia prima....
(questo spiegherebbe anche il fatto che il contenuto delle variabili messe in un textbox non risultino mai allineate anche se hanno la stessa lunghezza) Può essere?
Spero di essermi spiegato correttamente... Ciao!!!!!!
ringhio.net
25-01-2005, 10:07
ho capito... sì penso di sì. puo' essere.
Ragazzi si possono realizzare delle presentazioni con vb?Per es prima di accedere al programma una piccola presentazione anche con musica per illustrare il contenuto?
Zagor HW
04-02-2005, 15:01
Naturalmente... Utilizzi un altro form per la presentazione e fai partire l'applicazione da quel form. Per l'audio usi un controllo OLE. Per far partire in automaito l'audio nella routin form load utilizza il metodo DoVerb... Mon so come fermare l'audio utilizzando il codice di VB... :D :D :D Magari ringhio quando vede il post ci illuminerà! ;) ;)
Ciao!
Potresti spiegarmelo un po' più nel dettaglio, la parte sul form
E un'altra domanda: come faccio ad inserire un testo di grosse dimensioni(parecchie righe) in una label?
Zagor HW
04-02-2005, 19:22
Allora per inserire un altro form vai in PROGETTO--->INSERISCI FORM---> FORM
Poi vai in PROGETTO--->PROPRIETA' FORM1--->OGGETTO DI AVVIO ci metti il nome del form in cui farai la presentazione
Per passare poi al form di lavoro poi mettere un pulsante usando questo codice
Unload form con presentazione
Forma da caricare.Show
Il metodo .show fa apparire il form caricandolo in memoria, esiste anche il metodo .hide che nasconde il form MA NON LO SCARICA DALLA MEMORIA! Per farlo ti servire il la proprietà unload (usata come sopra),che nasconderà ovviamente anche il form.
Ti consiglio di fare la stessa cosa anche nella routin form_unload!
Per la label basta che metti il metodo .autosize = true e la label si adatterà al testo inserito. Per formattare il testo vai in font nella finestra delle proprietà dell'oggetto e lo fai dal di lì.
Spero di essere stato esauriente! CIAO!
P.S. http://programmazione.html.it/ qui c'è una buona guida su molti linguaggi di programmazione... forse ti può essre utile!
Col form ho risolto ma avrei bisogno di altri consigli:
-riguardo al suono sono riuscito ad immettere un wave, che inizia
entrato nel form del programma.Ora: vorrei che il suono sia ripetuto all'infinito posso?Se si come? è possibile immettere mp3?
-riguardo alla label non ho ancora risolto:muro: Cerco di spiegarmi meglio:
http://img228.exs.cx/img228/1833/immagine13rs.jpg
http://img228.exs.cx/img228/1690/immagine23oh.jpg
Dalla prima img si vede la label all'interno di una shape: quello e lo spazio in cui dovra stare il testo. Io ho fatto così: lblracconto.caption="e qui ho incollato tutto il racconto"
Il problema è che mi da un errore e che non mi fa inserire tutto il testo che vorrei!Come posso fare?
Zagor HW
05-02-2005, 09:17
Per farlo ripetere all'infinito basta che metti un timer, imposti la proprietà interval con qualche secondo in più rispetto al wave e poi nella sua routin fai:
Private Sub Timer1_Timer()
OLe1.DoVerb
Timer1.Interval = 6000
End Sub
ricordati che 1000 è come dire 1 secondo!
Con gli mp3 da me parte il programmino per sentirli... poi non lo so come fa da te.
Per la label... non so cosa dirti... non mi è mai capitato che mi desse un errore per il troppo testo inserito... forse ha dei limiti ma non sono sicuro. Prova a metterci un textbox attivando la proprietà multiline e metti scrollbar = vertical
Dalla seconda immagine che hai inserito su vede anche che solo una parte di testo è fra apici l'altra no... poi non so se sia quello problema, cmq se alleghi il programma magari ci d'ho un'occhiata.
Ciao!
Ragazzi un consiglio.Allora questo è il problema:elaborare un programma che calcoli l'importo della bolletta telefonica di un utente. L'utente può scegliere fra due tariffe:A costo fisso di 25€ e costo per scatto di 0,25€;B costo fisso di 18€ e costo per scatto di 0,40€. L'utente può inoltre noleggiare un apparecchio telefonico per 5,00€.Dopo aver richiesto il nominato , n° telefono, n° scatti attuali e precedenti provvedere al calcolo della bolletta aggiungendo l'iva del 20%. Allora io il codice sul cmdesegui l'ho scritto in questo modo:
http://img90.exs.cx/img90/3369/immagine7jt.jpg
Secondo voi c'è qualcosa di sbagliato??
Zagor HW
17-02-2005, 15:56
Si io lo correggerei cosi:
http://img235.exs.cx/img235/4992/immagine7jt0jd.jpg
Cmq per il resto va bene
Ciao
ora io non capisco: la mia prof. di info mi ha detto che è completamente sbagliato e mi ha costretto a sostituirlo con questo:
http://img226.exs.cx/img226/6646/immagine8mb.jpg
Ora ditemi: cosa cambia apparte l'ordine? Cioè il suo sporco lavoro è sempre quello no?
Zagor HW
17-02-2005, 17:46
Si fa la stessa cosa se corretto... forse nn voleva che utilizzassi quegli elseif che hai usato sopra che erano superflui bastava un else normale, cmq anche a me capita spesso di usare la strada + complicata e + intricata x fare una cosa e poi professori escono sempre con un: "funzione ma è sbagliato concettualmente..."
e io ormai nn ne posso più!
Magari fatti spiegare il xchè è completamente sbagliato che interessa anche me!
Ciao!!!
Domani lo farò! Ma non capisco come mai abbia usato quella frase; dato che il programma alla fine fornisce lo stesso risultato.
Ti è successo anche a te?
Zagor HW
17-02-2005, 17:54
Sempre... anche oggi... i miei professori prima dicono che ci sono quei 5 milioni di modi per fare una cosa poi come la fai diversa da loro si incazzano... soprattutto quell'incompetente di laboratorio che nn sa niente, nn ha una laurea e ci insegna pure... cioè insegna è una parola grossa, nn sapendo niente immagina che cosa possiamo imparare noi... e cosi siamo costretti a farci le cose da soli, da autodidatta.
E poi una cosa mi da particolarmente fastidio: è che la prof di laboratorio aveva affermato che il progetto andava bene, ma il giorno dopo quella di informatica viene a dirmi di tutto sul lavoro d'apprima approvato da quella di lab. Com'è sta storia? Come dovrei fare? Dovrei scrivere trenta codici dello stesso programma che fanno la stessa identica operazione, per accontentarle tutte??
Zagor HW
17-02-2005, 18:16
Ah li è un casino... xchè io ho l'assistente laboratorio contro, e quindi lo posso mandare a cagare liberamente...ma la prof normale nn lo so devi vedere che cosa vuole lei e provare ad adattarti
alla fine però non è che un metodo è più adatto dell'altro?
Zagor HW
17-02-2005, 18:26
Solitamente a me dicono che un progetto va bene quando altre a funzionare nn ci sono delle righe di codice inutile e per arrivare alla soluzione si passa dalla strada + veloce meno contorta e che fa consumare meno risorse alla macchina... quindi... si c'è sempre una soluzione più adatta, anche se sono convito che se daimo un problema a 10 programmattori diversi otterremo almemo 5 soluzioni diverse...
Ragazzi ho un problema con questo problema :D :
si vogliono memorizzare le temperature giornaliere di un mese di 31 giorni al fine di calcolarne la media e di visualizzare i giorni che presentano temperature maggiori alla media
La mia prof ha detto di utilizzare un vettore e dato che è la prima volta che utilizzo questo comando ho alcuni problemi! Inanzitutto: è possibile usare una iterazione definita(per)?
Voi come costruireste il codice?? :help:
Zagor HW
24-05-2005, 10:05
Il vettore nn è un oggetto...è una struttura di memoria.
Cmq l'inserimento lo devi fare tramite inputbox o tramite textbox?
Ciao!
Dim Temperature(30) as long
Dim Media as long
for i=0 to 30
temperature(i)=inputbox("Inserire la temperatura dle giorno numero " & i)
next i
for h=0 to 30
Media=temperature(h)+Media
next h
Media=media/31
for u=0 to 30
if temperature(u)>media then
msgbox temperature(u)
end if
questo codice l'ho stilato in 2 minuti xkè ho fretta e ti avviso che non è il miglio codice che si possa ottenere... però funziona :D
certe volte mi stupisco da solo constatando che ho 13 anni :D
Hmmm qualcosa non va:
Private Sub Command1_Click()
Dim Temperature(30) As Long
Dim Media As Long
Dim I As Long
Dim h As Long
Dim u As Long
For I = 0 To 30
Temperature(I) = InputBox("Inserire la temperatura dle giorno numero " & I)
Next I
For h = 0 To 30
Media = Temperature(h) + Media
Next h
Media = Media / 31
For u = 0 To 30
Next
If Temperature(u) > Media Then
MsgBox Temperature(u)
End If
End
End Sub
Mi dice: "Indice non compreso nell'intervallo" e nel debug evidenzia questa parte (If Temperature(u) > Media Then)
a me funziona perfettamente, l'unica cosa è il next che nella fretta mi sono scordato...
Private Sub CalcolaMedia()
Dim Temperature(30) As Long
Dim Media As Long
For i = 0 To 30
Temperature(i) = InputBox("Inserire la temperatura del giorno numero " & i)
Next i
For h = 0 To 30
Media = Temperature(h) + Media
Next h
Media = Media / 31
MsgBox Media
For u = 0 To 30
If Temperature(u) > Media Then
MsgBox Temperature(u)
End If
Next u
End Sub
RaouL_BennetH
24-05-2005, 18:22
Hmmm qualcosa non va:
Private Sub Command1_Click()
Dim Temperature(30) As Long
Dim Media As Long
Dim I As Long
Dim h As Long
Dim u As Long
For I = 0 To 30
Temperature(I) = InputBox("Inserire la temperatura dle giorno numero " & I)
Next I
For h = 0 To 30
Media = Temperature(h) + Media
Next h
Media = Media / 31
For u = 0 To 30
Next
If Temperature(u) > Media Then
MsgBox Temperature(u)
End If
End
End Sub
Mi dice: "Indice non compreso nell'intervallo" e nel debug evidenzia questa parte (If Temperature(u) > Media Then)
Hai dimenticato di chiudere l'ultimo For.
Ti manca il next u
Ho avuto modo di provarlo e ho visto che funziona alla perfezione! Ho fatto solo una piccola modifica
Private Sub CalcolaMedia()
Dim Temperature(30) As Long
Dim Media As Long
For i = 0 To 30
Temperature(i) = InputBox("Inserire la temperatura del giorno numero " & i)
Next i
For h = 0 To 30
Media = Temperature(h) + Media
Next h
Media = Media / 31
label1.caption=media
For u = 0 To 30
If Temperature(u) > Media Then
giorni=giorni & Cstr(u) & ";"
End If
Next u
MsgBox giorni
End Sub
Cosicchè da poter visualizzare i giorni invece che le temperature che superano la media. Grazie dell'aiuto ragazzi ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.