Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] Controlli frame e button in stile XP

Ciao a tutti,
ieri sera sono capitato sul sito della Innovasys e ho trovato dei
controlli OCX freeware per inserire frame e pulsanti in stile XP
all'interno di applicazioni VB6
http://www.innovasys.com/products/freeware.asp
Ho fatto alcune prove ed apparentemente sembrano essere ottimi.
Prima di usarli in maniera piu' estensiva volevo sapere se magari
qualcuno di voi li conosce gia' e li ha utilizzati senza problemi
nelle proprie applicazioni
Ciao e grazie a tutti

 
http://www.innovasys.com/products/freeware.asp
Basta inserire nella directory dell'eseguibile un file 
"nomeeseguibile.exe.manifest" con dentro qualche istruzione xml per 
trasformare un programma in stile xp...
Nel programma deve essere presente la chiamata a InitCommonControls.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" 
manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Autore.Programma.Versione"
type="win32"
/>
<description>La tua descrizione.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
    </dependentAssembly>
</dependency>
</assembly>
-- 
When a program is being tested, it is too late to make design changes.
News 2002 [v 2.07] / StopDialer / PopDuster - 
http://www.socket2000.com
Akapulce portal: 
http://www.akapulce.net

 Nel programma deve essere presente la chiamata a InitCommonControls.
si', ma direi che col look xp se hai un option dentro un frame, l'option ha 
forecolor =vbblack, backcolor=vbblack. non e' molto pratico.
io ho dovuto sostituire tutti i frame con dei picture.
ciao, a.

 io ho dovuto sostituire tutti i frame con dei picture.
?????
-- 
Machine-independent:  Does not run on any existing machine.


 ?????
<<I'm suprised you are not
aware of this know problem.>>
http://groups.google.it/groups?as_q=manifest+frame+option&num=10&scoring=r&hl=it&as_epq=&as_oq=&as_eq=&as_ugroup=*basic*&as_usubject=&as_uauthors=&lr=&as_drrb=q&as_qdr=&as_mind=1&as_minm=1&as_miny=1981&as_maxd=3&as_maxm=2&as_maxy=2007
ciao, a.

 
http://groups.google.it/groups?as_q=manifest+frame+option&num=10&scoring=r&hl=it&as_epq=&as_oq=&as_eq=&as_ugroup=*basic*&as_usubject=&as_uauthors=&lr=&as_drrb=q&as_qdr=&as_mind=1&as_minm=1&as_miny=1981&as_maxd=3&as_maxm=2&as_maxy=2007
http://www.sundaysw.com/tmp/vb/manifest/
non c'e' la chiamata init, se ho modo provero' anche quella, ma tutti gli 
altri controlli vanno abbastanza tranquilli. e' il frame che incasina. direi 
che anche i command in un frame assumano un bordino nero.
ciao, a. 

 Nel programma deve essere presente la chiamata a InitCommonControls.
   Ciao, ho gia' creato un file .manifest ma ci sono elementi che non
vengono visualizzati correttamente come dice giustamente Andrea
In particolare
-Frame
-Command Button con .Style=1 (cioe' con una immagine associata)
Ci sono anche altri controlli, tipo le scrollbars, che comunque
vengono usati meno (almeno nel mio caso)
Usando questi controlli apparentemente sembra andare tutto bene,
volevo solo sapere se qualcuno li stava utilizzando per non avere
brutte sorprese dopo avere sostituito tutti i controlli nei miei
programmi (non tanto per i frame, per i quali e' stato sufficiente un
Replace dentro i file .FRM, quanto per i Command Button, che invece
dovrei sostituire a manina...)
Cmq grazie a tutti
Ciao

 Ciao
come dicevo altrove, su questo pc ho solo aggiunto un manifest ad alcuni 
programmi, e sono subito andati tutti ok. presi e portati su un altro xp 
(con lo stesso vb+sp installato), anche col look 2000 (vedi altro post sul 
sendkeys), danno errore di "classe non trovata" o "mancanza di memoria", per 
cui finche' non cambio gli exe, su quel pc (di solito sviluppo su questo, 
l'altro e' piu' di servizio e backup) non devo proprio mettere i manifest. 
immagino basti chiamare initcommoncontrols, ma mi ha stupito il 
comportamento diverso di xp a parita' di ambiente.
ciao, a.

 immagino basti chiamare initcommoncontrols, ma mi ha stupito il 
Esatto.
-- 
Modem: Monumentally Overpriced Data Eating Machine 


 aware of this know problem.>>
Sarà, ma a me un option button dentro un frame non diventa un blocco 
nero...
-- 
Computers talk to each other worse than their designers do.


 che anche i command in un frame assumano un bordino nero.
Ah, già che ci siamo. Se crei un manifest anche per l'ide 
(vb.exe.manifest) puoi creare i tuoi form e vederli come 
effettivamente apparirebbero in xp...
-- 
Brain fried; core dumped.


 effettivamente apparirebbero in xp...
grazie, ottima idea. almeno uno non deve ricompilare solo per quello.
ciao, a.

 ripeto: ci dovessi campare, coi programmi, non sarebbe un bel panorama.
Basta non mettere il manifest. L'initcommoncontrols non fa danni.
-- 
Computer and car salesmen differ in that the latter know when they are lying.


 Esatto.
sbagliato.
ricompilato l'exe con la chiamata, presa dal sito di mauro rossi.
messo l'exe sull'altro xp.
msgbox se c'e' il manifest:
---------------------------
Errore di sistema &H80070583 
(-2147023485
).
La classe non esiste. 
---------------------------
OK   
---------------------------
senza manifest va.
ciao, a.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 La classe non esiste.
    Mmmm strano. Questo non mi e' mai capitato, con il manifest
aggiunto.
Dipende sicuramente da qualche controllo o classe utilizzata nel
programma. Hai utilizzato qualche controllo particolare?

Myno ha scritto:


prima, e dava lo stesso errore, c'era un updown, ma l'ho cambiato con un
vscroll, togliendo i cmn ctrl dai riferimenti, proprio per evitare cose
strane. pero' c'e' un webbrowser.
provero' una cosa piu' gnocca, con un command e un text.
ma dato che senza manifest vanno, non e' un problema. al momento tengo il
look classico.
se cerchi &H80070583 
(-2147023485
), qualche pagina c'e'.
col manifest, cmq, l'altro errore che puo' arrivare sull'altro pc e'
"memoria esautita". il pc ha 2gb di ram.


 ciao, a.
Piuttosto, prova quanto suggerito qui:
http://www.vbaccelerator.com/home/vb/code/libraries/XP_Visual_Styles/Using_XP_Visual_Styles_in_VB/article.asp
Naturalmente dovrebbe essere l'applicazione a comportarsi diversamente a seconda
della versione di Windows rilevata (sia in fase di installazione che di
esecuzione).
In pratica:
- l'installer distribuisce il manifest solo se l'OS target è WinXP
- l'applicazione chiama InitCommonControlsEx solo se rileva di stare girando
sotto XP
Bye
Raf
-----------------------------------------------------
Funk: cooler than the other side of the pillow.
--------------------------------------------------------------------------------
La mia Cartella di Posta in Arrivo è protetta con SPAMfighter
441 messaggi contenenti spam sono stati bloccati con successo.
Scarica gratuitamente SPAMfighter!

 sbagliato.
L'initcommoncontrols va nell'evento initialize del form principale...
Se lo metti nel load è possibile ricevere quell'errore.
-- 
If God had intended Man to program, we would be born with serial I/O ports.


 Se lo metti nel load è possibile ricevere quell'errore.
proveremo anche questa. sta diventando appassionante. dopo house, medium, 
lost e 4400, prossimamente su x: initcommoncontrols :P
ciao, desperate a.househusband

 sotto XP
grazie anche a te. appena posso provo.
il punto che trovo critico e' che *in ogni caso* _sta_ girando su xp, su un 
xp identico a questo...
ciao, a.
e' sconcertante come i problemi seri di programmazione si risolvano in un 
attimo, per le putt ehm tipo un bottone tondo ci vogliano settimane di tempo 
preziosissimo :)

 Se lo metti nel load è possibile ricevere quell'errore.
   Hai ragione, questo mi ero dimenticato di specificarlo.
Avevo letto da qualche parte che InitCommonControls va inserito nella
Sub Main e deve essere la primissima istruzione del programma per non
avere problemi
Cmq a me funziona correttamente su tutti gli OS da Win98 a Vista
(provati tutti Win98, ME, 2000, XP, 2003, Vista) lasciando il manifest
e la chiamata a InitCommonControls
In base alle mie prove (almeno con il mio applicativo) non e'
necessario differenziare l'installer o il programma in base all'OS

Due di Picche ha scritto:
[cut]
Ciao ... mi puoi ocntattare in email ?
Scusa ma non sapevo come rintracciarti
Marco DP