Olen tekemässä sommoista ohjelmaa, joka väläyttää tekstin niin nopeasti, että vain alitajunta tajuaa sen :D. Nyt tuli onkelmana vastaan, että miten tekstin(vaikkapa textbox1.text) saa välähtämään näytölle? Ja kaikkihan siis tapahtuu timerissa... Tarviiko siihen WinAPIja? jos tarvii niin mitkä WinApit?
Laitat timerissa tekstin ruudulle (vaikka Print) ja käynnistät samalla mahdollisimman lyhyen timerin (1ms), joka sitten pyyhkii tekstin. Ja toivot, että Windows lähettää tekstin näytölle asti tuon millisekuntin aikana.
Tai sitten voit kirjoittaa tekstin, kutsua DoEventsiä, odottaa hetken (sleep/wait/tms.) ja sitten pyyhkiä tekstin, niin et tarvitse ylimääräistä timeria.
Sub Odota(sekunnit As Single) Dim a As Single a = Timer Do While a + sekunnit > Timer DoEvents Loop End Sub Private Sub Form_Click() Print "tekstiä" Odota 0.1 Cls End Sub
Selitänpä nyt tarkasti... Formilla on viisi textboxia(text1,2,3...) ja niihin kirjoitetaan jotain... Sitten painetaan aloita ja formi häippäisee(me.hide) ja sen jälkee ne ponnahtais aina välillä näytölle. Sen takia kysyin winapeista koska se pitäis saaha ihan kaikkien ikkunoitten päälle vaikka formi on piilossa me.hidellä.
tajusiko kukaan... ?
Mää koitin kans tehä tommosta joskus, mutta siinä tuli vähän ongelmia.
Koitin ensin niin, että se piirtäis nollaikkunalle (desktopille) sen tekstin, mutta en keksiny mitään muuta tapaa pyyhkiä sitä tekstiä, ku pakottaa ko. ikkunan uudelleenmaalaus, joka välkyttää työpöydällä olevia ikoneita.
Sitten koitin, että luon ikkunan ja piirrän sen tekstin siihen, mutta siinäkin tuli ongelmia sen pyyhkimisen kans ja lisäks en saanu sitä ikkunaa niin, ettei se varastais fokusta aina, kun se ilmestyy näkyviin.
Lopulta kyllästyin ja hautasin projektin vähin äänin :)
Saat sorsat, jos tahot, mutta varotan jo näin etukäteen, että siellä ei montaa kommenttia ole :)
Laitappas linkkiä sorsiin, niin yritän niistä jotain saada selville. Ja toivottavasti ne auttais minuu.
Emmää niitä julkisesti kehtaa laittaa näkyville, mutta laitan paketin sulle mailiin.
Toivottavasti niistä jotain hyötyä on.
Aihe on jo aika vanha, joten et voi enää vastata siihen.