property Expression.ForeColorInvalid as Color
Retrieves or sets a value that indicates the control's foreground color, while expression is invalid.

TypeDescription
Color A color expression that specifies the control's foreground color, while the expression is invalid
Use the ForeColorInvalid property to specify a different color to show the control's expression while it is not valid. The ForeColorInvalid property has no effect if it zero. Use the ForeColor property to specify the color to show the expression while it is valid. The IsValid property specifies whether the control's expression is valid/syntactically correct. The Expression/Text property assigns a new expression to the control.  The EvaluationText property specifies the values for variables in the expression to be evaluated ( per line ). The EvaluationResult property specifies the result for each evaluation ( line ). Use the Evaluate property to get the result of evaluation of the control's expression.

The following samples shows how you can prevent changing the color when the expression is invalid:

VBA (MS Access, Excell...)

With Expression1
	.SplitPaneWidth = 196
	.Expression = "value 2"
	.ForeColorInvalid = RGB(0,0,0)
End With

VB6

With Expression1
	.SplitPaneWidth = 196
	.Expression = "value 2"
	.ForeColorInvalid = RGB(0,0,0)
End With

VB.NET

With Expression1
	.SplitPaneWidth = 196
	.Expression = "value 2"
	.ForeColorInvalid = Color.FromArgb(0,0,0)
End With

VB.NET for /COM

With AxExpression1
	.SplitPaneWidth = 196
	.Expression = "value 2"
	.ForeColorInvalid = RGB(0,0,0)
End With

C++

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"value 2");
spExpression1->PutForeColorInvalid(RGB(0,0,0));

C++ Builder

Expression1->SplitPaneWidth = 196;
Expression1->Expression = L"value 2";
Expression1->ForeColorInvalid = RGB(0,0,0);

C#

expression1.SplitPaneWidth = 196;
expression1.Expression = "value 2";
expression1.ForeColorInvalid = Color.FromArgb(0,0,0);

JScript/JavaScript

<BODY onload="Init()">
<OBJECT CLASSID="clsid:B33F5489-49AC-4155-98E7-9BBFC57FF019" id="Expression1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	Expression1.SplitPaneWidth = 196;
	Expression1.Expression = "value 2";
	Expression1.ForeColorInvalid = 0;
}
</SCRIPT>
</BODY>

VBScript

<BODY onload="Init()">
<OBJECT CLASSID="clsid:B33F5489-49AC-4155-98E7-9BBFC57FF019" id="Expression1"></OBJECT>

<SCRIPT LANGUAGE="VBScript">
Function Init()
	With Expression1
		.SplitPaneWidth = 196
		.Expression = "value 2"
		.ForeColorInvalid = RGB(0,0,0)
	End With
End Function
</SCRIPT>
</BODY>

C# for /COM

axExpression1.SplitPaneWidth = 196;
axExpression1.Expression = "value 2";
axExpression1.ForeColorInvalid = Color.FromArgb(0,0,0);

X++ (Dynamics Ax 2009)

public void init()
{
	;

	super();

	expression1.SplitPaneWidth(196);
	expression1.Expression("value 2");
	expression1.ForeColorInvalid(WinApi::RGB2int(0,0,0));
}

Delphi 8 (.NET only)

with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value 2';
	ForeColorInvalid := Color.FromArgb(0,0,0);
end

Delphi (standard)

with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value 2';
	ForeColorInvalid := RGB(0,0,0);
end

VFP

with thisform.Expression1
	.SplitPaneWidth = 196
	.Expression = "value 2"
	.ForeColorInvalid = RGB(0,0,0)
endwith

dBASE Plus

local oExpression

oExpression = form.EXPRESSIONACTIVEXCONTROL1.nativeObject
oExpression.SplitPaneWidth = 196
oExpression.Expression = "value 2"
oExpression.ForeColorInvalid = 0x0

XBasic (Alpha Five)

Dim oExpression as P

oExpression = topparent:CONTROL_ACTIVEX1.activex
oExpression.SplitPaneWidth = 196
oExpression.Expression = "value 2"
oExpression.ForeColorInvalid = 0

Visual Objects


oDCOCX_Exontrol1:SplitPaneWidth := 196
oDCOCX_Exontrol1:Expression := "value 2"
oDCOCX_Exontrol1:ForeColorInvalid := RGB(0,0,0)

PowerBuilder

OleObject oExpression

oExpression = ole_1.Object
oExpression.SplitPaneWidth = 196
oExpression.Expression = "value 2"
oExpression.ForeColorInvalid = RGB(0,0,0)

Visual DataFlex

Procedure OnCreate
	Forward Send OnCreate
	Set ComSplitPaneWidth to 196
	Set ComExpression to "value 2"
	Set ComForeColorInvalid to (RGB(0,0,0))
End_Procedure

XBase++

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExpression

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oExpression := XbpActiveXControl():new( oForm:drawingArea )
	oExpression:CLSID  := "Exontrol.Expression.1" /*{B33F5489-49AC-4155-98E7-9BBFC57FF019}*/
	oExpression:create(,, {10,60},{610,370} )

		oExpression:SplitPaneWidth := 196
		oExpression:Expression := "value 2"
		oExpression:SetProperty("ForeColorInvalid",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN