[gelöst] Control automatisch einen Eigenschaft-Wert zuweisen

13. August 2007 10:03

Hallo allerseits

Ich habe hier bei Dynamcis.de die Codeunit ColorManagement runtergeladet. Finde die Codeunit sehr praktisch. Jetzt bin ich dabei eine Form zu machen, die mir nach Eingabe der Farbe Rot, Grün und Blau das Ergebnis anzuzeigen. Folgende habe ich gemacht.

In der Form drei globale Variable (Integer) definiert. Dazu drei textbox gemacht und die drei Variabel je Textbox als SourceExpr hinzugefügt. Dann ein Command Button erstellt, der mir das Ergebnis berechnet.

Ich habe dann ein viertes Textbox gemacht. Mit diesen vierten Textbox will ich mir das Ergebnis als Backcolor anzeigen lassen. jetzt bekomme ich ein Problem. wie mache ich das?

Von der Funktion der Codeunit bekomme ich ja das Ergebnis zurück. Dieses Ergebnis will ich in die Eigenschaft backcolor einer Textbox automatische übergeben.

Meine Form habe ich als Screenshoot dabeigefügt.

In der Message Box wird das Ergebnis ausgegeben. Zusätzlich will ich das Ergebnis in der Textbox als BackColor ausgeben.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von dai am 13. August 2007 10:45, insgesamt 1-mal geändert.

13. August 2007 10:29

Hallöchen!

Anstatt per MESSAGE den Farbwert auszugeben, weise den errechneten Farbwert der Variable zu, die als SourceExpr der vierten Textbox eingetragen ist. Zum Beispiel so:

Code:
VierteTextbox:=ColorMgt.RGB2Color(Red,Green,Blue);

Red, Green und Blue sind die drei Integer-Variablen. VierteTextbox ist die Variable, die als SourceExpr bei der vierten Textbox eingetragen ist.

Gehe nun in den ObFormat-Trigger der vierten Textbox und hinterlege den folgenden Code:

Code:
CurrForm.VierteTextbox.UPDATEFORECOLOR(VierteTextbox);


Der Hintergrund einer Textbox lässt sich zur Laufzeit nicht setzen, weshalb ich hier die Farbe des Textes ändern lasse.

Gruß, Marc

13. August 2007 10:44

Hallo Marc

Danke. Klappt wunderbar. Habe jetzt die Schriftgrösse der Textbox vergrössert, damit man die Schriftfarbe auch besser sehen kann. ;-)

Schade, das man den Hintergrund nicht zur Laufzeit ändern kann wie die Schriftfarbe. Denn er wär nicht schlecht die errechnete Farbe in einen Bereich anzuzeigen anstatt als Schriftfarbe des Ergebnis.

Trotzdem vielen Dank für die Hilfe

Gruß, Dai

13. August 2007 13:59

Du könntest da evtl dem gewünschten nahekommen, wenn Du in einer weiteren Textbox den Font Webdings auswählst, wo das kleine g das grafische Zeichen eines ausgefüllten Blocks ist, setze die SourceExpression fest auf 'gggg' und mit deiner Berechnung die Updateforecolor für diese Textbox, dann bekommst du einen kleinen Balken in der Farbe.

13. August 2007 15:42

Hallo Michael

Super. Hat einwandfrei geklappt. Habe jetzt mit 'gg' gearbeitet und die Fontgrösse auf 200 gesetzt. Der mit berechnete Farbe ausgefüllter Bereich ist jetzt mehr als ausreichend. ;-)

Viele Dank