Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Tilaikkuna

Wizard [08.01.2004 16:54:07]

#

Eli tarkoituksena olisi luoda tilaikkuna jossa ruudulle pomppaa erillinen pieni formi jossa ilmenee, että mitä ohjelma tekee. Yritin väsätä jonkinlaista sätöstä, mutta ilmeni, että ohjelman suoritus etenee niin nopeasti, että tämä päällimmäinen formi ei päivitä tekstejä muun koodin suorituksen aikana.

Eli ohjelma etenisi jotenkin tämän tyylisesti:

Käyttäjä painaa "suorita".

Ohjelma avaa status formin ja siihen tekstin: "Avataan tietokantayhteyttä" ja tämän jälkeen ohjelma avaa yhteyden.

Kun yhteys on auki ja koodissa mennään eteenpäin, niin status ikkunaan tulostuu: "Tehdään jotain tietokannassa blaa blaa blaa..." ja taas mennään koodissa eteenpäin.

Ja kaikkien vaiheiden jälkeen sitten status -formi suljetaan. Progress barin tekeminen tuohon ikkunaan sitten kyllä onnistuu, mutta olisiko jollakin heittää pientä koodinpätkää jolla saisin tuon tehtyä ja varmistettua, että tilatekstit tulostuvat tuohon formille ja pitkien operaatioiden aikana ne myös näkyvät ruudulla. Katselin jotain statusbaria, mutta en oikein saanut selvää miten se toimii ja blaa blaa blaa...

On vähän noloa kun erittäin pitkän ja vaikean SQL kyselyn aikana ohjelma on kuin se ei tekisi mitään eikä Windowsin resurssienhallinnan perusteellakaan tapahdu mitään kun palvelin tekee kaiken työn... Näyttää kuin ohjelma olisi kaatunut tai jotain vastaavaa.

Antti Laaksonen [08.01.2004 20:14:57]

#

Edistymisikkuna voi olla ihan tavallinen formi. Jos ikkuna meinaa peittyä muiden alle, tästä koodivinkistä on apua: https://www.ohjelmointiputka.net/koodivinkit/23524-vb6-aina-päälimmäisenä Muista laittaa koodiin sopivin väliajoin DoEvents-komentoja, jotta Windows saa aikaa ikkunan päivitykseen. Jos tämä ei auta, kokeile komentoa Forminnimi.Refresh. Mutta jos yksittäinen SQL-kysely on todella hidas, ikkunan päivittäminen välissä voi olla hankalaa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta