Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 23-02-11, 15:24
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλησπέρα σε όλους

Τζίμη,
επειδή σε φόρμες εκκίνησης πολλές φορές είναι δεσμευμένο το συμβάν Timer που θα μας
βοηθούσε να δημιουργήσουμε αυτό το κυλιόμενο κείμενο,
η πρόταση μου είναι να δημιουργηθεί σε WebBrowser Control (ActiveΧ που υπάρχει πάντα σε όλα τα Windows).

Έστω ότι έχουμε ένα πίνακα με το όνομα Table1 και τα εξής πεδία:
  • msgID (αριθμός, στο παράδειγμα μας η τιμή του είναι 1)
  • msg (Υπόμνημα, στο παράδειγμα μας η τιμή του είναι "ms-office.gr - Το κυλιώμενο μήνυμα...")
Αφού εισάγουμε λοιπόν το "WebBrowser Control", στο συμβάν Load() της φόρμας
βάζουμε τον παρακάτω κώδικα.

Κώδικας:
Option Explicit

Private Sub Form_Load()
    Dim htm As String, TheMessage As String, wb As WebBrowser
    TheMessage = DLookup("[msg]", "[Table1]", "[msgID] = 1")
    htm = "<html><body style=" & Chr(34) & "background-color: buttonface; border-style:none; " & _
            "overflow:hidden; margin:0px; font-family:Verdana; font-size:12px; color:buttontext" & Chr(34) & _
            "><marquee behavior=""scroll"" direction=""left"" scrollamount=""10"">" & TheMessage & _
            "</marquee><body><html>"
    Set wb = Me.WebBrowser0.Object
    wb.Navigate2 "about:blank"
    While wb.ReadyState <> READYSTATE_COMPLETE
        DoEvents
    Wend
    wb.Document.write htm
End Sub
Σημείωση: Η ταχύτητα κύλισης αυξάνεται ανάλογα με την τιμή 'scrollamount'

Όπως ανέφερα και πιο πάνω, η λύση αυτή τη θεωρώ πιο ελαστική αφου τρέχει μια και μοναδική φορά χωρίς να φορτίζει την Access μέσω του συμβάντος Timer.
Επίσης δέχεται οποιαδήποτε παραμετροποίηση.
Το αποτέλεσμα του κώδικα αυτού μπορείς να το δεις στο συνημμένο παρακάτω

Καλή συνέχεια!

Φιλικά
Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb AccMarquee.mdb (216,0 KB, 163 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 23-02-11 στις 18:04. Αιτία: Τυπογραφικό λάθος στο συνημμένο
Απάντηση με παράθεση