Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa ActiveX ?

[es] :: C/C++ programiranje :: Problem sa ActiveX ?

[ Pregleda: 3434 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dr.Aculla
x-files

Član broj: 22011
Poruke: 25
*.med.bg.ac.yu



Profil

icon Problem sa ActiveX ?11.06.2004. u 11:06 - pre 212 meseci
Napravio sam program koji radi savrseno na mom racunaru,ali
na drugim racunarima uopste ne moze da se pokrene tj. sve se
regularno instalira ali klikom na exe, ikonu ne dogodi se JEDNOSTAVNO NISTA!!!
U aplikaciji sam koristio activeX komponente(Microsoft Form Image,Microsoft Form Label). Da li je problem u kompajliranju ?? Zna li neko kako da prevazidjem ovaj problem?

Takodje primetio sam da ShowWindow(TRUE) ili (FALSE) ne rade normalno sa
activex componentama tj progream prijavljuje gresku kada se ove komande odnose na njih ?? O cemu se radi ??
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.client.comcast.net



+1000 Profil

icon Re: Problem sa ActiveX ?11.06.2004. u 15:50 - pre 212 meseci
Ako ActiveX controla nije registrovana (regsvr32 <path>) obicno se desava tacno
to sto opisujes - double click na ikonicu ne uzrokuje ama bas nista. Dovoljno je
da jedna od sto upotrebljenih kontrola ne bude registrovana da bi se desilo sto se
desava.
Proveri da li sve kontrole koje koristi tvoja aplikacija zaista postoje na tom drugom
racunaru, i potrazi ih po imenu u Registry-ju. Ako ih nema, onda moras da ih lepo
pronadjes na disku, da otvoris command prompt i da za svaku od njih izvrsis
'regsvr32 <ime_kontrole>.

Sto se tice ShowWindow( ) funkcije: ako neka od kontrola nije dobro napisana,
poziv ShowWindow( ) iz OnInitDialog( ) moze da izazove crash. Razlog je ovaj:
tokom crtanja kontrole po prirodi stvari mora da se pozove GetClientRect( ) ili
slican poziv kojim se saznaje velicina prozorcica koji treba da se ofarba. Dok kontrola
jos nije 'promovisana' u prozor, sto se desava za vreme inicijalizacije, poziv na
GetClientRect( ) daje nule za sve cetiri koordinate.
Pravi lek za ovaj problem je da se kontrola pametno napise. Ako nije tvoja, nego
tudja, workaround je da se iz OnInitDialog ne poziva nista sto utice na crtanje
kontrole, nego da se to uradi bar delic sekunde kasnije (mozes da taj zadatak poveris timer-u, na primer).

 
Odgovor na temu

Dr.Aculla
x-files

Član broj: 22011
Poruke: 25
*.med.bg.ac.yu



Profil

icon Re: Problem sa ActiveX ?16.06.2004. u 15:54 - pre 212 meseci
OK,pretpostavio sam da se otprilike radi o tako necem,medjutim kakav je to program koji na svakom racunaru zahteva posebno registrovanje ActiveX komponenti?? Postoji li nacin da se one registruju nekako
"same od sebe" kroz instalaciju programa ili prilikom prvog startovanja,tako da neko ko nema blage veze sa racunarima moze komotno da koristi aplikaciju?? Glupo
je da npr.neko skine program sa mog sajta,a ja da pisem kojekakva uputstva za upotrebu tipa "pre koriscenja idi tamo-vamo,registruj ovo-ono,promuckati i sl.."

Drugo,meni se problem sa ShowWindow TRUE-FALSE desava prilikom upotrebe nekih krajnje "obicnih" i "normalnih" Microsoftovih ActiveX komponenti (ne verujem da su one pisane sa tako kardinalnim greskama)
NPR. izaberem insert ActiveX component
izaberem Microsoft Form Label
unesem je i nazovem npr. IDC_LABEL1

e sad hocu da se pritiskom npr. na button1 dogodi
GetDlgItem(IDC_LABEL1)->ShowWindow(FALSE);
a pritiskom na button2
GetDlgItem(IDC_LABEL2)->ShowWindow(TRUE);

Sve se to lepo iskompajlira bez greske,medjutim kada startujem program i pritisnem
jedno od dugmadi i dalje sve radi ok (npr.pritisnuo sam button1 i komponenta je nestala).Ali kada posto je nestala hocu da je ponovo vratim pritiskom na button2
pojavi se greska. E to me STRASNO NERVIRA!! U cemu je problem??? Kada koristim standardne MFC komtrole tipa STATIC sve radi bez greske!
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.3.133.130.ptr.us.xo.net



+1000 Profil

icon Re: Problem sa ActiveX ?17.06.2004. u 00:06 - pre 212 meseci
ActiveX kontrole su jedna specijalna vrsta COM objekata. Da bi koristio COM objekte,
moras ih registrovati pomocu regsvr32.exe. Registrujuci ih, COM runtime zna gde se
ti objekti tacno nalaze i moze da ih instancionira ne odajuci klijentu nista sto se ne
mora da zna (u prvom redu kod, naravno). Na taj nacin se ostvaruje ideal binarnog
distribuiranja koda - ne moras da dajes source kod vec samo binaries koji pruzaju
odredjen interface.

Registrovanje COM objekata se obicno vrsi tokom instalacije programa. Ako hoces da
to uradis profesionalno, treba da svoju aplikaciju distribuiras preko instalacionog paketa. Nije previse komplikovano - preporucujem ti INNO setup kao vrlo jednostavan za koriscenje. Nema sve fore, ali za proste stvari je vise nego dobar.

Sto se drugog dela pitanja tice, ne znam sta je razlog - nisam do sada sreo ni jednu
kontrolu koja je imala taj problem. Zaintrigiran, napravio sam na brzaka prostu
dialog-based aplikaciju na koju sam nabacao jedan Image, jedan Label i dva dugmeta
- jedno za Show, drugo za Hide.
U pravu si, pucaju i to oba. Simptomi - pointer na prozor koji pripada kontroli je NULL,
sto je prilicno neuobicajeno da se desi. Ocito - ili los dizajn, ili nesto mora da bude
setovano kako treba da bi Show/Hide mogao da se radi.

I sam sam napisao bar jedno desetak ActiveX kontrola, neke od njih su vrlo CPU intenzivne u svakom smislu (foreground/background), ali ni jedna od njih nikada nije imala problema sa ShowWindow. Ne mogu ni da zamislim sta su uradili da bi se
problem desavao na taj nacin.

Kopaj malo ne bi li pronasao opis tih kontrola, pa vidi ako ima neka 'kvaka22' koja
ukazuje na problem.


 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.3.133.130.ptr.us.xo.net



+1000 Profil

icon Re: Problem sa ActiveX ?17.06.2004. u 00:07 - pre 212 meseci
Zaboravih:
ActiveX kontrole se mogu praviti iz MFC-ja ili iz ATL-a. U ovom drugom slucaju, iako je kod znatno manji i moze da radi u browser-ima, mnogo su vece sanse da promakne detalj koji pravi stetu.
 
Odgovor na temu

Dr.Aculla
x-files

Član broj: 22011
Poruke: 25
*.verat.net



Profil

icon Re: Problem sa ActiveX ?20.07.2004. u 01:41 - pre 211 meseci
Hvala na savetu,medjutim pokusao sam da aplikaciju u kojoj sam koristio ActiveX Microsoft Forms Label i Image instaliram uz registraciju ActiveX komponenti.Sve je besprekorno radilo ali samo na racunarima koji su imali instaliran Microsoft Office paket. Gde nema office-a problem ostaje isti tj. klikom na ikonu ne dogodi se jednostavno NISTA!!! Postavicu novu temu vezanu za ovaj problem!

POZDRAV
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.client.comcast.net



+1000 Profil

icon Re: Problem sa ActiveX ?20.07.2004. u 04:59 - pre 211 meseci
Zvuci kao jedna od logicnih mogucnosti - vrlo cesto se desava da kontrole (tj. njihovi
binaries - .OCX) dolaze uz neki veci paket. Tvoj problem nije neresiv: ne budi lenj pa
uradi ovo:

Otvori Registry (poteraj regedit sa Run ili sa command prompta), i potrazi te dve
komponente po imenu. Tragaj sve dok ne pronadjes gde se tacno na disku nalaze
njihovi kontejneri (obicno su ekstenzije .OCX ili .AX, mada ima neki put i nesto trece).

Kad ih pronadjes, iskopiraj te fajlove i distribuiraj ih u okviru instalacije na sve masine
gde hoces da ti radi program. Naravno, da bi ih COM runtime 'video', moras ih
registrovati (regsvr32.exe je najzgodniji).

Ako ni onda ne radi bez Office-a, znaci da kontrole koriste neke druge kontrole ili COM
servise koji dolaze uz Office.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Problem sa ActiveX ?

[ Pregleda: 3434 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.