View Full Version : [VB] Uso delle risorse
GogetaSSJ
28-08-2004, 16:00
Ciao ragazzi, ho letto che si possono creare ed usare i "file di risorse", che dovrebbero avere estensione .rc e vanno ad integrarsi nell'exe dell'applicazione.
Ma non trovo documentazione al riguardo, non so come procedere :(
In pratica vorrei integrare nella mia applicazione alcuni suoni (wave) e li vorrei riprodurre in determinati casi. Non voglio linkare il mio applicativo a file wave presenti nell'hdd, vorrei avere tutto a mia disposizione nell'hdd.
Mi potete aiutare? Grazie
Premessa: Che palle sono finite le vacanze :cry:
E' un po' che nn ci si sente e fra le altre cose dopo 15 gionri che nn tocco un pc scrivo veramente di merda :oink:
heheheh
Allora per caricare il file resource devi andare nel menu Add-Ins -> Add-Ins Manager e selezionare la voce ""VB 6 Resource Editor" e cliccare nei check "Loaded" e "Load at startup"
A questo punto dovrebbe comparirti un'inconcia nella tool bar con raffigurato un cubo verde!!
Se clicci li ti si aprirà l'editor...!!
Allora il file di resource supporta tutti i file che vuoi, basta che tu gli carichi dentro.. ad esempio hai immagini bitmap, icone, cursori, ecc .. ma a quello che interessa te è il custom, cioè ogni titpo di file nn elencato in precedenza.
Per caricare i file è molto semplice, clicci appunto su custom (che è la penultima iconcina della toolbar..quella specie di finestra) e selezioni il file desiderato. Una volta caricato fai doppio click sulla voce appena inserita e vai ad apportare alcune modifiche, cioè dobbiamo generalizzare meglio il file, altrimenti nn si capisce una mazza!! Come Type potresti mettere SOUNDS e come ID metti 01, oppure il nome del suono che ricorda l'evento, esempio: chiusura, apertura e via dicendo!
Una volta caricati tutti i file basta che salvi l'editor ed il gioco è fatto.
Per potere utilizzare i file devi prima "scaricarli" dall'exe, cioè devi, dato che sono souni, metterli prima sull'HDD manari in qlc sottocartella doce staziona il tuo exe .. per fare quetso ti passo una mia funzione che è molto utile:
Public Sub CreaFileResource(ByVal sType As String, ByVal sID As String, Optional ByVal sPath As String)
Dim nFreeFile As Integer
Dim bytFile() As Byte
'crea i file presenti nel resource
If Dir$(App.Path & sPath) = "" Then
bytFile = LoadResData(sID, sType)
nFreeFile = FreeFile
Open App.Path & sPath For Binary Access Write As #nFreeFile
Put #nFreeFile, , bytFile
Close #nFreeFile
End If
End Sub
Preceduta da questa:
Public Sub ControlloFile()
'creo la cartella dei suoni
If Dir$(App.Path & "\Sounds\") = "" Then
Call MkDir(App.Path & "\Sounds")
End If
'crea i file per il web server
Call CreaFileResource("SOUNDS", "Open", "\Sounds\Open.wav")
Call CreaFileResource("SOUNDS", "Close", "\Sounds\Close.wav")
End Sub
La prima nn toccarla, la seconda è il controllo dell'esistanza dei file, èerchè dobbiamo essere sicuri che quando il tuo exe parta, controlla i file sull'HDD e se nn ci sono allora gli crea!!
Il secondo pezzo di codice modificalo pure, io ti ho fatto un esempio su come potresti fare!
Se ci sono problemi chiedi pure... tanto oramai le vacanze sono finite!! :cool:
GogetaSSJ
29-08-2004, 19:44
Ehehehehhe ben tornato e grazie ancora per la tua disponibilità incredibile. Vedrò di mettere in pratica ciò che mi hai suggerito al più presto e ti farò sapere. G R A Z I E ;)
C'è ne sono davvero pochi come te, davvero ;)
Originariamente inviato da GogetaSSJ
Ehehehehhe ben tornato e grazie ancora per la tua disponibilità incredibile. Vedrò di mettere in pratica ciò che mi hai suggerito al più presto e ti farò sapere. G R A Z I E ;)
C'è ne sono davvero pochi come te, davvero ;)
Prego!! Sai che se c'è qlc che so sono ben contento di condividerla con altri :)
:ubriachi:
GogetaSSJ
29-08-2004, 21:50
Originariamente inviato da matpez
Prego!! Sai che se c'è qlc che so sono ben contento di condividerla con altri :)
:ubriachi:
Idem per me, è la mia filosofia :D
A proposito, rispondo a quel vecchio thread dove chiedevo aiuto, ho trovato una soluzione che potrebbe interessarti :D ;)
GogetaSSJ
04-09-2004, 00:41
Non ho ancora provato ad usare le risorse xkè ho avuto poco tempo, spero di farlo oggi... volevo chiedere un'altra cosa:
vorrei aprire un link http nel mio programmino e visualizzare la pagina nel form stesso... si può fare? Non so, magari usando qualche dll di internet explorer o firefox. Illuminatemi :D
Molto semplicemente basta includere il controllo: Microsoft Internet Control :p
GogetaSSJ
04-09-2004, 09:18
Si si infatti ho trovato un articolo ieri sera, è anche molto semplice da usare, per fortuna :D
Ora devo solo trovare un modo per aprire tot tabs (rappresentati da commandbutton) che mi vadano ad aprire determinati links. Spero sia fattibile :rolleyes:
GogetaSSJ
04-09-2004, 10:49
Ho questa idea: dopo che il programma elabora i link da aprire nei vari tabs, deve aprire tot tabs (rappresentati da command button) Ad ogni pressione del command button, deve visualizzare nella barra degli indirizzi (una textbox) il relativo link e nel caso di conferma, aprirlo nel controllo che visualizza la pagina.
Devo aprire TOT Microsoft Internet Control per TOT url? Uno sopra l'altro?
E ancora, come faccio a creare i TOT command button tramite codifica?
Madonna + vado avanti + mi rendo conto che non so niente :(
Ora sono a lavoro e nn ti posso scrivere molto, ma se nn ho capito male tu vuoi che ti si aprano n controlli a seconda di nn so quale cosa!! ehhehehe
Per il fatto di aprire n controlli ti conviene crearti una form e clonarla in maniera dinamica... tu spiegami bene bene cosa vuoi fare e a cosa ti serve questa ideaa ed io stasera quando torno vedo un po' di darti una mano :)
Buon Lavoro
GogetaSSJ
04-09-2004, 11:06
Allora in pratica il programma è sempre quello.
Attualmente il programma fa questo (esempio):
carica 2 mail da una dir
estrapola 15 links
apre firefox
incolla il primo link nella barra degli indirizzi
apre un nuovo tab e incolla il secondo link, così via per n links
si sposta sul primo tab e lo conferma, avviando l'esplorarazione
continua a cliccare per n links (ad intervalli di N secondi che ho impostato)
In pratica ora non vorrei appoggiarmi a firefox perchè è troppo imprecisa come elaborazioni, per questioni di delay a volte non incolla bene un link nella barra degli indirizzi ecc... inoltre il browser deve essere focused affinchè il software possa agire.
Con la nuova metodologia che voglio adottare, si riuscirebbe ad elaborare anche in background.
Aspetto tue delucidazioni ;)
Che ne dici di questo esempio... :p
GogetaSSJ
05-09-2004, 00:22
Vediamo un pò ;)
Intanto ti ringrazio :D
... ma ci vivi su questo forum e è un caso che appena scrivo mi rispondi :confused:
ehheheheh
GogetaSSJ
05-09-2004, 00:26
E' un caso :D
Comunque sembra MOLTO INTERESSANTE, vedo se fino a domani riesco ad adattarlo alle mie esigenze, INTANTO GRAZIE INFINITE!!!!!!!
GogetaSSJ
05-09-2004, 11:05
Ps: non è che, come al solito, mi commenteresti la codifica? Almeno per capire meglio cosa fa. Inoltre c'è un modo per disporre i form in una posizione che decido io? (ad ogni ciclo magari lo sposto di nX ed nY, tanto per ordinarle nel MDI)
Ultimissima cosa (tanto per non scocciare te): dove posso trovare documentazione per agire sulle childform? Dovrei imparare e selezionarle, metterle in focus, assegnare proprietà ecc... madò quanto lavoro ho da fare :D
Bhe per spostare ti conviene usare la funzione MOVE inerente all'oggetto in questione!!
Ti passo cmq un esempietto, che magari ti fa capire qlc cosa, spero perchè l'utilizzo di form mdi nn è a volte semplice per gli scopi di ogni programma, ma è molto utile dato che una finestra ingloba tutte le sue figlie :)
Qui ci sono anche delle funzione carine, per esempio mettere tutte le finestre in orizzontale o in verticale o in cascata e poi ti crea un menu dimanico che ti fa selezionare dal menu la finestra da attivare :p
GogetaSSJ
05-09-2004, 12:28
Ti ho già detto che sei il mio idolo?
Dopo pranzo do un'occhiata al tuo esempio, thx di nuovo! ;)
Originariamente inviato da GogetaSSJ
Ti ho già detto che sei il mio idolo?
Troppo gentile :oink:
GogetaSSJ
05-09-2004, 19:38
Il tuo programma demo mi sta risultando molto utile.
Ho bisogno di un altro aiutino. Quando creo un nuovo form gli assegno un Name con questa funzione
Function creatab()
Dim frm As New frmbrowser
Dim numero As Integer
frm.Caption = "Link" & numero
frm.Show
frm.Name = "frm" & numero
End Function
Ho la necessita di selezionare un form specifico ad intervalli (tramite un timer). Come faccio a fare lo show su un form con il nome (o caption) dinamico?
Spero di essermi spiegato.
Ma la tua funzione che mi hai appena fatto vedere esiste veramente?
Perchè in teoria nn si può assegnare il nome in runtime, ma solo quando sei in modalità di progetto!
GogetaSSJ
05-09-2004, 19:55
Infatti... ho fatto alcune modifiche, ho provato e mi dice che non si può fare -_-
Ora credo di avere una sola possibiltà quindi, selezionare un form in base al suo caption, come faccio?
Se non erro nell'esempio 001 c'è questa cosa.. quando crei una finestra nel menu windows si da la possibilità di selezionarlo!
Prova a dare un occhiata... :)
GogetaSSJ
05-09-2004, 20:48
In effetti hai ragione, da la possibiltà di selezionarlo, ma nella codifica non trovo nulla a riguardo :eek:
Com'è possibile?
Si ho notato anche io... ma nn capisco perchè ti interessa selezionarlo?
Magari troviamo un altra soluzione...
GogetaSSJ
05-09-2004, 21:58
Bè in media si dovranno aprire circa 60 / 80 finestre.
Il ciclo va a selezionare una finestra e poi deve mandare la navigazione per tot secondi; allo scadere passa alla seconda finestra e parte la navigazione (con il link assegnatoli) e così via fino all'ultima.
Bhe ma allora lo fai direttamente qaundo lanci la form, gli dai l'url e imposti un timer che ogni n secondi lanci altre form
GogetaSSJ
05-09-2004, 22:36
Io avevo pensato di aprire tutti i form e poi uno ad uno di "cliccarli", partendo dal primo (non per incasinarmi la vita, ma per capire il meccanismo)
Vabbè vedrò di fare come mi hai consiglaito, se però ti viene qualcosa in mente, io sto qui :D
Si si certo, la metto nelle cose da fare, se mi viene in mente qlc te lo faccio sapere :)
Bastava pensarci solo un po su, e bersi un bel bicchiere di coca cola e vedi che le cose ti sembreranno tutte chiare... :coffee:
Guarda il nuovo esempietto ehehehehe :p
Io ho tutte le form con la caption numerica, tu se hai le form del tipo esempio: Browser1, Browser2, Browser3, etc etc basta che controlli se nella caption c'è InStr(frmAux.Caption,Browser)>0 e sei a cavallo :cool:
GogetaSSJ
05-09-2004, 23:32
Ci guardo immediatamente, thx ;)
Ps: da domani farò pure io uso massiccio di coca cola :D
GogetaSSJ
06-09-2004, 00:02
Dopo aver disposto le varie finestre con i link, se scrivo qualcosa del tipo:
If Instr(frmbrowser.caption, "Link") > 0 Then frmbrowser.show
mi crea un'altra mdichild. Il programma crea almeno una finestra con la caption "Link 1"
GogetaSSJ
06-09-2004, 00:23
Come non detto, scrivendo
If Instr (1, frmbrowser.captio, "Link 1") Then frmbrowser.setfocus
ci riesco.
Vai che sta venendo una figata. L'ho quasi terminato :D
Spero di non avere + problemi, + che altro per non scocciare te :D
Bene :cool:
Ma se passi il titolo giusto della form nn c'è bisogno che usi la InStr ma basta che metti: If frmBrowser.caption="Link 1" Then frmBrowser.Setfocus
:winner: :happy: :gluglu: :ubriachi: :yeah: :Prrr:
GogetaSSJ
06-09-2004, 01:49
Madò vero... si vede che sto fuso a quest'ora :D :rolleyes:
Domani lo cambierò va
Comunque ho visto che c'è un controllo (che non ho mai usato) che permette di creare delle schede (appunto tabs). Mi potrebbe tornare utile?
Potrei clonare ogni frmchild nella rispettiva scheda... così massimizzo la videata del browser. Vedrò di farlo domani, ora sono cotto.
Buonanotte ;)
GogetaSSJ
06-09-2004, 22:04
Gogeta alla riscossa :D
Veniamo a noi:
Come dicevo ieri, al posto di aprire le varie frmchild, vorrei disporle in varie schede. In che modo devo agire?
Inoltre si può ricavare il titolo della finestra del browser? Mi serve per effettuare alcuni controlli
Sono quasi vicino alla conclusione, conto su di te matpez :D ;)
Un tab nn può contenere una form, ma solo controlli...
Tu vorresti avere una form unica con tanti tab quante sono le pagine ad aprire?
GogetaSSJ
06-09-2004, 22:49
Esatto, sarebbe il massimo!!!
Insomma voglio una specie di firefox integrato nel programma.
Anzi.. al posto di quella ciofeca di MIC, si potrebbe integrare direttamente firefox?
Integrare direttamente firefox nn credo che sia possibile, a meno che tu nell'elenco degli oggetti non trovi qlc che la casa produttrice ha messo a disposizione...
Ti ho postato un esempio che ho trovato per clonare dei controlli, così tu potrai clonare tanti MIC quante te ne servono con il controllo tab!! :)
GogetaSSJ
07-09-2004, 00:49
Scusa ma dove lo hai postato?
ops scusa... ieri sera ero troppo stanco :(
GogetaSSJ
07-09-2004, 10:17
Originariamente inviato da matpez
ops scusa... ieri sera ero troppo stanco :(
Ma va! Già per tutto l'aiuto che mi stai dando dovrei offrirti 3 o 4 cene :D
Nessun problema ;)
Spero di dargli un'occhiata il + presto possibile.
Originariamente inviato da GogetaSSJ
Ma va! Già per tutto l'aiuto che mi stai dando dovrei offrirti 3 o 4 cene :D
Nessun problema ;)
Spero di dargli un'occhiata il + presto possibile.
Troppo gentile come sempre!!
Vai vai che io oggi sono con la tipa tutto il giorno (chi vuole capire capisca heheh) e nn credo che le farebbe piacere se anzichè della pausa sigaretta (dato che io nn fumo) mi metto a vedere i forum!!
Risultato ->> :ncomment: + :huh: = :ops:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.