DCBROWSE Wechsel HILITE_BG

Moderator: Moderatoren

Antworten
Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

DCBROWSE Wechsel HILITE_BG

Beitrag von Markus Walter »

Hallo,

ich möchte die Hintergrund-Farbe des Balkens abhängig davon setzen, ob das Browse den Eingabefocus hat oder nicht (sprich der Anwender soll erkennen, dass das Browse aktiv ist - ich möchte nicht HILITEGETS verwenden!).

Das ich nun beim Gotfocus- und lostfocus-Event was tun muss, ist klar. Aber was?! Wenn ich das Presentation-Array ändere und ein refreshall(), bzw. Configure() mache. Stimmt die Anzeige nicht. Kann mir jemand einen Tip geben?
Gruß
Markus

Mitglied der XUG Saarland-Pfalz
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: DCBROWSE Wechsel HILITE_BG

Beitrag von Wolfgang Ciriack »

Hallo Markus,
ich habe das einfach so gelöst, dass das inaktive Browse gar keinen Balken hat: bei GOTFOCUS ein oBrowse:Hilite(), oBrowse2:DeHilte() und bei LOSTFOCUS umgekehrt. Allerdings geht das bei einem DC_Getrefresh(Getlist) wieder verloren, so musst du evtl. auch an anderen stellen mit DeHilte() arbeiten.
Viele Grüße
Wolfgang
Juergen
UDF-Programmierer
UDF-Programmierer
Beiträge: 92
Registriert: Di, 19. Dez 2006 19:37
Wohnort: Düsseldorf
Kontaktdaten:

Re: DCBROWSE Wechsel HILITE_BG

Beitrag von Juergen »

Hallo,

ich ändere die Farben des Headers.
Z. B.
....
GOTFOCUS {||Set_Header_Color(oBrowse,GRA_CLR_RED)};
LOSTFOCUS {||Set_Header_Color(oBrowse,GRA_CLR_DARKGREEN)};



PROCEDURE Set_Header_Color(oBrowse,nColor)
LOCAL i, oColumn

FOR i := 1 TO oBrowse:colCount
oColumn := oBrowse:GetColumn(i)
oColumn:heading:setColorBG(nColor)
NEXT

RETURN

Gruß
Jürgen
Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Re: DCBROWSE Wechsel HILITE_BG

Beitrag von Markus Walter »

Hi,

danke für die Anregungen. Ist aber beides nicht wirklich "windows-konform"...

Ich hätte das schon lieber konform (wie z. B. in Verwaltung - Computerverwaltung): Balken ist blau, wenn das Control/Grid den Focus hat und wird grau, sobald der Focus auf ein anderes Control oder Fenster wechselt...

Noch eine Idee?
Gruß
Markus

Mitglied der XUG Saarland-Pfalz
Juergen
UDF-Programmierer
UDF-Programmierer
Beiträge: 92
Registriert: Di, 19. Dez 2006 19:37
Wohnort: Düsseldorf
Kontaktdaten:

Re: DCBROWSE Wechsel HILITE_BG

Beitrag von Juergen »

Hallo Marcus,

versuche mal:

GOTFOCUS {||oBrowse:Hilite()};
LOSTFOCUS {||oBrowse:deHilite()}

Gruß
Jürgen
Juergen
UDF-Programmierer
UDF-Programmierer
Beiträge: 92
Registriert: Di, 19. Dez 2006 19:37
Wohnort: Düsseldorf
Kontaktdaten:

Re: DCBROWSE Wechsel HILITE_BG

Beitrag von Juergen »

Hallo Marcus,

die Farbe des Cursors kann wohl nur über die Presentationsparameter des
Column-Objects geändert werden.

XBP_PP_COL_DA_HILITE_FGCLR
XBP_PP_COL_DA_HILITE_BGCLR

Mir wäre das zu aufwändig, dies zur Laufzeit zu realisieren.

Gruß
Jürgen
Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Re: DCBROWSE Wechsel HILITE_BG

Beitrag von Markus Walter »

Hallo Jürgen,

aufwendig ist das gar nicht. Nur es stimmt anschließend nicht. Die Darstellung ist geschossen. Ich muss aber noch herausfinden, ob das an Express liegt oder warum es nicht geht...
Gruß
Markus

Mitglied der XUG Saarland-Pfalz
Juergen
UDF-Programmierer
UDF-Programmierer
Beiträge: 92
Registriert: Di, 19. Dez 2006 19:37
Wohnort: Düsseldorf
Kontaktdaten:

Re: DCBROWSE Wechsel HILITE_BG

Beitrag von Juergen »

Hallo Marcus,

hatte schon den Quellcode von Roger durchforstet und nichts gefunden.

Könnte es vielleicht funktionieren, wenn nach dem Ändern des Presentations-Arrays
oBrowse:configure() aufgerufen wird.

Gruß
Jürgen
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCBROWSE Wechsel HILITE_BG

Beitrag von Tom »

oBrowse:Configure() bewirkt nichts, wenn man die Presentation-Parameter umstellt. Meines Erachtens muss man XbpCellGroup:HiliteCell() überlagern. Die Quellcodes sind m.E. in der ProfSub enthalten.
Herzlich,
Tom
Juergen
UDF-Programmierer
UDF-Programmierer
Beiträge: 92
Registriert: Di, 19. Dez 2006 19:37
Wohnort: Düsseldorf
Kontaktdaten:

Re: DCBROWSE Wechsel HILITE_BG

Beitrag von Juergen »

Hallo Tom,

dann geht das vielleicht?


LOCAL i, oColumn

FOR i := 1 TO oBrowse:colCount
oColumn := oBrowse:GetColumn(i)
oColumn:configure(,,,aPres)
NEXT

Gruß
Jürgen
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: DCBROWSE Wechsel HILITE_BG

Beitrag von AUGE_OHR »

Juergen hat geschrieben:dann geht das vielleicht?
LOCAL i, oColumn

FOR i := 1 TO oBrowse:colCount
oColumn := oBrowse:GetColumn(i)
oColumn:configure(,,,aPres)
NEXT
ich sehe kein oBrowse:refreshXXXl() :?:
Das setzte von Parametern nützt gar nichts wenn du die "Cell" nicht neu "malst"
gruss by OHR
Jimmy
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCBROWSE Wechsel HILITE_BG

Beitrag von Tom »

InvalidateRect(oBrowse) könnte auch helfen.
Herzlich,
Tom
Juergen
UDF-Programmierer
UDF-Programmierer
Beiträge: 92
Registriert: Di, 19. Dez 2006 19:37
Wohnort: Düsseldorf
Kontaktdaten:

Re: DCBROWSE Wechsel HILITE_BG

Beitrag von Juergen »

Hallo Jimmy,

die Frage stand auch in Zusammenhang mit Express++.
Da reicht dann ein dc_getrefresh(getlist).

Ansonsten muß der Dialog neu gezeichnet werden.

oDialog:invalidateRect().

Gruß
Jürgen
Antworten