| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
| |||
| |||
|
Καλησπέρα σε όλους έχω ένα πρόβλημα σχετικά με την εντολή docmd.maximize εφαρμόζοντας την εντολή σε φόρμες, μου ανοίγει την φόρμα σε όλη την οθόνη και πίσω από την μπάρα τον windows (startup) με αποτέλεσμα να μου καλύπτει κάποιο κομμάτι της φόρμας. τι ρύθμιση έχω κάνει λάθος? Σας ευχαριστώ για το χρόνο σας. |
|
#2
| ||||
| ||||
|
Καλημέρα Θοδωρή! Κανονικά δεν συμβαίνει κάτι τέτοιο εκτός και αν η ιδιότητα "Στυλ περιγράμματος" μιας αναδυόμενης φόρμας έχει οριστεί σε "Κανένα". Ή λοιπόν αλλάζεις το στυλ περιγράμματος της φόρμας για να λειτουργήσει σωστά η μακροεντολή ή χρησιμοποιείς συναρτήσεις των Windows API κατά τη φόρτωση της φόρμας για να μην καλύψει ή να μην καλυφθεί από την μπάρα εργασίας του λειτουργικού. Ο κώδικας VBA σ΄αυτή την περίιπτωση είναι: Κώδικας: Option Compare Database
Option Explicit
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function SystemParametersInfo Lib "user32" Alias _
"SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef _
lpvParam As RECT, ByVal fuWinIni As Long) As Long
Private Declare Function MoveWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal _
x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal _
bRepaint As Long) As Long
Private Const SPI_GETWORKAREA = 48
' Private Sub cmdClose_Click()
' DoCmd.Close acForm, Me.Name
' End Sub
Private Sub Form_Load()
Dim oRect As RECT
Dim ret As Long
ret = SystemParametersInfo(SPI_GETWORKAREA, 0, oRect, 0)
If ret <> 0 Then
ret = MoveWindow(Me.hwnd, oRect.Left, oRect.Top, (oRect.Right - oRect.Left), (oRect.Bottom - oRect.Top), 1)
End If
End Sub
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
|
#3
| |||
| |||
|
καλημέρα Αν σχεδιαστεί η φόρμα για ανάλυση full hd, όταν θα ανοίξει σε άλλη "μικρότερη" ανάλυση, θα γίνει η μεγιστοποίηση αλλά τα controls θα προβάλλονται όμορφα στην οθόνη ή όχι; |
|
#4
| ||||
| ||||
|
Χρήστο, αν μια φόρμα έχει σχεδιαστεί για να λειτουργήσει σε οθόνες με διαστάσεις πχ. 1920 * 1080, εάν μεγιστοποιηθεί σε κάποια οθόνη με μικρότερη αναλυτικότητα (πχ. 1280 * 720) πολύ απλά τα στοιχεία που περιέχονται στα δεξιά της φόρμας δεν θα εμφανιστούν καθόλου. Γενικότερα οι φόρμες θα πρέπει να σχεδιάζονται για να "χωράνε" στις οθόνες των υπολογιστών προορισμού, όσο μικρές και αν είναι αυτές χωρίς να επηρεάζεται η λειτουργικότητα των πρώτων. Σήμερα μπορούμε να θεωρήσουμε ως ελάχιστο πλάτος μια οθόνης τα 1280 px. Υπάρχουν ελάχιστοι υπολογιστές που διαθέτουν οθόνες με ακόμα χαμηλότερη ανάλυση οθόνης. Με γνώμονα λοιπόν τα παραπάνω και με σεβασμό στο περιβάλλον εργασίας του χρήστη (μην του καλύπτουμε την μπάρα εργασίας για παράδειγμα), σχεδιάζουμε τις φόρμες φροντίζοντας να υπάρχει ομοιογένεια, συμμετρία, αλλά και αυξομοίωση του πλάτους ή ύψους των στοιχείων χρησιμοποιώντας ρυθμίζοντας τις ιδιότητες "Οριζόντια ή κατακόρυφη αγκύρωση". Περισσότερες λεπτομέρειες υπάρχουν εδώ: Make controls stretch, shrink, or move as you resize a form - Access - Office.com Οι ιδιότητες "Οριζόντια ή κατακόρυφη αγκύρωση" δεν υπάρχουν σε εκδόσεις microsoft Access < 2007. Υπάρχει ένα απλό παράδειγμα στο φόρουμ όπου αυξομειώνονται οι διαστάσεις αντικειμένων με χρήση VBA. Ο σύνδεσμος: http://www.ms-office.gr/forum/14682-post4.html Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
|
#5
| |||
| |||
|
Ευχαριστώ πολύ Taso. Έκανα αλλαγή στην ιδιότητα "Στυλ περιγράμματος" αναδυόμενης φόρμας που είχα ορίσει σε "Μεγάλο" το άλλαξα σε "Λεπτό" και τώρα βγαίνει πάνω από την μπάρα των windows. και πάλι ευχαριστώ πολύ για την πολύτιμη βοήθεια σου. Θοδωρής. |
|
#6
| |||
| |||
|
Τάσο σ' ευχαριστώ κι εγώ με τη σειρά μου για τις κατευθύνσεις σου. Θα επεξεργαστώ όσα ανέφερες.
|
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| Docmd.maximize | posidonas | Access - Ερωτήσεις / Απαντήσεις | 0 | 15-02-14 15:33 |
| Μέθοδος OpenReport του αντικειμένου DoCmd | ΤΖΙΜΗΣ | Access - Ερωτήσεις / Απαντήσεις | 3 | 10-07-11 21:58 |
Η ώρα είναι 05:36.


Αλλαγή σε γραμμικό τρόπο

