Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 25 odgovora
  • 10.177 pregleda

Najnovija ↓

Unload problem VB - ?!? 03.10.2002. u 20:43 · pre 293 meseca #1
Imam sledeci problem. Radim aplikaciju i sve lepo funkcionise do samog zatvaranja aplikacije (unload). Aplikacija nestane vizuelno ali ostane rezidentna u memoriji (vidim je u task menageru). Ako startujem jos jednom
imacu i drugu instancu i tako redom. Zasto mi prosto unload sa glavne forme ne ukloni kompletnu aplikaciju? Sta moze biti uzrok tome?

Pozdrav
Potpis
...da bi ponovo dosli, morate prvo da odete...
http://www.icb.rs
Re: Unload problem VB - ?!? 03.10.2002. u 21:50 · pre 293 meseca #2
Ja sam imao slican problem.. resio sam ga tako sto sam uz Unload Me na glavnoj formi dodao i Unload frmForma1, frmForma2, frmForma3... i tako za svaku formu koju imam u programu.
Ako tvoj program koristi 2 - 3 forme ovo je zgodno ali za neke vece programe ne znam kako, verovatno je neka forma iz programa jos uvek aktivna.
Potpis
'This is a unique time in our history, in the history of any civilization, it's the moment of the acquisition of technology, that's the moment when contact becomes possible'
Re: Unload problem VB - ?!? 03.10.2002. u 22:42 · pre 293 meseca #3
...probacu, ali malo je nezgodno tako gasiti forme pogotovo sto ih moze bit puno, ali probacu........

Potpis
...da bi ponovo dosli, morate prvo da odete...
http://www.icb.rs
Re: Unload problem VB - ?!? 04.10.2002. u 06:54 · pre 293 meseca #4
Mozda bi mogao da protrcis kroz Forms kolekciju..
For i = Forms.Count - 1 To 1 Step -1
Unload Forms(i)
Next
Potpis
Commercial-Free !!!
Re: Unload problem VB - ?!? 04.10.2002. u 14:22 · pre 293 meseca #5
Da izbrises form iz memorije jednostavno stavi u Event Unload:
Set Form = Nothing
Re: Unload problem VB - ?!? 06.10.2002. u 21:32 · pre 293 meseca #7
Nikad ne treba koristiti naredbu END. Ali bas nikad.
Stvara vise problema nego sto cini dobrog :)
Potpis
Commercial-Free !!!
Re: Unload problem VB - ?!? 07.10.2002. u 06:20 · pre 293 meseca #9
Jednostavno, resursi ne budu oslobodjeni uvek.

Sa MSDN-a:

The End statement provides a way to *force* your program to halt. For normal termination of a Visual Basic program, you should unload all forms. Your program closes as soon as there are no other programs holding references to objects created from your public class modules and no code executing

Ovo je iz original MSDN-a uz VB6 i jos pise da ce da oslobodi resurse --- nije bas tacno. Nekad hoce, ali nekad nece.

Ovo je sa nekog sajta koji mi je prvi izbacio Google:

"Remember to treat END not as "the program is done now so it can go away" but rather as "pretend the user did ctrl-alt-del and used END TASK on this process". To paraphrase the ads, just don't do it."

E sad, mozda je to ispravljeno kasnijim Service Pack-ovima. Uglavnom, u vecini knjiga o VB koje sam ja imao prilike da citam, uvek je naglaseno da ne treba koristiti END. Ako te zanima, poseti majkrosoftov news server pa pogledaj koliko je rasprave o tome u microsoft.public.vb.general.discussion. Verovatno ces biti iznenadjen koliko je napisano na tu temu.

Potpis
Commercial-Free !!!
Re: Unload problem VB - ?!? 08.10.2002. u 14:19 · pre 292 meseca #10
Da upravi si ni meni nije funcionisala END naredba, nego samo Unload Me, i to u Event-u kad je izbrises sigurno radi bar meni.
pozdrav
Re: Unload problem VB - ?!? 08.12.2002. u 16:32 · pre 290 meseci #11
i kad kliknes na X to je kao END (nema mogucnosot za "fino unloadovanje".
ja ga uvek endujem.
Potpis
Goglasi! - Šta god da kupuješ, naći ćeš na Goglasima! Pretraga malih oglasa i eProdavnica, preko 10 milionda proizvoda.

Cityexpert.rs - Prva srpska onlajn agencija za nekretnine

ॐ

Re: Unload problem VB - ?!? 09.12.2002. u 05:44 · pre 290 meseci #12
Netacno boki.
Npr. Form_QueryUnload (naglasak na ono UNLOAD!!!) se 'opali' kad kliknes na X ...

Potpis
Commercial-Free !!!
Re: Unload problem VB - ?!? 03.05.2009. u 00:26 · pre 213 meseci
izmenjeno 1 put, poslednji put Aleksandar Vasic 03.05.2009. u 00:51
  1. Aleksandar Vasic03.05.2009. u 00:51zapis iz teksta poruke
#15
Da se nadovezem na temu.
Kad hocu iz jedne forme da otvorim drugu i onda da zatvorim prvu ja napisem ovako:
Code:
Unload Me
Form2.Show

i javla mi se greska da nemogu da otvorim drugu formu jer je vec unloadovana.
Gde gresim?
Re: Unload problem VB - ?!? 03.05.2009. u 10:59 · pre 213 meseci #16
Grešiš, jer prilikom podizanja te forme (Form2) u Sub Form_Load imaš naredbu "Unload Me".

Code:

Private Sub Form_Load()
    
    Unload Me
    
End Sub


Prilikom pozivanja funkcije Form2.Show, se Forma From2 prvo učitava u memoriju, ukoliko nije ranije učitana, pa zatim prikazuje.

Učitavanje forme ti pokreće event "Form_Load", pa zatim prikazuje formu, ali s' obzirom da ti tu formu "Unload"-uješ pre nego što je on prikaže, onda ti javi grešku.
Re: Unload problem VB - ?!? 13.05.2009. u 13:28 · pre 212 meseci #17
Samo obrni redosled operacija jer ovo sto si napisao nema logike

Unload Me
Form2.Show
prvom linijom gasis aktivnu formu i kada se ugasi vise se nista u njoj ne izvrsava pa ni komanda form2.show

zato napisi

Form2.Show
Unload Me
...
... i radice...

P.S. ne znam teoriju ali imam gomilu programa iza sebe i nikada nisam imala problema sa END. Za mene je to samo jedna cool komanda :)
Re: Unload problem VB - ?!? 13.05.2009. u 15:26 · pre 212 meseci #18
Nema potrebe da okreće redosled komandi, jer se i posle naredbe Form_Unload nastavlja sa izvršavanjem komandi iz tog Sub-a.

Problem je nastao u tome što on Form2, Unload-uje na Form_Load eventu, pre nego što je prikaže.


A ovo što se tiče naredbe End, da se posle izvršavanje te naredbe ne oslobađaju svi resursi zauzeti od strane programa je totalno nebulozna izjava.
Re: Unload problem VB - ?!? 21.05.2009. u 10:43 · pre 212 meseci #19
Pazi nema smisla gasiti sve forme jer neke nisu ni aktivne.


Uvek sa prelaza sa forme na formu treba raditi unload forme, ali nekada se forma sama load-uje:

Primer

Form1=neaktivan
Form2=aktivan



Form2_Load()
image1.Picture=Form1.Image1.Picture
end sub


E sada kako svi mi ubacujemo razne slike ne bi li nasa mala softverska remek dela lepo izgledala, a da exe ne bi bio preveliki,
ili cuvali slike u spoljnim fajlovima, cesto se radi povezivanje na neku kontrolu u nekoj drugoj formi...jel da?


e sada:
ova forma2 je u svom load-u, loadovala i formu1 jer joj je trebala slika iz nje.


Ima jos primera kada se desi load neke druge forme... ali ovo je najcesce.

E sada kada kliknes na neko dugme za izlaz na svom programu, a VB editor ti ne pokazuje Play(run) dugme, znaci da je nesto jos aktivno od formi.

Onda pritisnes II(pauzu) pa F8 i nadjes koja ti je forma aktivna.

Ne treba koristiti end, jer kada se sve regularno Unloaduje, isprazne se svi resursi po PS-u, a kada se END-uje ostanu repovi u memoriji.

Pozdrav!


Re: Unload problem VB - ?!? 21.05.2009. u 12:18 · pre 212 meseci #20
Citat:
dzigilibonglica: 

E sada kako svi mi ubacujemo razne slike ne bi li nasa mala softverska remek dela lepo izgledala, a da exe ne bi bio preveliki,
ili cuvali slike u spoljnim fajlovima, cesto se radi povezivanje na neku kontrolu u nekoj drugoj formi...jel da?



Ne!

Ne bitno je koja je forma kontejner za sliku, veličina izvršne datoteke će biti ista.


Citat:
dzigilibonglica:

Ne treba koristiti end, jer kada se sve regularno Unloaduje, isprazne se svi resursi po PS-u, a kada se END-uje ostanu repovi u memoriji.



Zanima me odakle ti ovaj zaključak!?

Pri pozivanju f-je END, skače se na "kraj" programa. Po prekidu izvršavanja procesa, svi resursi koji je taj proces koristio se oslobađaju.
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme