![]() |
Neurochirurgie minim invazivă
"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv. Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice. www.neurohope.ro |
32bit icon pentru aplicatiile VB6
Last Updated: Mar 20 2008 00:06, Started by
ANQ
, Feb 05 2008 15:30
·
0

#1
Posted 05 February 2008 - 15:30

Salut
mai este nevoie de un singur lucru ca sa incep sa lucrez mai serios cu vb6 : vreau sa schimb iconul aplicatiei cu unul 32bit . am gasit ceva aici care isi face treaba pe jumatate ... adica imi schimba iconul cu unul 32bit dar nu cu cel pe care il vreau eu ![]() pentru compilarea resurselor am folosit "Resource Builder" pentru ca "Resource Editor" nu vrea sa accepte iconurile va rog sa ma ajutati , daca puteti (suna a cersit ![]() multumesc Edited by ANQ, 05 February 2008 - 15:32. |
#2
Posted 06 February 2008 - 04:40

Eu fac asa:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hWnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long _ ) As Long Private Const WM_SETICON = &H80 Private Const ICON_SMALL = 0 Private Sub Form_Initialize() SendMessage Me.hWnd, WM_SETICON, ICON_SMALL, LoadResPicture(1, vbResIcon) End Sub iar dupa compilare schimb iconul cu acest program. Simplu si eficient nu? ![]() Edited by macaz, 06 February 2008 - 04:44. |
#3
Posted 10 February 2008 - 16:38

Eu fac asa: Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hWnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long _ ) As Long Private Const WM_SETICON = &H80 Private Const ICON_SMALL = 0 Private Sub Form_Initialize() SendMessage Me.hWnd, WM_SETICON, ICON_SMALL, LoadResPicture(1, vbResIcon) End Sub iar dupa compilare schimb iconul cu acest program. Simplu si eficient nu? ![]() fara cuvinte ![]() multumesc mult p.s. poate stii sa imi raspunzi si la intrebarea cu fonturile ![]() Edited by ANQ, 10 February 2008 - 16:41. |
#4
Posted 11 February 2008 - 00:20

Codul de pe vbAccelerator functioneaza foarte bine si isi face treaba complet, ca la carte, nu pe jumatate cum zici tu.
Recomand sa folosesti acel cod pentru ca functia LoadResPicture sufera de un bug.Daca te uiti atent pe codul de pe vbAccelerator mai precis la parametrii functiei SetIcon ai sa vezi ca al 2-lea parametru este "As String".Tu ce pui acolo cand apelezi functia?.Editorul de resurse din vb6 nu accepta iconuri pe 32 bit asa ca trebuie sa apelezi la un editor de resurse extern gen ResourceHacker,XNResourceEditor. Daca deschizi executabilul compilat cu unul din editoarele acestea ai sa vezi o sectiune numita "Icon Group" unde fiecare icon are un numar de ordine,iar fiecare icon poate avea mai multe marimi si numar de culori folosite (ex. 16x16,32x32,48x48 pe 16 culori, 256 culori sau 32bit color) mai multe detalii aici.Primul icon din aceasta lista (1) este folosit de sistem implicit,desigur se poate adauga mai multe iconuri in aceasta lista daca este nevoie de asa ceva (asociere fisiere cu icon diferit etc.).Poti denumi un icon in aceasta lista cum vrei tu ,de exemplu primul icon din ICON_GROUP se va numi MyIcon atunci apelezi functia asa: SetIcon Me.hWnd,"MyIcon",True Recomand totusi sa nu pui nume iconurilor ci sa le numerotezi asa cum este si normal si atunci functia va fi apelata cu o mica smecherie astfel: SetIcon Me.hWnd,"#" & CStr(1),TrueUnde 1 este primul icon pe care il afiseaza si Windows Explorer (poate fi si 2,3,4 etc. daca ai mai multe iconuri). Acel "#" &CStr(1) este intr-un fel echivalentul lui MAKEINTRESOURCE din VC++. Ca sa faci o proba deschide un proiect nou cu un singur form adaugi la proiect un modul basic (ex mIcon.bas) copii codul de pe vbAccelerator in acest modul iar in evenimentul Form_Initialize faci asa: Private Sub Form_Initialize() SetIcon Me.hWnd,"#" & CStr(1),True End SubSalvezi proiectul ,compilezi iar apoi cu unul din editoarele de resurse mentionate schimbi iconul cu numarul de ordine 1 (singurul de altfel) cu unul pe 32Bit.Pornesti aplicatia si voila merge ![]() P.S. la intrebarea cu fonturile stiu si acolo, sunt mai multe solutii dar o sa raspund pe topicul acela daca am timp. Edited by macaz, 11 February 2008 - 00:23. |
#5
Posted 12 February 2008 - 23:55

Codul de pe vbAccelerator functioneaza foarte bine si isi face treaba complet, ca la carte, nu pe jumatate cum zici tu. Recomand sa folosesti acel cod pentru ca functia LoadResPicture sufera de un bug.Daca te uiti atent pe codul de pe vbAccelerator mai precis la parametrii functiei SetIcon ai sa vezi ca al 2-lea parametru este "As String".Tu ce pui acolo cand apelezi functia?.Editorul de resurse din vb6 nu accepta iconuri pe 32 bit asa ca trebuie sa apelezi la un editor de resurse extern gen ResourceHacker,XNResourceEditor. Daca deschizi executabilul compilat cu unul din editoarele acestea ai sa vezi o sectiune numita "Icon Group" unde fiecare icon are un numar de ordine,iar fiecare icon poate avea mai multe marimi si numar de culori folosite (ex. 16x16,32x32,48x48 pe 16 culori, 256 culori sau 32bit color) mai multe detalii aici.Primul icon din aceasta lista (1) este folosit de sistem implicit,desigur se poate adauga mai multe iconuri in aceasta lista daca este nevoie de asa ceva (asociere fisiere cu icon diferit etc.).Poti denumi un icon in aceasta lista cum vrei tu ,de exemplu primul icon din ICON_GROUP se va numi MyIcon atunci apelezi functia asa: SetIcon Me.hWnd,"MyIcon",True Recomand totusi sa nu pui nume iconurilor ci sa le numerotezi asa cum este si normal si atunci functia va fi apelata cu o mica smecherie astfel: SetIcon Me.hWnd,"#" & CStr(1),TrueUnde 1 este primul icon pe care il afiseaza si Windows Explorer (poate fi si 2,3,4 etc. daca ai mai multe iconuri). Acel "#" &CStr(1) este intr-un fel echivalentul lui MAKEINTRESOURCE din VC++. Ca sa faci o proba deschide un proiect nou cu un singur form adaugi la proiect un modul basic (ex mIcon.bas) copii codul de pe vbAccelerator in acest modul iar in evenimentul Form_Initialize faci asa: Private Sub Form_Initialize() SetIcon Me.hWnd,"#" & CStr(1),True End SubSalvezi proiectul ,compilezi iar apoi cu unul din editoarele de resurse mentionate schimbi iconul cu numarul de ordine 1 (singurul de altfel) cu unul pe 32Bit.Pornesti aplicatia si voila merge ![]() P.S. la intrebarea cu fonturile stiu si acolo, sunt mai multe solutii dar o sa raspund pe topicul acela daca am timp. am folosit codul tau si merge perfect ![]() ![]() iti multumesc mult pt ajutor ! treaba asta cu iconul era singurul lucru care ma oprea sa "imi fac treaba" in vb6 . raman dator |
#6
Posted 24 February 2008 - 17:16

o noua problema !
pana acum nu am observat pt ca toate iconurile pe care le foloseam erau de fapt identice , dar de marimi diferite . problema e ca , desi inlocuiesc iconul cu unul care contine toate marimile de care am nevoie (16x16,32x32,48x48) , iconul ferestrei este cel de 32x32 , dar redimensionat . cel de 16x16 diferit . cum fac sa rezolv si asta ? multumesc |
#8
Posted 19 March 2008 - 01:29

@ANQ ai PM.Oricum raspunsul este in postul nr.4. multumesc pt raspuns ![]() cred ca va trece ceva pana o sa am parte de un weekend adevarat .. ![]() s-ar putea sa mai am ceva intrebari ... de ex : cum ai folosit butoanele in stil xp ? pot sa fac si eu asta cu un manifest , dar efectul dispare cand rulez programul in afara debug-ului ... ![]() |
#9
Posted 19 March 2008 - 02:04

de ex : cum ai folosit butoanele in stil xp ? pot sa fac si eu asta cu un manifest , dar efectul dispare cand rulez programul in afara debug-ului ... ![]() Oricum, faci un manifest atat pentru vb cat si pentru exe-ul tau. Advice: desi e "epoca" .NET, daca vrei sa ramai la api core, eu te sfatuiesc ca treci la Delphi 7 daca vrei power in win32 api. Stiu ca vb este o experienta unica si placuta, dar... Edited by Bean, 19 March 2008 - 02:07. |
#10
Posted 20 March 2008 - 00:06

Nu prea am inteles cum vine treaba cu "in afara debug-ului",fisierul manifest poate fi atat separat (in acelasi director cu executabilul) cat si in resurse.
Citeste aici Eu zic ca in orice mediu vei face programele,tot trebuie sa cunosti cum lucreaza Windows-ul,care sunt regulile de baza,ce este aia o functie API,cum lucreaza o fereastra,etc. Lucrurile se schimba rapid,apar noi medii de programare facute pentru a usura munca programatorului,dar elementele de baza raman,si e bine sa le stii ca altfel nu vezi padurea din cauza copacilor. Inportant este sa intelegi cum functioneaza o aplicatie Win32.Restul sunt detalii care tin de limbajul de programare folosit. Un bun inceput este Platform SDK |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users