Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   ΚΥΛΙΟΜΕΝΟ ΜΥΝΗΜΑ ΣΕ ΦΟΡΜΑ ΕΚΚΙΝΗΣΗΣ (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/986-kyliomeno-mynhma-se-forma-ekkinhshs.html)

ΤΖΙΜΗΣ 23-02-11 13:20

ΚΥΛΙΟΜΕΝΟ ΜΥΝΗΜΑ ΣΕ ΦΟΡΜΑ ΕΚΚΙΝΗΣΗΣ
 
Καλησπέρα σε όλους.
Αν μπορούσε κάποιος να μας πει, πως μπορούμε να ορίσουμε ένα κυλιόμενο μήνυμα (σε Access 2003) πριν ή ταυτόχρονα σε μια φόρμα εκκίνησης που έχουμε δημιουργήσει.
Ευχαριστώ και να είστε όλοι πάντα καλά.

Tasos 23-02-11 15:24

1 Συνημμένο(α)
Καλησπέρα σε όλους

Τζίμη,
επειδή σε φόρμες εκκίνησης πολλές φορές είναι δεσμευμένο το συμβάν 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.
Επίσης δέχεται οποιαδήποτε παραμετροποίηση.
Το αποτέλεσμα του κώδικα αυτού μπορείς να το δεις στο συνημμένο παρακάτω

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

Φιλικά
Τάσος

editolis 23-02-11 16:05

1 Συνημμένο(α)
Δες και ενα αλλο παραδειγμα με δεσμευση ομως του Timer...

ΤΖΙΜΗΣ 23-02-11 22:49

Τάσο, σε ευχαριστώ πάρα πολύ, για τη μεγάλη βοήθεια που μου έδωσες.

Meteora 24-02-11 08:58

Καλημέρα μας...

Τάσο και Τόλη θερμά ευχαριστώ και για αυτή την προσφορά σας.

Φιλικά

Νίκος Δ.

kapetang 24-02-11 16:14

1 Συνημμένο(α)
Καλησπέρα στην παρέα

Η βάση δεδομένων που επισυνάπτω, περιέχει δύο φόρμες (frmMove, frmMove2) που δείχνουν δύο διαφορετικούς τρόπους κίνησης κειμένου (αντικειμένου).
Όπως και στη λύση του Τόλη χρησιμοποιείται το συμβάν Timer, αλλά το κείμενο που μετακινείται βρίσκεται σ’ ένα χειριστήριο OLE. Έτσι έχουμε τη δυνατότητα να πετύχουμε κίνηση όχι μόνο σε κείμενο, αλλά και σε κάθε αντικείμενο που μπορεί να περιέχει ένα χειριστήριο OLE.
Η κίνηση επιτυγχάνεται μεταβάλλοντας τη θέση και το πλάτος του χειριστηρίου OLE.
Στη βάση πρόσθεσα και τις ωραίες λύσεις των φίλων Τάσου(Form1) και Τόλη (Frm1), για να υπάρχουν όλες συγκεντρωμένες.
Τέλος πιστεύω ότι θα υπάρχει κάποιο έτοιμο χειριστήριο «Banner» που θα λύνει το πρόβλημα ευκολότερα και καλύτερα (ομαλότερη κίνηση, φλας, κλπ)), αλλά θέλει ψάξιμο στο διαδίκτυο.

Φιλικά/Γιώργος

ΤΖΙΜΗΣ 25-02-11 14:48

Τόλη και Γιώργο πολλά ευχαριστώ και σε σας για τη μεγάλη βοήθεια
Φιλικά Τζίμης.


Η ώρα είναι 18:53.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2