31:
How can I use my own operators only

with AxExpression1 do
begin
	AllowValueKeyword := False;
	AllowDefaultOperators := False;
	AddCustomOperator('+','<b>+</b>','This is a new binary-operator',TObject(2));
	AddCustomOperator('xxx','<b>xxx</b>','This is a new keyword',TObject(0));
	AddCustomOperator('yyy','<b>yyy</b>','This is a unary-operator',TObject(1));
	AddCustomOperator('zzz','<b>zzz</b>','This is a binary-operator',TObject(2));
	Text := 'xxx + yyy(100 zzz 200)';
end
30:
How can I add a new binary-operator

with AxExpression1 do
begin
	AddCustomOperator('xxx','<b>xxx</b>','This is a new binary-operator',TObject(2));
	Text := 'value + 100 xxx 200';
end
29:
How can I add a new unary-operator

with AxExpression1 do
begin
	AddCustomOperator('xxx','<b>xxx</b>','This is a new unary-operator',TObject(1));
	Text := 'value + xxx(100)';
end
28:
How can I add a new keyword

with AxExpression1 do
begin
	AddCustomOperator('xxx','<b>xxx</b>','This is a new keyword',TObject(0));
	Text := 'value + xxx';
end
27:
How can I disable all operators
with AxExpression1 do
begin
	AllowValueKeyword := False;
	AllowDefaultOperators := False;
end
26:
How can I disable the value keyword
with AxExpression1 do
begin
	AllowValueKeyword := False;
end
25:
Usage of and ( and operator )

with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := '(value contains 1) and (value != 1)';
end
24:
Usage of or ( or operator )

with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := '(value=1) or value=`string`';
end
23:
Usage of not ( not operator )

with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'not(value=1)';
end
22:
Usage of - ( subtraction operator )

with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value - 2';
end
21:
Usage of + ( addition operator )

with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value + 2';
end
20:
Usage of mod ( reminder operator )

with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value mod 2';
end
19:
Usage of / (divide operator)

with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value / 2';
end
18:
Usage of * (multiplicity operator)

with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := '2 * value';
end
17:
How can I get the word from cursor when user double clicks the control
// DblClick event - Occurs when the user double clicks the left mouse button over an object.
procedure TWinForm1.AxExpression1_DblClick(sender: System.Object; e: AxEXPRESSIONLib._IExpressionEvents_DblClickEvent);
begin
	with AxExpression1 do
	begin
		OutputDebugString( 'Word: ' );
		OutputDebugString( get_WordFromPoint(-1,-1,Nil) );
	end
end;

with AxExpression1 do
begin
	Expression := 'value';
	AllowSplitter := EXPRESSIONLib.SplitterEnum.exVSplitter;
	SplitPaneHeight := 196;
end
16:
How do I determine the word from the cursor
// Click event - Occurs when the user presses and then releases the left mouse button over the list control.
procedure TWinForm1.AxExpression1_ClickEvent(sender: System.Object; e: System.EventArgs);
begin
	with AxExpression1 do
	begin
		OutputDebugString( 'Word: ' );
		OutputDebugString( get_WordFromPoint(-1,-1,Nil) );
	end
end;

with AxExpression1 do
begin
	Expression := 'value';
	SplitPaneHeight := 196;
	set_Background(EXPRESSIONLib.BackgroundPartEnum.exVSplitterApp,$f0f0f0);
	AllowSplitter := EXPRESSIONLib.SplitterEnum.exVSplitter;
end
15:
How can I check if the expression is valid/syntactically correct
// Change event - Indicates that the control's text has changed.
procedure TWinForm1.AxExpression1_Change(sender: System.Object; e: System.EventArgs);
begin
	with AxExpression1 do
	begin
		OutputDebugString( 'Valid: ' );
		OutputDebugString( IsValid );
	end
end;

with AxExpression1 do
begin
	Expression := 'value';
	SplitPaneHeight := 196;
	set_Background(EXPRESSIONLib.BackgroundPartEnum.exVSplitterApp,$f0f0f0);
	AllowSplitter := EXPRESSIONLib.SplitterEnum.exVSplitter;
end
14:
How can I change the visual appearance of the horizontal splitter

with AxExpression1 do
begin
	Expression := 'value';
	SplitPaneHeight := 196;
	set_Background(EXPRESSIONLib.BackgroundPartEnum.exVSplitterApp,$f0f0f0);
	AllowSplitter := EXPRESSIONLib.SplitterEnum.exVSplitter;
end
13:
How can I change the visual appearance of the vertical splitter

with AxExpression1 do
begin
	Expression := 'value';
	SplitPaneWidth := 196;
	set_Background(EXPRESSIONLib.BackgroundPartEnum.exHSplitterApp,$f0f0f0);
end
12:
How can I add a new menu-item to control's context menu
// ExecuteContextMenu event - Occurs when the user selects an user item from the control's context menu.
procedure TWinForm1.AxExpression1_ExecuteContextMenu(sender: System.Object; e: AxEXPRESSIONLib._IExpressionEvents_ExecuteContextMenuEvent);
begin
	with AxExpression1 do
	begin
		OutputDebugString( 'ExecuteContextMenu: ' );
		OutputDebugString( e.item );
	end
end;

with AxExpression1 do
begin
	Expression := 'value + 100';
	ContextMenuItems := 'Test';
end
11:
How can I change the tooltip that shows when cursor hovers a keyword

with AxExpression1 do
begin
	Expression := 'value';
	set_Description(EXPRESSIONLib.KeywordEnum.exKeywordValue,'This is a bit of text to be shown when cursor hovers the <b>value</b> keyword.');
	Refresh();
end
10:
How do I check if the expression is correct
with AxExpression1 do
begin
	Expression := 'currency(value)';
	OutputDebugString( IsValid );
end
9:
How do I programmatically evaluate the expression
with AxExpression1 do
begin
	Expression := 'currency(value)';
	OutputDebugString( get_Evaluate('value=100') );
end
8:
How can I assign multiple values for variables %1, %2, ...

with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'currency(%1 + %2)';
	EvaluationText := '%1 = 100;%2 = 200';
end
7:
How can I change the values to show the result
with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'currency(value)';
	EvaluationText := 'value = 100';
end
6:
How can I prevent changing the color when expression is invalid
with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value 2';
	ForeColorInvalid := Color.FromArgb(0,0,0);
end
5:
How can I change the color when expression is invalid
with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value 2';
	ForeColorInvalid := Color.FromArgb(255,0,0);
end
4:
How can I prevent evaluation the selection

with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value + 1';
	EvaluateSelection := False;
	HideSelection := False;
	SelLength := 1;
end
3:
How can I programatically show the result
with AxExpression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value';
end
2:
How can I get ride of the right-vertical line/split
with AxExpression1 do
begin
	AllowSplitter := EXPRESSIONLib.SplitterEnum.exNoSplitter;
	Expression := 'value + 1';
end
1:
How can I change the control's background
with AxExpression1 do
begin
	Expression := 'value';
	BackColor := Color.FromArgb(240,240,240);
end