Tanácsok azoknak, akik programozni visual basic

Andrei Kolesov, Olga Pavlova

246. Ami a Tanácsot, hogy a késleltetés

Az MS Basic változat DOS volt hasznos operátor késleltetés

amely felfüggeszti a program végrehajtása a megadott számú másodperc. Ilyen szereplő VB nem létezik, de ez könnyen megvalósítható a saját formájában a következő egyszerű rutin:

Itt kell figyelni, hogy a használata DoEvents funkció, amely lehetővé teszi más folyamatok párhuzamosan a végrehajtás a jelenlegi ciklus. (DoEvents átadja a vezérlést az operációs rendszer, és a függvény a számos nyitott formák a VB-alkalmazás.)

Régi SLEEP végzett késleltetési operátor végrehajtása egy előre meghatározott számú másodpercig, vagy amíg megnyomja bármelyik gomb megnyomásával. (A Basic / DOS vele volt a probléma, mert a kódot a lenyomott gomb marad a puffer és a billentyűzet automatikusan használjuk a következő bemeneti műveleteket. Annak érdekében, hogy hasonló helyzet, miután a kezelő SLEEP szintben a puffer szükséges.)

Ha szükséges, ez a mód lehet végrehajtani a SleepVB funkciót. Az egyik változatai, valamint annak szükségességét, hogy DoEvents funkciót fogjuk mutatni a következő példa.

Észrevettem, hogy SleepVB eljárás CPU terhelése 100%, módosított az alábbiak szerint.

Most letöltésével 0-1% CPU.

247. Amint azt a Tanács, hogy egy splash elején a program vagy VB-VBA-dokumentum

Hogy jutok, ha fut a VB-megmentő programot megjelentek bizonyos formája, amely automatikusan eltűnik a letöltés befejeződött a program? Ehhez a legjobb, ha egyik változatát használja az alkalmazás indul a Fő szubrutin (állítsa Project Properties parancs | Általános | Strartup Object), ami a következőképpen néz ki:

Felhívjuk figyelmét, hogy a forma-képernyővédő jelenik itt csak nagyon rövid ideig (ebben az esetben a letöltési időt frmMain), majd eltűnik. Hogyan készítsünk egy ideiglenes késleltetés, megmutatjuk az alábbiakban.

Most, a Project ablak nyílik meg a Microsoft Word-objektumok csomópontot, és kattintson duplán a megjelenített ott állandó eleme ThisDocument (ami Excel illetve Microsoft Excel Objects | ThisWorkbook). Az ablakban, hogy a kód a listán az előre definiált esemény eljárások (a jobb felső sarokban), azt látjuk, Nyitott rutin. Hogy adott ellenőrzési idején megnyitja a dokumentumot, és itt meg lehet tenni bármilyen kódot végrehajtani a szükséges kiindulási műveleteket. Tedd meg az alábbi kódot (ábra 247-2.)

Ábra. 247-2 teszteléséhez ezt az eljárást, akkor először mentse és zárja be a dokumentumot, majd nyissa meg újra.

Tipp: Hogy elkerülje végleges bezárása megnyitásával dokumentum hibakeresés, módosítsa a leíró Sub Document_Open kulcsszó Private Public. Ebben az esetben ez az eljárás automatikusan bekerül a makrók listája dokumentumot, akkor elérheti bármikor, átrakás nélkül a dokumentumot.

Azonban, futás Document_Open eljárást, azt találjuk, hogy a természet munkája eltér hogyan működik egy normális Visual Basic: itt formátumok mód nem tűnik el, amíg a felhasználó nem zárja be.

Ennek az az oka, hogy a viselkedés a formát ki lehet nyitni két különböző módon: modális és nem modális. Az első esetben, a vezérlés, hogy egy teljesen (minden más felület elemeit elérhetetlenné válik a felhasználó számára), és visszatér a hívó program csak lezárása után a penész. A nem-modális üzemmódban a penész kinyílik, és a vezérlés azonnal visszatér az alkalmazást (a forma kezd dolgozni, mintha önálló üzemmódban, párhuzamosan az összes többi eleme a program).

A különbség a viselkedését a splash formában VB és a VBA, hogy hála a Show módszer az alapértelmezett paraméter az első esetben az öntőformát nyitni a nem-modális módba, és a második - a modális.

Hogy csináljuk, hogy forma-up kép nem villant a képernyőn, és maradt egy minimális ideig, pl 5 másodperc alatt? Használhatja a késleltetés szubrutin SleepVB meghatározott, a Tanács 246, majd megnyitja a dokumentum kód a következő lenne:

Ez a kiviteli alak azt mutatja, két hátránya van. Először is, ha a további művelet elvégzésére körülbelül 20 másodpercet, akkor ők még hozzá egy extra 10 másodpercet, ami már túl sok. Másodszor, a felhasználó nem lesz képes befolyásolni a csökkentés ezen késleltetés például önzáró forma-mód.

Ahhoz, hogy ezeket a hiányosságokat, meg kell írni a kódot közvetlenül a késleltetés a start-up eljárás:

Kérjük, vegye figyelembe, hogy itt már ki egy eljárásra való hivatkozás AllStartOperations miután megkapta a kezdeti időzítőt. Így a megjelenésének időpontját a képernyővédő a képernyőn lesz optimalizálva figyelembevételével időtartama műsort is, vagyis, már megszűnt az első hibabejegyzéshez lehetőségeket.

Ez azzal magyarázható, hogy a vezérlés visszakerül a hívó program egészen a teljes sorsolás teljes formájában, de ez a folyamat nem teljesíthető, mert a végrehajtási ciklus Do Hurok. DoEvents funkciót is lehetővé teszi, hogy végre más párhuzamos folyamatok, beleértve a befejezése a rajz képernyőn.

Hogyan fogjuk, hogy a felhasználó számára, hogy csökkentsék a késleltetési idő, például bezárja a forma képernyővédő kattintva? Lehet, hogy két lehetőség a végrehajtás a várakozási ciklust.
  • Elemzés a nyitott forma:

    De ez a lehetőség nem túl jó, mert ezen a ponton lehet nyitni akár bármely más formában alkalmazás (StartAllOperations eljárás). Ezért jobb, ha egy másik módszerrel.

  • Elemzés államformához splash:

    Ennyit a létrehozását a kiindulási képernyővédők. Felhívjuk figyelmét, hogy a végrehajtás a programozási konstrukciók VB és a VBA majdnem ugyanaz.

    Tanács 248. Hogyan lehet megtanulni programozás VBA környezetben

    Legalább a fele a kérdésre az „MS Office, amely a fejlesztés eszköze,” belépés a magyar támogatási központ kapcsolódik a téma a „hogyan kell tanulni program”: hogyan kell átalakítani az adatokat, hogyan kell dolgozni sztringek, hogyan kell használni az adatbázist, és így tovább.

    A válasz ezekre a kérdésekre igen egyszerű: tananyagok a programozási környezet szokásos VB. Ami magát a programot, MS Office és a VB metszik 70-80 százalék. És ne lepődj meg, hogy a könyv a „Office / VBA” kérdések kódolási technológiát gyakran magában elég takarékosan. Csak ezeket a témákat tárgyalja részletesebben más könyvekben.

    250. Amint azt a Tanács kódolás e-mail üzenetek

    Problémák a kettős dekódolás az e-mail üzenetek nem gyakori, de léteznek.

    Kapcsolódó cikkek