collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 57
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13808
  • stats Beiträge insgesamt: 64171
  • stats Themen insgesamt: 8679
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Farbkonstanten für die Hintergrundfarbe eines Textfeldes  (Gelesen 6452 mal)

Offline mradlmaier

  • Newbie
  • Beiträge: 33
Hallo,

Ich möchte den Hintergrund eines Textfeldes zwischen weiss und transparent umschalten. Zur Design-time funktioniert das auch gut mit den Eigenschaften Hintergrundart = Transparent und Hintergrundfarbe = Hintergrundformular für transparenten Hintergrund und den Eigenschaften Hintergrundart = Normal und Hintergrundfarbe = #FFFFFF für weiss.

Zu Laufzeit würde ich das gerne programmatisch machen. Habe einiges ausprobiert, funktioniert nur nicht...

Weiss jemand wie man das macht?

Danke
 

Offline database

  • Moderator
  • Access Guru
  • *****
  • Beiträge: 4178
Re: Farbkonstanten für die Hintergrundfarbe eines Textfeldes
« Antwort #1 am: Mai 14, 2010, 20:34:29 »
Hallo,
sowas kannst du zb mit Hilfe einer Umschaltfläche realisieren.
Private Sub TGLButton_Click()
   
    Dim lngWhite As Long
    lngWhite = RGB(255, 255, 255)

    If Me!DeinTextfeld.BackStyle = 1 Then
        Me!DeinTextfeld.BackColor = lngWhite
        Me!DeinTextfeld.BackStyle = 0
    Else
        Me!DeinTextfeld.BackStyle = 1
    End If

End Sub

Damit wird zwischen transparent und nicht transparent hin und her geschaltet.
Wenn der Hintergrund nicht transparent ist, dann wird er weiss dargestellt.

HTH

Peter
Viele Grüße
Peter

Tipps und Links:
---------------------------------------------------------
1. http://www.donkarl.com
2. http://www.access-entwicklerbuch.de/2007/index.php?page=buch
3. http://www.xlam.ch/pos/rules.htm
3.a Reservierte Worte
4. http://www.functionx.com/vbaccess/index.htm
5. http://www.dbwiki.net

Nicht vergessen: Jede(r) hat mal klein angefangen!
Bitte keine Fragen per PN senden - Fragen gehören ins Forum!
 

Offline mradlmaier

  • Newbie
  • Beiträge: 33
Re: Farbkonstanten für die Hintergrundfarbe eines Textfeldes
« Antwort #2 am: Mai 14, 2010, 20:44:30 »
Peter,

das wäre einleuchtend.
Wenn ich das aber in meine Code integriere, funktioniert das nicht:


Private Sub Form_Current()
    Dim lngWhite As Long
    lngWhite = RGB(255, 255, 255)
    If Me.NewRecord = True Then
        'hier der Code der bei einem neuen Datensatz gilt
        essDatum.ShowDatePicker = 1
        essDatum.BackStyle = 0
        essDatum.BackColor = lngWhite
        essDatum.Locked = False
    Else
        'hier der Code der bei einem existierendem Datensatz gilt
        essDatum.ShowDatePicker = 0
        essDatum.BackStyle = 1
        essDatum.Locked = True
    End If
End Sub

Ich möchte den Hintergrund wechseln in Abhängigkeit davon, ob der Datensatz neu ist oder nicht...

Hallo,
sowas kannst du zb mit Hilfe einer Umschaltfläche realisieren.
Private Sub TGLButton_Click()
   
    Dim lngWhite As Long
    lngWhite = RGB(255, 255, 255)

    If Me!DeinTextfeld.BackStyle = 1 Then
        Me!DeinTextfeld.BackColor = lngWhite
        Me!DeinTextfeld.BackStyle = 0
    Else
        Me!DeinTextfeld.BackStyle = 1
    End If

End Sub

Damit wird zwischen transparent und nicht transparent hin und her geschaltet.
Wenn der Hintergrund nicht transparent ist, dann wird er weiss dargestellt.

HTH

Peter
 

Offline database

  • Moderator
  • Access Guru
  • *****
  • Beiträge: 4178
Re: Farbkonstanten für die Hintergrundfarbe eines Textfeldes
« Antwort #3 am: Mai 14, 2010, 21:21:28 »
Hallo,

habe das eben mal nachgestellt - bei mir läuft's ordnungsgemäß mit folgender Logik
wenn es sich um einen neuen Datensatzz handelt soll das essFeld beschreibbar sein und weiß dargestellt werden.
Also backStyle = 0, backcolor = lngWhite
Zusätzlich schiebe ich den Focus auf ein anderes Feld (Me!bezeichnung.SetFocus und
setze für das essFeld Locked = true, Enabled=False
Folgender Code..
Private Sub Form_Current()
    Dim lngWhite As Long
    lngWhite = RGB(255, 255, 255)
    If Me.NewRecord = True Then
        'hier der Code der bei einem neuen Datensatz gilt
        'essDatum.ShowDatePicker = 1
'        essDatum.BackStyle = 0
'        essDatum.BackColor = lngWhite
'        essDatum.Locked = False
        Me.bezeichnung.SetFocus
        Me.Text2.BackColor = lngWhite
        Me.Text2.BackStyle = 1  '0 für Transparent!
        Me.Text2.Locked = False
        Me.Text2.Enabled = True
    Else
        'hier der Code der bei einem existierendem Datensatz gilt
'        essDatum.ShowDatePicker = 0
'        essDatum.BackStyle = 1
'        essDatum.Locked = True
        Me.bezeichnung.SetFocus
        Me.Text2.BackStyle = 0
        Me.Text2.Locked = True
        Me.Text2.Enabled = False
    End If
End Sub

Grüße
Peter
Viele Grüße
Peter

Tipps und Links:
---------------------------------------------------------
1. http://www.donkarl.com
2. http://www.access-entwicklerbuch.de/2007/index.php?page=buch
3. http://www.xlam.ch/pos/rules.htm
3.a Reservierte Worte
4. http://www.functionx.com/vbaccess/index.htm
5. http://www.dbwiki.net

Nicht vergessen: Jede(r) hat mal klein angefangen!
Bitte keine Fragen per PN senden - Fragen gehören ins Forum!
 

Offline mradlmaier

  • Newbie
  • Beiträge: 33
Re: Farbkonstanten für die Hintergrundfarbe eines Textfeldes
« Antwort #4 am: Mai 15, 2010, 13:47:49 »
Peter,

setEnabled = false deaktiviert die Filtermöglichkeit, das wäre unerwünscht. Geht´s nicht noch anders?
 

Offline mradlmaier

  • Newbie
  • Beiträge: 33
Re: Farbkonstanten für die Hintergrundfarbe eines Textfeldes
« Antwort #5 am: Mai 15, 2010, 13:59:06 »
Peter,

Kannst Du mich erleuchten, warum Du den Focus verschiebst? Ich würde den gerne da lassen wo er war...
Außerdem verstehe ich nicht, warum ich dir Hintergrundfarbe explizit auf weiß setzen muss? Wenn ich die Eigenschaften zur Design-time setze, brauche ich bloß die Hintergrundart von Normal auf Transparent zu setzen, um gewünschten Effekt zu erzielen?

Hallo,

habe das eben mal nachgestellt - bei mir läuft's ordnungsgemäß mit folgender Logik
wenn es sich um einen neuen Datensatzz handelt soll das essFeld beschreibbar sein und weiß dargestellt werden.
Also backStyle = 0, backcolor = lngWhite
Zusätzlich schiebe ich den Focus auf ein anderes Feld (Me!bezeichnung.SetFocus und
setze für das essFeld Locked = true, Enabled=False
Folgender Code..
Private Sub Form_Current()
    Dim lngWhite As Long
    lngWhite = RGB(255, 255, 255)
    If Me.NewRecord = True Then
        'hier der Code der bei einem neuen Datensatz gilt
        'essDatum.ShowDatePicker = 1
'        essDatum.BackStyle = 0
'        essDatum.BackColor = lngWhite
'        essDatum.Locked = False
        Me.bezeichnung.SetFocus
        Me.Text2.BackColor = lngWhite
        Me.Text2.BackStyle = 1  '0 für Transparent!
        Me.Text2.Locked = False
        Me.Text2.Enabled = True
    Else
        'hier der Code der bei einem existierendem Datensatz gilt
'        essDatum.ShowDatePicker = 0
'        essDatum.BackStyle = 1
'        essDatum.Locked = True
        Me.bezeichnung.SetFocus
        Me.Text2.BackStyle = 0
        Me.Text2.Locked = True
        Me.Text2.Enabled = False
    End If
End Sub

Grüße
Peter
« Letzte Änderung: Mai 15, 2010, 14:03:47 von mradlmaier »
 

Offline database

  • Moderator
  • Access Guru
  • *****
  • Beiträge: 4178
Re: Farbkonstanten für die Hintergrundfarbe eines Textfeldes
« Antwort #6 am: Mai 16, 2010, 13:36:17 »
Hallo,
ich weiß, ein bisschen spät aber dennoch die Erklärungen:

Zitat
Außerdem verstehe ich nicht, warum ich dir Hintergrundfarbe explizit auf weiß setzen muss
Da ich ja nicht weiß, welche Hintergrundfarbe dein Detailbereich hat, welche Farbe DU eingestellt hast UND aus diesem Grund...

Zitat
Ich möchte den Hintergrund eines Textfeldes zwischen weiss und transparent umschalten. Zur Design-time funktioniert das auch gut mit den Eigenschaften Hintergrundart = Transparent und Hintergrundfarbe = Hintergrundformular für transparenten Hintergrund und den Eigenschaften Hintergrundart = Normal und Hintergrundfarbe = #FFFFFF für weiss.
... habe ich deine Anforderungen 1:1 in VBA umgesetzt.

Zitat
Kannst Du mich erleuchten, warum Du den Focus verschiebst?
Gerne - um zu sehen, was an den Feldern wirklich passiert - ohne einen Cursor im Feld. Wenn dich das stört kannst du es getrost rausnehmen - war in diesem Beispiel einfach zum Testen gedacht.
Nachdem du bei deinem System festgestellt hasttest, dass der Code nicht so läuft wie du wolltest....

Zitat
Wenn ich die Eigenschaften zur Design-time setze, brauche ich bloß die Hintergrundart von Normal auf Transparent zu setzen, um gewünschten Effekt zu erzielen
Tja - nur Entwicklungszeit und Laufzeit sind halt schon zwei grundlegend verschiedene Darstellungsvarianten und miteinander nur bedingt vergleichbar!

Zitat
setEnabled = false deaktiviert die Filtermöglichkeit, das wäre unerwünscht. Geht´s nicht noch anders
Von der Filtermöglichkeit war in deiner Anfraqge nichts zu lesen - daher bin ich davon ausgegangen, dass es auch nicht  schaden könnte die Möglichkeit auszuschalten ins Feld zu klicken um den Cursor dort abzustellen.
Wenn du diese Möglichkeit jedoch nutzen willst nimm den 'Enabled = False' - Teil einfach raus!

HTH

Peter
Viele Grüße
Peter

Tipps und Links:
---------------------------------------------------------
1. http://www.donkarl.com
2. http://www.access-entwicklerbuch.de/2007/index.php?page=buch
3. http://www.xlam.ch/pos/rules.htm
3.a Reservierte Worte
4. http://www.functionx.com/vbaccess/index.htm
5. http://www.dbwiki.net

Nicht vergessen: Jede(r) hat mal klein angefangen!
Bitte keine Fragen per PN senden - Fragen gehören ins Forum!