Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Farbfenster am Bildschirm zentrieren?
zurück: Automatikzahl mit datum hochzählen weiter: Formular öffnen: neuer Datensatz mit einem Feld vorausgefüll Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Wolfgang 1958
Trainer


Verfasst am:
13. Jun 2010, 20:32
Rufname: Wolfgang
Wohnort: Geretsried

Farbfenster am Bildschirm zentrieren? - Farbfenster am Bildschirm zentrieren?

Nach oben
       Version: Office 2007

Hallo Fachleute,

für die Farbeinstellung eines Feldes habe ich einen Link von Euch bekommen, der einen Farbdialog ermöglicht.
Code:
' Original Code by Terry Kreft
' Modified by Stephen Lebans
' Contact Stephen@lebans.com

Option Compare Database
Option Explicit
'***********  Code Start  ***********

Global Farbe As Double

Private Type COLORSTRUC
    lStructSize As Long
    hwnd As ong
    hInstance As Long
    rgbResult As Long
    lpCustColors As String
    Flags As Long
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
End Type

Private Const CC_RGBINIT = &H1
Private Const CC_FULLOPEN = &H2
Private Const CC_PREVENTFULLOPEN = &H4
Private Const CC_SHOWHELP = &H8
Private Const CC_ENABLEHOOK = &H10
Private Const CC_ENABLETEMPLATE = &H20
Private Const CC_ENABLETEMPLATEHANDLE = &H40
Private Const CC_SOLIDCOLOR = &H80
Private Const CC_ANYCOLOR = &H100

Private Declare Function ChooseColor Lib "comdlg32.dll" Alias _
    "ChooseColorA" (pChoosecolor As COLORSTRUC) As Long

Public Function aDialogColor(prop As Property) As Boolean
    Dim x As Long, CS As COLORSTRUC, CustColor(16) As Long
   
    CS.lStructSize = Len(CS)
    CS.hwnd = hWndAccessApp
    CS.rgbResult = Nz(prop.Value, 0)
    CS.Flags = CC_SOLIDCOLOR Or CC_RGBINIT
    CS.lpCustColors = String$(16 * 4, 0)
    x = ChooseColor(CS)
    If x = 0 Then
        ' ERROR - use Default White
        ' prop = RGB(255, 255, 255) ' White
        ' Farbe = CS.rgbResult
        ' aDialogColor = False
        Exit Function
      Else
        ' Normal processing
         prop = CS.rgbResult
         Farbe = CS.rgbResult
    End If
    aDialogColor = True
End Function
'***********  Code End   ***********
' If you want this Function to simply Return
' the Value of the Color the user selected
' from the Dialog just change the Function
' Declaration in modColorPicker to something like:
'Public Function DialogColor(ctl As Control) As Long
' Remember to add the line of code at the
' end of the Function
'DialogColor = CS.rgbResult
' Then call it from your Form with code like:

'***Code Start
'Private Sub CmdChooseBackColor_Click()
' Pass the TextBox Control to the function
'    Me.textCtl.BackColor = DialogColor(Me.textCtl)
'End Sub
Wie kann ich den Code ändern, damit das Dialogfenster nicht oben rechts steht, sondern möglichst mittig auf der Seite?
Für Tipps wäre ich dankbar.

Liebe Grüße und einen schönen Sonntagabend

Wolfgang

_________________
Ich freue mich über ein Feedback.
Nouba
nicht ganz unwissend :)


Verfasst am:
14. Jun 2010, 01:04
Rufname:
Wohnort: Berlin


AW: Farbfenster am Bildschirm zentrieren? - AW: Farbfenster am Bildschirm zentrieren?

Nach oben
       Version: Office 2007

Hallo Wolfgang,

ich habe Dir mal ein Beispiel gebastelt.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.



FarbDialogMitRueckruf.zip
 Beschreibung:

Download
 Dateiname:  FarbDialogMitRueckruf.zip
 Dateigröße:  33.02 KB
 Heruntergeladen:  56 mal

Wolfgang 1958
Trainer


Verfasst am:
19. Jun 2010, 10:58
Rufname: Wolfgang
Wohnort: Geretsried

AW: Farbfenster am Bildschirm zentrieren? - AW: Farbfenster am Bildschirm zentrieren?

Nach oben
       Version: Office 2007

Wolfgang 1958 am 14. Jun 2010 um 07:55 hat folgendes geschrieben:
Hallo Nouba,

vielen lieben Dank. Das ist ja ein tolles Teil.
Jetzt muss ich mich damit aber ersteinmal zurechtfinden. Ich werde mich in den VBA Code einlesen.
Nochmals danke und

ciao

Wolfgang

Hallo Nouba,

leider kann ich Deinen Code mangels meiner VBA-Kenntnisse, nicht so anpassen, dass ich ihn verwenden kann.
Vielleicht kannst Du oder jeman anderer mir dabei behilflich sein?
Ich habe einen Button mit der Beschriftung "Kursfarbe wählen"
Ich habe ein Feld "Kursfarbe" in der nach dem Wählen die Farbe als Long enthalten sein soll.
Ich würde gerne den Farbdialog immer zentriert zum aktuellen Formular aufrufen lassen.
Wer kann mir helfen?
Ich bekomme das leider nicht hin.
Liebe Grüße aus dem Oberland und

ciao

Wolfgang

_________________
Ich freue mich über ein Feedback.
derArb
getting better


Verfasst am:
19. Jun 2010, 11:43
Rufname: derArb
Wohnort: Berlin

AW: Farbfenster am Bildschirm zentrieren? - AW: Farbfenster am Bildschirm zentrieren?

Nach oben
       Version: Office 2007

Hallo,

da möchte man am liebsten seinen kleinen Programmierpinsel wegwerfen bei solch
begnadeter Programmierkunst von Nouba.

@Wolfgang1958:
Der Wert 1 statt Me.fraOption ergibt Zentrierung
Code:
Private Sub cmdShowColorDlg_Click()
On Error GoTo Proc_Error
    Dim NewColor As Long
   
    Call DlgInitMoveSystem(Me.fraOption, Me.txtOffset) '<<<<< HIER
    NewColor = ShowColor(Me, GetProp(PropName), m_lColors, 1)
    If NewColor <> -1 Then
        Call SetFormColor(NewColor)
        Call SetProp(PropName, (NewColor))
      Else
        MsgBox "Operation abgebrochen"
    End If
Exit_Proc:
    On Error GoTo 0
    Exit Sub
Proc_Error:
    MsgBox "Fehler " & Err.Number & " (" & Err.Description & ") in Routine " _
         & "cmdShowColorDlg_Click in VBA Dokument Form_frmFarbDialog"
    Resume Exit_Proc
End Sub

derArb

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
Wolfgang 1958
Trainer


Verfasst am:
19. Jun 2010, 12:17
Rufname: Wolfgang
Wohnort: Geretsried


AW: Farbfenster am Bildschirm zentrieren? - AW: Farbfenster am Bildschirm zentrieren?

Nach oben
       Version: Office 2007

Hallo derArb,

ja, da gebe ich Dir recht, die Programmierung vom Nouba ist schon toll. Aber für einen VBA-Dummi, wie mich, zu hoch.
Ich habe nun den gesamten Code des Formulars (einschl. die eine Zeile von Dir markiert) in mein Formular reinkopiert.
Das Farbmodul ebenso.
Dann noch den Knopf zum Aufruf des Farbdialogs und das Feld offset.
Leider funktioniert garnichts.
Der Knopf Farbdialog ist weiß und läßt sich nicht anklicken.
Ich brauche letztlich nicht alle Funktionen, die in dem Programm vom Nouba enthalten sind.

Ich brauche nur eine Funktion, die ich mit einem Butto aufrufen kann und die mir dann das Farb-Dialogfenster zentriert öffnet und den Farbwert zurückliefert, bei Abbruch -1.
Dann könnte ich das Ganze bei mir erfolgreich einbauen.
Wer hilft weiter?
Wie schon gesagt, alleine bin ich dazu nicht in der Lage.

Liebe Grüße

Wolfgang

_________________
Ich freue mich über ein Feedback.
derArb
getting better


Verfasst am:
19. Jun 2010, 12:30
Rufname: derArb
Wohnort: Berlin

AW: Farbfenster am Bildschirm zentrieren? - AW: Farbfenster am Bildschirm zentrieren?

Nach oben
       Version: Office 2007

Hallo,

geh doch mal Schritt für Schritt vor.
Ändere in Noubas Beispiel DB mal:
Code:
Private Sub cmdShowColorDlg_Click()
On Error GoTo Proc_Error
    Dim NewColor As Long
   
    'Call DlgInitMoveSystem(Me.fraOption, Me.txtOffset)
    Call DlgInitMoveSystem(1, 30)
    NewColor = ShowColor(Me, GetProp(PropName), m_lColors, 1)
    If NewColor <> -1 Then
        Call SetFormColor(NewColor)
        MsgBox "Dein neuer Farbwert (long) ist: " & NewColor
        Debug.Print NewColor
        Call SetProp(PropName, (NewColor))
      Else
        MsgBox "Operation abgebrochen"
    End If
Exit_Proc:
    On Error GoTo 0
    Exit Sub
Proc_Error:
    MsgBox "Fehler " & Err.Number & " (" & Err.Description & ") in Routine " _
         & "cmdShowColorDlg_Click in VBA Dokument Form_frmFarbDialog"
    Resume Exit_Proc
End Sub
Dann hast Du immer zentriert und bekommst Deine Farbe als Longwert angesagt
Hier mal die Nouba DB modifiziert mit einem anderen Formular

MfG
derArb

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.



FarbDialogMitRueckruf [modifiziert] [1].zip
 Beschreibung:
mdb

Download
 Dateiname:  FarbDialogMitRueckruf [modifiziert] [1].zip
 Dateigröße:  37.82 KB
 Heruntergeladen:  43 mal

Wolfgang 1958
Trainer


Verfasst am:
19. Jun 2010, 13:28
Rufname: Wolfgang
Wohnort: Geretsried

AW: Farbfenster am Bildschirm zentrieren? - AW: Farbfenster am Bildschirm zentrieren?

Nach oben
       Version: Office 2007

Vielen lieben Dank Nouba,

Deine modifizierte Datenbank mit dem Beilspiel eines Buttons war's. Das hat mir geholfen den Code an mein Formular anzupassen.
Nochmals lieben Dank und noch ein schönes Wochenende

Wolfgang

_________________
Ich freue mich über ein Feedback.
ManfredPrefi
Im Profil kannst Du frei den Rang ändern


Verfasst am:
20. Jan 2014, 15:28
Rufname:

AW: Farbfenster am Bildschirm zentrieren? - AW: Farbfenster am Bildschirm zentrieren?

Nach oben
       Version: Office 97

Hallo,
ich bin auf diesen Thread gestoßen, weil ich auch an einer Farbauswahl bastele.
Leider laufen die beiden Beispieldatenbanken (FarbDialog........) auf meinem Rechner nicht. Kann es sein, dass das bei ACCESS 97 noch nicht funktioniert? Dann brauche ich nicht unnütz herumzustochern.
Danke für einen Hinweis.
Freundliche Grüß
ManfredPrefi
derArb
getting better


Verfasst am:
20. Jan 2014, 15:40
Rufname: derArb
Wohnort: Berlin

AW: Farbfenster am Bildschirm zentrieren? - AW: Farbfenster am Bildschirm zentrieren?

Nach oben
       Version: Office 2007

Hallo,
ich kanns nur ab Access XP (2002) bestätigen. Access 97 hab ich leider nicht.

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
Blackpit
Im Profil kannst Du frei den Rang ändern


Verfasst am:
20. Jan 2014, 15:44
Rufname:

AW: Farbfenster am Bildschirm zentrieren? - AW: Farbfenster am Bildschirm zentrieren?

Nach oben
       Version: Office 2007

Hallo Manfred,

sollte imo auch mit Acc97 laufen, dazu sollte die DB aber auch im entsprechenden Format vorliegen. Hast Du den runterkonvertiert und die Verweise angepasst?


Im Anhang auf Acc97 konvertiert.
Testen kann ich mangels Acc97 leider auch nicht.

Gruß

BP



FarbDialogMitRueckrufAcc97.zip
 Beschreibung:

Download
 Dateiname:  FarbDialogMitRueckrufAcc97.zip
 Dateigröße:  39.51 KB
 Heruntergeladen:  3 mal

ManfredPrefi
Im Profil kannst Du frei den Rang ändern


Verfasst am:
20. Jan 2014, 18:37
Rufname:

AW: Farbfenster am Bildschirm zentrieren? - AW: Farbfenster am Bildschirm zentrieren?

Nach oben
       Version: Office 2007

Hallo Blackpit,

Danke für die schnelle Hilfe.
Leider kommt eine Fehlermeldung bei folgender CODE-Stelle:

Code:
Public Enum MoveEnum
  MM_NONE = 0
  MM_SCREEN_CENTER = 1
  MM_PARENT_CENTER = 2
  MM_PARENT_SHIFT = 3
  MM_MOUSE_SHIFT = 4
End Enum


Ähnliche Stellen sind noch im Modul-enthalten:
Code:
Public Enum ColorFlag
  CC_RGBINIT = &H1
  CC_FULLOPEN = &H2
  CC_PREVENTFULLOPEN = &H4
  CC_SHOWHELP = &H8
  CC_ENABLEHOOK = &H10
  CC_ENABLETEMPLATE = &H20
  CC_ENABLETEMPLATEHANDLE = &H40
  CC_SOLIDCOLOR = &H80
  CC_ANYCOLOR = &H100
End Enum

und
Code:
'Rückruffunktion ggf. initialisieren
  If CurMoveMode <> MM_NONE Then
    cc.Flags = cc.Flags Or CC_ENABLEHOOK
    cc.lpfnHook = FARPROC(AddressOf DlgMoveProc)
  End If


Kann das noch an ACCESS 97 liegen?
Du schreibst etwas von
dazu sollte die DB aber auch im entsprechenden Format vorliegen. Hast Du den runterkonvertiert?
Ich habe zunächst nur versucht, die DEMO-DB zu öffnen. Eingefügt in meine DB noch nicht.

Gruß
ManfredPrefi
Nouba
nicht ganz unwissend :)


Verfasst am:
20. Jan 2014, 18:50
Rufname:
Wohnort: Berlin

AW: Farbfenster am Bildschirm zentrieren? - AW: Farbfenster am Bildschirm zentrieren?

Nach oben
       Version: Office 2007

Hallo,

der Kode läuft nicht unter Access 97, weil dieses keinen AddressOf-Operator unterstützt. Du kannst aber versuchen, mit Access/Office and AddressOf Operator herumzuspielen. Die Aufzählungen (Enums) kannst Du als Public Konstanten definieren.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
Gast



Verfasst am:
20. Jan 2014, 21:01
Rufname:


AW: Farbfenster am Bildschirm zentrieren? - AW: Farbfenster am Bildschirm zentrieren?

Nach oben
       Version: Office 2007

@Nouba
Ok, so genau habe ich den Code beim überfliegen nicht analysiert Wink

@Manfred
Kommst Du mit Nouba's Hinweisen (Ersatzfunktion erstellen) weiter?

Gruß

BP
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Formulare: Flackern Bildschirm wenn ich über Kontrollkästchen fahre 1 sammy65 95 07. Nov 2013, 13:55
Gast Flackern Bildschirm wenn ich über Kontrollkästchen fahre
Keine neuen Beiträge Access Formulare: Breite vom Unterformular an Bildschirm anpassen 0 Gast 372 29. Feb 2012, 11:30
Gast Breite vom Unterformular an Bildschirm anpassen
Keine neuen Beiträge Access Programmierung / VBA: Formular zentrieren 1 der_Neue_123 273 10. Nov 2011, 14:33
der_Neue_123 Formular zentrieren
Keine neuen Beiträge Access Programmierung / VBA: Input-Box auf Bildschirm zentrieren 3 4pandora4 1576 10. Mai 2010, 08:57
4pandora4 Input-Box auf Bildschirm zentrieren
Keine neuen Beiträge Access Formulare: Text in Textfeld vertikal zentrieren 2 Joe_Ack 2481 02. Nov 2009, 19:36
AccessFriend Text in Textfeld vertikal zentrieren
Keine neuen Beiträge Access Programmierung / VBA: Aktueller Bildschirm drucken (PrintScreen) {Nachgefragt} 1 Andre4_ 4419 01. Jul 2009, 11:08
Johannn Aktueller Bildschirm drucken (PrintScreen) {Nachgefragt}
Keine neuen Beiträge Access Formulare: Formulare an Bildschirm anpassen 1 miketec 4230 08. Okt 2008, 12:09
flobuster Formulare an Bildschirm anpassen
Keine neuen Beiträge Access Programmierung / VBA: Recordset sich auf dem Bildschirm ausgeben 2 vbn 887 29. Aug 2008, 13:22
steffen0815 Recordset sich auf dem Bildschirm ausgeben
Keine neuen Beiträge Access Programmierung / VBA: Geflackere auf dem Bildschirm bei Me.Requery 4 Acan 1807 12. Jun 2008, 13:35
Gast Geflackere auf dem Bildschirm bei Me.Requery
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle/Abfrage beim Öffnen fast so groß wie Bildschirm 3 Der_Andi1984 790 23. Feb 2008, 20:26
KlausMz Tabelle/Abfrage beim Öffnen fast so groß wie Bildschirm
Keine neuen Beiträge Access Formulare: Mehrere Zeilen in MsgBox zentrieren? 2 goofi 3902 08. Jan 2008, 13:16
goofi Mehrere Zeilen in MsgBox zentrieren?
Keine neuen Beiträge Access Formulare: Aufrufenden Bericht zentrieren 1 ZAVJAH 1574 10. Okt 2007, 13:40
Köbi Aufrufenden Bericht zentrieren
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Expression Web Forum