|
Microsoft Office Access |
|
|
Trepćuća naslovna linijaNivo:
Ponekad je potrebno korisniku skrenuti posebnu pažnju na neku od formi; to može biti zato što nije popunio sve podatke ili neke od njih nije popunio ispravno, a možda je neki drugi korisnik u mrežnom okruženju intervenisao na podacima koje formular upravo prikazuje. Evo predloga: naterajte naslovnu liniju da trepće; to će sigurno biti dovoljno upadljivo. U sklopu VBA funkcija Accessa nećete naći funkciju za treptanje naslovne linije forme ili njene ikone, kada je formular umanjen. Međutim, ta funkcija već nalazi u okviru Windows API funkcija, pod nazivom FlashWindow. Deklaracija i upotreba funkcije su sledeći: Sekcija deklaracije: Private Declare Function FlashWindow _ Lib "User32" (ByVal hWnd As Long, _ ByVal lngInvert As Long) As Long Definišite promenljivu na nivou modula: Dim mhWnd As Long Pridružite program nekom događaju formulara (u ovom slučaju OnTimer):
Private Sub Form_Timer()
mhWnd = Forms("Naziv Forme").hWnd
FlashWindow mhWnd, True
' treptenje isključite naredbom
' FlashWindow mhWnd, False
End Sub
API funkcija FlashWindow uzima dve vrednosti za parametre: jedinstvenu 32-bitnu vrednost naziva prozora i logičku vrednost. Naime, kada Windows kreira novi prozor (kao kada u Accessu pokrenete neki formular), njemu se dodeljuje jedinstveni 32-bitni broj. Taj broj koriste ostali programi da bi direktno komunicirali sa tačno određenim prozorom. Access ovaj broj čuva u okviru svoje osobine hWnd, od koga API funkcija preuzima naziv prozora upravo kao taj jedinstveni broj, a ne kao naziv formulara. Na ovaj način, omogućeno je da izvedete trepćuću naslovnu liniju bilo kojeg formulara, a ne samo onog koji je u fokusu. Kada kao drugi parametar pošaljete logičku vrednost False, naslovna linija se vraća u svoju prvobitnu boju. Brzinu treptanja naslovne linije kontrolišete komandom TimerInterval. Postavite ovu vrednost tako što ćete u funkciju dodati: Me.TimerInterval = 1000 Time obezbeđujete interval treptanja od 1000 milisekundi. Na sporijim računarima ćete primetiti da ovaj interval nije sasvim tačno jedna sekunda, već malo duži, kao što ćete verovatno primetiti da treptanje ne započinje tačno posle intervala koji ste zadali. Razlog tome je što je prioritet izvršavanja ove sistemske funkcije niži od prioriteta miša, tastature i događaja na ekranu. Konačno, da biste postigli da se program na ovom događaju nikada ne izvršava, postavite vrednost funkcije TimerInterval na 0 ms. Verovatno ste već primetili da završetkom rada funkcije za treptanje naslovne linije, aktivna forma ostaje u boji koja označava formular koji nije u fokusu. Boja naslovne linije se neće promeniti sve dok ne postavite u fokus drugi formular, a zatim vratite fokus na formular čija je naslovna linija treptala. Da biste ovo izbegli, neophodno je da izvršite komandu FlashWindow mhWnd, False Funkciju treptanja koristite retko i u posebnim slučajevima - i u samom Windowsu ćete retko videti trepćuću ikonu ili naslovnu liniju programa. Kako FlashWindow prihvata za parametar brojčani identifikator bilo kojeg prozora, njome možete naterati da naslovna linija Accessa trepće, pa čak i da trepće naslovna linija bilo kog drugog programa (postoje Windows API funkcije koje sadrže mehanizam za prepoznavanje svih pokrenutih programa).
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2011; Valinor Design; sva prava pridržana. |