64
ImageSize property on 32 (specifies the size of the control' icons)

Gauge1->BeginUpdate();
Gauge1->ImageSize = 32;
Gauge1->Font->Size = TVariant(long(16));
Gauge1->Images(TVariant(String("gBJJgBAIDAAEg4AEEKAD/hz/EMNh8TIRNGwAjEZAEXjAojKAjMLjABhkaABAk0plUrlktl0vmExmUzmk1m03nE5nU7nk9miAoE+oVDolFo1HpFJpU5h8Sf9OqFNqUOq") +
"NUqdPq9VrFWrlbr1QpdhAFAkFis1ntFptVrtkrpszrNvmVxqk3uVtm1kmF3sdBvF/wGBmV+j9BYGHwWJulfxdax2NyFdx2JlV6l9Nw7AAGZymdz2Cy2GxErvWcz9ivlw" +
"yV21cuxugwktzGIzmvwtl0+53U5y0a0Wazmmyu/3dCyOMyXHx/J5nIr9q3uyqnBxFN3G46ma4vb7mD2Ng4nZze00fDkHC7t7us2rOX5tguetpHRlmz4HVqnXk1PjHO+C" +
"MPo9MBMC+j2vC8j7wS8cFNI4kBo05UIvfCT/NsnsApU+0Fqg/T+oy/kPxC0sEQfErKQK96+w28UWRI8UGvO8sTLS9r2PWmsMJTDTask3CsIbIEQRA3shOXEEAO/GclJ9" +
"FEKrrA8FRbKMXRIlb0JxCkjS1LMswhCcvuel0cv26cSMa8Ufx+2sQwhEUoSXOCjSbLcnxjKc7sdKUVyq28NtVI71P9P7JxtQEapjQ6fzfM8zPfNE2PhIsLL63E40slk5" +
"y7N89LcyU9SvMb3SdUc6VJLj5VLVLfO/PS9KzNFHUa/0XyBD0dxlS9cxhMlTRSoNXypPErWDPyfNS+MwprRNO0FD8wVVZ1AI08URwVRjtJ1WCn21QkkUrXVLVPQS/XIk" +
"FgTxT9iONZ9xVTdq+L1eKg3kkF6Upe68XtfV51/MtrVjBlwYFL1ev8y1/P6/lyzzYl02wntj0RVFmS1Qa+M5as93QxEUW9e993rfmQ2+vy65M/mL1lhl/2bj2ByVduMt" +
"NhCJT9hdz41nN14Ld12Z9UjfI/oUAaGseiw6+uFLLhcVabJOS5RqOE0BHlZ5VnEr5fOMs3st+aa/bbRzrJGV51Y0b0DbqaWXZD90hIsPbjWu52+6Wyadpe66hhO+P/Xi" +
"oW5rD8ZbrUZuVg6n1dsE/cXmewu1m9PVwnd35/nueXho/NaJzmjc61W76esuT77eG8pTquy9TwWH8LEzG8RDfFalx3Gcfvna9rvG/cptGLd9tuI6TZOP5Fiqi99vea+X" +
"4VRcBq/JZZtVQ9cwSs5lsXE372+a9z7PbfB3VVqHyvMctLto8uob6eV0m/cD6MN2v+T33t6sBut42vdv2bJ8a997x2maFJfK+qArbGJPEKE+1qTflMsIdW/GCJX17KcT" +
"6/czr/X+u1g29B7j/4BQfWkkx4zIHisjhPCmE0K4SwtXM+d4BvHRwNZOoBph9IJvPek9d40FoMJxf691jj2ywQQcHEWET4XJwkTszlVqm2GokewxtBT1DpQjRxDN0rUV" +
"DNKdC3lb6tzNOwh6upMSSYfv4YBCl/bsn9PxiFCEo7SI6Obc9HeOrnY8x4jtHtdpN4GRbaorhsbu18Pph5CiHymI0RpSXGJ/z2oUOxYxG858AyiI+bfJtuTcG5yelBJy" +
"T8okhqFd4a5yxL0rvulYtKCsZiWxWkc1s1cRoxxwhA31DLE0mR9l9HqX8fJgTDmFMVH0MIsRzVYnwnMi1dyzmhLt2kS2pxIiU62Wj5ptQGlSYFakLonTUJNLKaM5Wzlf" +
"fEkuFkk5wTrhVO2eE7G6lJhxFFYUZ55zmn0WuBCD4pzhirFCKkbomsOoIYmZx5p90LoYWGPdD5g0QmJRKYxbZ6zYoVQ2jVGylSak7KSkFH6RSjpHKFuU+YMyNo5SulkC" +
"6I0vonTCitMXPoEpVS2H5FQfEqp2R1opIgAEkJISYARTCukOhmPNI5Ex/wzGHUsicMwA1LHgQ90Y/KpoQHAD+pB/R4NzIaMAB9Xaw1gqaAOsh/A/ptIkWUfhGK1kZH8R" +
"gH5GqvgArqRmt4AAPrTroRofBGADkqr6Rmu4D7CEaHARiwpJrEEZsXXwlVjyMWRsaRqwdkLGNBABZmytmyMnaINZqyVpLR2ftKAAAdd6h2osbaskdiq4EZtgSmyNcbVW" +
"RJNXe3AA7REar3b0stlAAXBtoRmvJGLjEYAHUWsFcwCD/rnaop9aEICMAPdK5hT6xpeuzdOtAgKuJeGfdq6ggEbkTvAP+p9UCHXrvKkcgIA=="));
Gauge1->Caption[Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant("<img>1</img>Caption");
Gauge1->EndUpdate();

63
ImageSize property on 16 (default) (specifies the size of the control' icons)

Gauge1->BeginUpdate();
Gauge1->ImageSize = 16;
Gauge1->Images(TVariant(String("gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOq") +
"dSqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVt" +
"tmp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8a" +
"cvQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtT" +
"GsbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgP" +
"nwD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg=="));
Gauge1->Caption[Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant("<img>1</img>Caption");
Gauge1->EndUpdate();

62
I found that the control's needle/knob is too small to touch, is it possible somehow to make it working
Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->LayerAutoSize = -1;
Gauge1->Layers->Count = 10;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(9));
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotamove;
	var_Layer->set_Idem(TVariant("0,7"));
Gauge1->LayerDragAny = 9;
Gauge1->EndUpdate();

61
How can I rotate/move multiple layers once the user drags the layer

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->LayerAutoSize = -1;
Gauge1->Layers->Count = 10;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(9));
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotamove;
	var_Layer->set_Idem(TVariant("0,7"));
Gauge1->EndUpdate();

60
How can I show a layer as disabled

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 1";
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("original"));
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoMove;
	var_Layer->Background->Picture->set_Name(TVariant("Layer2.png"));
	var_Layer->DefaultOffsetY = -164;
	var_Layer->Grayscale = 0;
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->Add(TVariant("grayscale 50%"));
	var_Layer1->Background->Picture->set_Name(TVariant("Layer2.png"));
	var_Layer1->Grayscale = 50;
	var_Layer1->DefaultOffsetY = -82;
Exgaugelib_tlb::ILayerPtr var_Layer2 = Gauge1->Layers->Add(TVariant("grayscale 100%"));
	var_Layer2->Background->Picture->set_Name(TVariant("Layer2.png"));
	var_Layer2->Grayscale = 100;
Gauge1->EndUpdate();

59
Is it possible to stretch all layers

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 2";
Gauge1->PicturesName = L"`Layer` + int(value  + 1) + `.png`";
Gauge1->Layers->Count = 5;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("empty"));
	var_Layer->Background->Color->Value = RGB(240,240,240);
	var_Layer->Position = 0;
Gauge1->LayerAutoSize = -1;
Gauge1->EndUpdate();

58
Tic Tac Toe Game

// MouseDown event - Occurs when the user presses a mouse button.
void __fastcall TForm1::Gauge1MouseDown(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	// Left = Me.Layers(l).Left
	// Top = Me.Layers(l).Top
	// Width = Me.Layers(l).Width
	// Height = Me.Layers(l).Height
	long l = Gauge1->LayerFromPoint[-1,-1];
	Exgaugelib_tlb::ILayersPtr var_Layers = Gauge1->Layers;
		Exgaugelib_tlb::ILayerPtr var_Layer = var_Layers->Add(TVariant(Gauge1->Layers->Count));
			Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer->Background->Picture;
				var_Picture->Left = L"8";
				var_Picture->Width = L"width - 2 * 8";
				var_Picture->Top = L"8";
				var_Picture->Height = L"height - 2 * 8";
				var_Picture->set_Name(TVariant(Gauge1->FormatABC(L"A mod 2 = 0 ? `x` : `o`",TVariant(Gauge1->Layers->Count),TNoParam(),TNoParam())));
			var_Layer->Transparency = 0;
}

Gauge1->BeginUpdate();
Gauge1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABS0IQAAYAQGKIYBkAKBQAGaAoDDcMQ5QwAAyDGKEEwsACEIrjKCRShyCYZRhGcTALD8EhhECTZKkAZAEiWIovRbHMBzFIMYRFFCcIRGSaYD") +
"iCNovTRNE7TfBMIhkGoSaKpCIRVDCSYJUzTc6wS79KgAASiJjjao6ZhaSpSABRYiyXRlHSxLiuYyoGTrJACEQxDhEEIjGLAazLMadJItCzabqGbJ8Ro6cQwTAIgI="));
Gauge1->DefaultLayer[Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerWidth] = TVariant("width/3");
Gauge1->DefaultLayer[Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerHeight] = TVariant("height/3");
Gauge1->HTMLPicture[L"x"] = TVariant("C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Pictures\\x.png");
Gauge1->HTMLPicture[L"o"] = TVariant("C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Pictures\\o.png");
Gauge1->LayerAutoSize = -1;
Gauge1->Layers->Count = 9;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Background->Color->Value = 0x1000000;
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(1));
	var_Layer1->Left = L" width/3 - 4";
	var_Layer1->Background->Color->Value = 0x1000000;
Exgaugelib_tlb::ILayerPtr var_Layer2 = Gauge1->Layers->get_Item(TVariant(2));
	var_Layer2->Left = L"2 * (width/3 - 4) - 4";
	var_Layer2->Background->Color->Value = 0x1000000;
Exgaugelib_tlb::ILayerPtr var_Layer3 = Gauge1->Layers->get_Item(TVariant(3));
	var_Layer3->Top = L"height/3 - 4";
	var_Layer3->Background->Color->Value = 0x1000000;
Exgaugelib_tlb::ILayerPtr var_Layer4 = Gauge1->Layers->get_Item(TVariant(4));
	var_Layer4->Top = L"height/3 - 4";
	var_Layer4->Left = L" width/3 - 4";
	var_Layer4->Background->Color->Value = 0x1000000;
Exgaugelib_tlb::ILayerPtr var_Layer5 = Gauge1->Layers->get_Item(TVariant(5));
	var_Layer5->Top = L"height/3 - 4";
	var_Layer5->Left = L"2 * (width/3 - 4) - 4";
	var_Layer5->Background->Color->Value = 0x1000000;
Exgaugelib_tlb::ILayerPtr var_Layer6 = Gauge1->Layers->get_Item(TVariant(6));
	var_Layer6->Top = L"2 * (height/3 - 4) ";
	var_Layer6->Background->Color->Value = 0x1000000;
Exgaugelib_tlb::ILayerPtr var_Layer7 = Gauge1->Layers->get_Item(TVariant(7));
	var_Layer7->Top = L"2 * (height/3 - 4) ";
	var_Layer7->Left = L" width/3 - 4";
	var_Layer7->Background->Color->Value = 0x1000000;
Exgaugelib_tlb::ILayerPtr var_Layer8 = Gauge1->Layers->get_Item(TVariant(8));
	var_Layer8->Top = L"2 * (height/3 - 4) ";
	var_Layer8->Left = L"2 * (width/3 - 4) - 4";
	var_Layer8->Background->Color->Value = 0x1000000;
Gauge1->DefaultLayer[Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerTransparency] = TVariant(99);
Gauge1->EndUpdate();

57
What's the difference Rotate vs Rotamove

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug = 227
}

Gauge1->AllowSmoothChange = Exgaugelib_tlb::SmoothPropertyEnum::exSmoothChangeless;
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Linear\\Button with LEDs";
Exgaugelib_tlb::ILayersPtr var_Layers = Gauge1->Layers;
	Exgaugelib_tlb::ILayerPtr var_Layer = var_Layers->Add(TVariant("base"));
	Exgaugelib_tlb::ILayerPtr var_Layer1 = var_Layers->Add(TVariant("rotate"));
		var_Layer1->ToolTip = PChar(var_Layer1->get_Key());
		Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer1->Background->Picture;
			var_Picture->set_Name(TVariant("Example Button Up.png"));
			var_Picture->Left = L"width/2";
			var_Picture->Top = L"height/2";
			var_Picture->Width = L"128";
			var_Picture->Height = L"64";
		Exgaugelib_tlb::IForegroundPtr var_Foreground = var_Layer1->Foreground;
			var_Foreground->set_Caption(Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption,TVariant("<font ;14><sha ;;0>Rotate"));
			var_Foreground->set_Caption(Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionLeft,TVariant("width/2 + 32"));
			var_Foreground->set_Caption(Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop,TVariant("height/2 + 16"));
		var_Layer1->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exRedChannel,100);
		var_Layer1->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
		var_Layer1->RotateAngle = 45;
	Exgaugelib_tlb::ILayerPtr var_Layer2 = var_Layers->Add(TVariant("rotamove"));
		var_Layer2->ToolTip = PChar(var_Layer2->get_Key());
		Exgaugelib_tlb::ILPicturePtr var_Picture1 = var_Layer2->Background->Picture;
			var_Picture1->set_Name(TVariant("Example Button Up.png"));
			var_Picture1->Left = L"width/2";
			var_Picture1->Top = L"height/2";
			var_Picture1->Width = L"128";
			var_Picture1->Height = L"64";
		Exgaugelib_tlb::IForegroundPtr var_Foreground1 = var_Layer2->Foreground;
			var_Foreground1->set_Caption(Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption,TVariant("<font ;14><sha ;;0>Rotamove"));
			var_Foreground1->set_Caption(Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionLeft,TVariant("width/2 + 24"));
			var_Foreground1->set_Caption(Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop,TVariant("height/2 + 16"));
		var_Layer2->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exGreenChannel,100);
		var_Layer2->RotateAngle = 45;
		var_Layer2->Transparency = 25;
		var_Layer2->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotamove;

56
How do I display a tooltip, when cursor hovers the layer

// MouseIn event - Notifies that the cursor enters the layer.
void __fastcall TForm1::Gauge1MouseIn(TObject *Sender,long   Layer)
{
	Gauge1->Layers->get_Item(TVariant(9))->ToolTip = PChar(Gauge1->FormatABC(L"`The current value is: <br><c><b>` + ((100 - A) format ``)",TVariant(Gauge1->get_Value()),TNoParam(),TNoParam()));
}

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->Layers->Count = 10;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(9));
	var_Layer->DefaultRotateAngle = -126;
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotamove;
	var_Layer->RotateAngleToValue = L"100 - value / 360 * 100";
	var_Layer->ValueToRotateAngle = L"(value)/100 * 360";
Gauge1->Layers->get_Item(TVariant(3))->Visible = false;
Gauge1->Layers->get_Item(TVariant(4))->Visible = false;
Gauge1->Layers->get_Item(TVariant(9))->set_Value(TVariant(25));
Gauge1->EndUpdate();

55
I've noticed that the OnDrag can move the layer itself, but how about moving the clipping region

// Drag event - Notifies that the user drags the layer.
void __fastcall TForm1::Gauge1Drag(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo)
{
	// Layers(DragInfo.Layer).Clip.Ellipse
}

Gauge1->BeginUpdate();
Gauge1->BackColor = RGB(217,217,217);
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Guage";
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("background"));
	var_Layer->Background->Picture->set_Name(TVariant("Guage_Background.png"));
	Exgaugelib_tlb::IClipEllipsePtr var_ClipEllipse = var_Layer->Clip->Ellipse;
		var_ClipEllipse->RadiusX = L"width/3";
		var_ClipEllipse->RadiusY = L"height/3";
Gauge1->Layers->Add(TVariant("needle"))->Background->Picture->set_Name(TVariant("Guage_Needle.png"));
Gauge1->EndUpdate();

54
How do I show a portion of layer with a different color (sample 2)

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Layers->get_Item(TVariant("Color"))->Clip->set_Value(TVariant(Gauge1->Layers->get_Item(TVariant("Thumb"))->RotateAngle));
	Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant("Color"));
		var_Layer->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exBlueChannel,var_Layer->RotateAngle);
	Gauge1->Layers->get_Item(TVariant("Thumb"))->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exBlueChannel,Gauge1->Layers->get_Item(TVariant("Color"))->RotateAngle);
}

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 1";
Gauge1->PicturesName = L"`Layer` + int(value  + 1) + `.png`";
Gauge1->Layers->Count = 5;
Gauge1->Layers->get_Item(TVariant(1))->Visible = false;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(4));
	var_Layer->set_Key(TVariant("Thumb"));
	var_Layer->DefaultRotateAngle = -141;
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
	var_Layer->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exAllChannels,0);
	var_Layer->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exRedChannel,100);
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->Add(TVariant("Color"));
	var_Layer1->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer1->Position = 3;
	var_Layer1->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exAllChannels,0);
	var_Layer1->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exRedChannel,100);
	var_Layer1->Background->Picture->set_Name(TVariant("Layer3.png"));
	var_Layer1->Clip->Pie->SweepAngle = L"value";
	Exgaugelib_tlb::IClipEllipsePtr var_ClipEllipse = var_Layer1->Clip->Ellipse;
		var_ClipEllipse->RadiusX = L"150";
		var_ClipEllipse->RadiusY = L"150";
		var_ClipEllipse->InverseClip = true;
Gauge1->Layers->get_Item(TVariant("Thumb"))->RotateAngle = 135;
Gauge1->EndUpdate();

53
How do I show a portion of layer with a different color (sample 1)

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Layers->get_Item(TVariant("Color"))->Clip->set_Value(TVariant(Gauge1->Layers->get_Item(TVariant("Thumb"))->RotateAngle));
	Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant("Color"));
		var_Layer->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exBlueChannel,var_Layer->RotateAngle);
	Gauge1->Layers->get_Item(TVariant("Thumb"))->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exBlueChannel,Gauge1->Layers->get_Item(TVariant("Color"))->RotateAngle);
}

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 1";
Gauge1->PicturesName = L"`Layer` + int(value  + 1) + `.png`";
Gauge1->Layers->Count = 5;
Gauge1->Layers->get_Item(TVariant(1))->Visible = false;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(4));
	var_Layer->set_Key(TVariant("Thumb"));
	var_Layer->DefaultRotateAngle = -141;
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
	var_Layer->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exAllChannels,0);
	var_Layer->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exGreenChannel,100);
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->Add(TVariant("Color"));
	var_Layer1->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer1->Position = 3;
	var_Layer1->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exAllChannels,0);
	var_Layer1->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exGreenChannel,100);
	var_Layer1->Background->Picture->set_Name(TVariant("Layer3.png"));
	var_Layer1->Clip->Pie->SweepAngle = L"value";
Gauge1->Layers->get_Item(TVariant("Thumb"))->RotateAngle = 135;
Gauge1->EndUpdate();

52
How can I display / clip a picture with no transparency

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 1";
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("default"));
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoMove;
	var_Layer->Background->Picture->set_Name(TVariant("Layer2.png"));
	var_Layer->DefaultOffsetY = -164;
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->Add(TVariant("notransparency"));
	var_Layer1->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoMove;
	var_Layer1->Background->Picture->set_Name(TVariant("Layer2.png"));
	Exgaugelib_tlb::IClipPicturePtr var_ClipPicture = var_Layer1->Clip->Picture;
		var_ClipPicture->set_Name(TVariant(Gauge1->Layers->get_Item(TVariant("notransparency"))->Background->Picture->get_Name()));
		var_ClipPicture->AlphaTo = L"128";
	var_Layer1->Grayscale = 100;
Gauge1->EndUpdate();

51
How can I resize all layers

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 2";
Gauge1->PicturesName = L"`Layer` + int(value  + 1) + `.png`";
Gauge1->Layers->Count = 5;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("autosize"));
	var_Layer->Visible = false;
	var_Layer->Width = L"164";
	var_Layer->Height = L"128";
Gauge1->LayerAutoSize = Gauge1->Layers->get_Item(TVariant("autosize"))->Index;
Gauge1->EndUpdate();

50
How can I start moving any layer when user clicks it

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// Layers(DragInfo.Layer).OnDrag = 1
}

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + int(value  + 1) + `.png`";
Gauge1->Layers->Count = 11;

49
How can I prevent dragging the layers when user right click it
// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// Cancel = Me.FormatABC("A=2",DragInfo.Button)
}

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + int(value  + 1) + `.png`";
Gauge1->Layers->Count = 11;
Gauge1->Layers->get_Item(TVariant(0))->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoMove;

48
Is your control DPI-Aware

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->DefaultLayer[Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerRotateType] = TVariant(2);
Gauge1->Layers->Count = 11;
Gauge1->Layers->get_Item(TVariant(3))->Grayscale = 100;
Gauge1->Layers->get_Item(TVariant(4))->Grayscale = 100;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(10));
	var_Layer->Width = L"128 * dpix";
	var_Layer->Height = L"128 * dpiy";
Gauge1->Layers->get_Item(TVariant(9))->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
Gauge1->LayerAutoSize = 10;

47
Is it possible to make the control transparent, I would like to put the control on a form, then make the form transparent so the control appears on the desktop with just the images contained in the layers visible

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->Layers->Count = 10;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(9));
	var_Layer->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
Gauge1->AllowMoveOnClick = true;
Gauge1->LayerUpdate = Exgaugelib_tlb::LayerUpdateEnum::exLayerUpdateScreen;

46
How can I show the layers on perspective

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->Layers->Count = 10;
Gauge1->Debug = Exgaugelib_tlb::DebugLayerEnum::exDebugLayers;

45
Is it possible to resize all layers after they are loaded (method 2)

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->DefaultLayer[Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerRotateType] = TVariant(2);
Gauge1->Layers->Count = 11;
Gauge1->Layers->get_Item(TVariant(3))->Grayscale = 100;
Gauge1->Layers->get_Item(TVariant(4))->Grayscale = 100;
Gauge1->Layers->get_Item(TVariant(9))->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(10));
	var_Layer->Width = L"128";
	var_Layer->Height = L"128";
Gauge1->LayerAutoSize = 10;

44
Is it possible to resize all layers after they are loaded (method 1)

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->DefaultLayer[Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerRotateType] = TVariant(2);
Gauge1->Layers->Count = 10;
Gauge1->Layers->get_Item(TVariant(3))->Grayscale = 100;
Gauge1->Layers->get_Item(TVariant(4))->Grayscale = 100;
Gauge1->LayerAutoSize = -1;

43
Is it possible to load images for different layers from different folders

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->Layers->Count = 12;
Gauge1->Layers->get_Item(TVariant(0))->Background->Picture->set_Name(TVariant("\\..\\Clock\\vista_clock.png"));
Gauge1->Layers->get_Item(TVariant(9))->Background->Picture->set_Name(TVariant("\\..\\Knob 2\\Layer3.png"));
Gauge1->Layers->get_Item(TVariant(10))->Background->Picture->set_Name(TVariant("C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Led\\Speed\\noBack.png"));
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(11));
	var_Layer->DefaultOffsetX = 64;
	var_Layer->DefaultOffsetY = -36;
	Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer->Background->Picture;
		var_Picture->set_Name(TVariant(String("gCJKBOI4NBQaBQAhQNJJIIhShQAEEREAIA0ROZ6PT0hQEX5JIhBKhYQrFSxNNhUKoUY7/c6+R6+a7pPg0UAjaISTQwCzMEgtWQ2IyDBJJMYiNJCJgTVJuMghNTcSgFA") +
"xlNZiMinYKNRQ2NxMBhWNQkSRUAQkRRNEhYEBhMogMADOwGfY6N7eXb3DgXeamZgMGbQIStE55RZ7c7ce7/XpzZycOaBf7ZNAlZwiGQIMAnQBnAL4ACKAACABXADMAY4" +
"BLgHYiXS6VQAESyDbAHYAGwvea9E4BXhPIgXD4KQCZD4FeAJzqWFLcNQf1KkSgyFYGMDmVoAEwAHjxQDiOo7AbgKqlaj8WQBRgxDYBfmabpDRTXdumF5ZSwVboXIBrTo" +
"AhgBIwHWFREvoNZtlsb42G6Kg2g4b59AeYgAnAMpWnqBZWk2JoIkQcY8AGQAvgAPBWkcScUnceh6FoLYWAsepsGwLBsCcMIMh8C4AHYOAODOVIUHaYwviKMgvh2eIxmO" +
"RxcnHJ5MjYExBlmM5nBAVgqGodY9nuFxXGoA5al8WIJmAe5OgAIxtD6bJUimU5uC4GxFiOaxXkOc59lwOh0kkFYREWFZ6iSdhiiMQBSg0VArFWAZ0CgepijEKJdlcBZn" +
"nuaJ2n2PBZCgaAHnESZsHmRpFlKBBECQY5hA2DoOgaYYYCoC4zjObpAkCAJ+mVGgQBEFZ7CSVgbgYYYGk8c4ugODRFFgKRUnYAZ4C8E5ECqWwOl8d5/gcGgjmALQRjiU" +
"BQmg9oVDWBAIFoAZ8DmBoAlcWoBlwWAjHEK5pnSehpDALR9A2U1+FWAB3B2X4rmCJwaBcLQNmiG4AG8do6FkLRWjEOw7GsEwRBQUogCIEBRH0LJEAQeR8h4c55jyXwDm" +
"AK9TlMLIoBcS4pgAZwBGwaB3FIGIDBHopsmWS4Xh2HpUgoPhvkOcYcWANBWiCIh5GicJhnKUOvCcJp0CIGxNg6doEIUUopHSGoAA+OhhFeKgVBoGIYnCfo7HcTgdhuG4" +
"zkWBB68GdJmkKQQPcSVx6Hue47l0foMAAZ5yjkXJTBoW5ekgSglFKZ4AAYO5BDwIAdkgZZykcWg3G8OoPlgNpDicT4fH6AwZk+M4zDEMwZGMVB9GGZgqGeO51kmfAbny" +
"GQZjSVofmeepzB8Nojmqah+gQEAzCsKfvgoI5oniYOvCCZaghiWfeiWNY2mOOJ2CMKJyDUVpOhwR38EcDpWlq/4Ox6xLAxCMIkRAShQCoC4C4D42RaCpH+BAGY1wDiDF" +
"oGgbwFQIjbHuH0Y48x+BUCeE8O47h0DRBeN8FwFAFC7ESMgJ4AAOARFyCsOQSgIhbEsK0FoywZC2DaOsFAig3DOGYMwPguAzjPE8G8QZFT1ghEA5IG4QhaHIB4M8Jrag" +
"UitDqK5jIrhvj2HoLYU49hHjvA+NsWQZRligHWLoDwRAkAaGcBICIExIshBwAgQQ8ojjMCeAcB4Hh8DiGMI0X4rhiixEyNcLQBwRASAEIgKAKxjB7CMEAfIfhbjrB0E4" +
"JQGxOgWEiF4CIzhFjgDi+gfQdh2jaBqLQPo+x7CNHSEwYwfwWCfHeA5WYXgsBYAQG4bougag/B6P0eYHwpg/A4D8F4pBXArGQJwRI9RviGHyDYQARQAAVAAPoTwAACCQ" +
"GoCADgrxljzF0KwVwbgDBnGIJIDgGxnCxHgDoGInAxhmC+O4agjwUCQBMEIVAiA3ALCiMkRAKgAhcGsHEKgTg3BFikGoEQ3hqCkE0DsMILQbgCGADgVwGwsiOCKCYGQB" +
"BAgREiKoRABIkATGYK4AAThJAGBCEACYEAEhRGKBAFoCAmBgEYAkSQCQthtEuPsWwAAkgUCIAARzUgnD3HoHAS46xMDFWgDUbQLAlDMgiKsFwIw2AzGwEoUQJXQjXCIG" +
"IAwQhUh9DiJQBAxwQAwFID0IA2wjCkCQBEBYUw3g2AWMsKwNAvgqFWLQJIOwbAcBOEIMgLwxDRGkNACw7gAAwDUPkRokwYBrCKKQLo1xKhIDWGEMYOhnCGD+AETIaBOC" +
"ABEEYVY0yI1SCKE4IgrghBgEEQEA="));
		var_Picture->Width = L"64";
		var_Picture->Height = L"64";

42
How can I specify whether an object can be selected or not

// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::Gauge1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	OutputDebugString( PChar(Gauge1->LayerFromPoint[-1,-1]) );
}

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->Layers->Count = 12;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(10));
	var_Layer->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer->Background->get_ExtraPicture(TVariant("extra1"));
		var_Picture->set_Name(TVariant("Layer1.png"));
		var_Picture->Left = L"32";
		var_Picture->Top = L"32";
		var_Picture->Width = L"64";
		var_Picture->Height = L"64";
	Exgaugelib_tlb::IForegroundPtr var_Foreground = var_Layer->Foreground;
		var_Foreground->set_Caption(Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption,TVariant("<sha ;;0>selectable"));
		var_Foreground->set_Caption(Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionLeft,TVariant(38));
		var_Foreground->set_Caption(Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop,TVariant(-5));
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(11));
	Exgaugelib_tlb::ILPicturePtr var_Picture1 = var_Layer1->Background->get_ExtraPicture(TVariant("extra2"));
		var_Picture1->set_Name(TVariant("Layer1.png"));
		var_Picture1->Left = L"width-64";
		var_Picture1->Top = L"height-84 - 32";
		var_Picture1->Width = L"64";
		var_Picture1->Height = L"64";
		var_Picture1->Selectable = false;
	var_Layer1->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exAllChannels,25);
	Exgaugelib_tlb::IForegroundPtr var_Foreground1 = var_Layer1->Foreground;
		var_Foreground1->set_Caption(Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption,TVariant("<sha ;;0>not selectable"));
		var_Foreground1->set_Caption(Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionAnchor,TVariant(8));
		var_Foreground1->set_Caption(Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop,TVariant("height-theight/4"));
Gauge1->EndUpdate();

41
How do I get the layer/object/picture from the cursor
// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::Gauge1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	OutputDebugString( PChar(Gauge1->LayerFromPoint[-1,-1]) );
}

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->Layers->Count = 10;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(9));
	var_Layer->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;

40
How can I display a speedometer

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Layers->get_Item(TVariant("arc"))->Clip->set_Value(TVariant(Gauge1->get_Value()));
	Gauge1->Layers->get_Item(TVariant("noDigit"))->Background->get_ExtraPicture(TVariant("80"))->set_Name(TVariant(Gauge1->FormatABC(L"`no` + int((value MIN 0 MAX 99)/10) + `.png`",TVariant(Gauge1->get_Value()),TNoParam(),TNoParam())));
	Gauge1->Layers->get_Item(TVariant("noDigit"))->Background->get_ExtraPicture(TVariant("08"))->set_Name(TVariant(Gauge1->FormatABC(L"`no` + int((value MIN 0 MAX 99) mod 10) + `.png`",TVariant(Gauge1->get_Value()),TNoParam(),TNoParam())));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"value + B",TVariant(Gauge1->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->BeginUpdate();
Gauge1->BackColor = RGB(40,40,40);
Gauge1->AllowSmoothChange = Exgaugelib_tlb::SmoothPropertyEnum::exSmoothChangeless;
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Led\\Speed";
Gauge1->Layers->Count = 6;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->set_Key(TVariant("arcBack"));
	var_Layer->Background->Picture->set_Name(TVariant("noArcBack.png"));
	Exgaugelib_tlb::IClipPiePtr var_ClipPie = var_Layer->Clip->Pie;
		var_ClipPie->StartAngle = L"240";
		var_ClipPie->SweepAngle = L"240";
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(1));
	var_Layer1->set_Key(TVariant("arc"));
	var_Layer1->Background->Picture->set_Name(TVariant("noArc.png"));
	Exgaugelib_tlb::IClipPiePtr var_ClipPie1 = var_Layer1->Clip->Pie;
		var_ClipPie1->StartAngle = L"240";
		var_ClipPie1->SweepAngle = L"value/100 * 240";
Exgaugelib_tlb::ILayerPtr var_Layer2 = Gauge1->Layers->get_Item(TVariant(2));
	var_Layer2->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
	var_Layer2->set_Key(TVariant("pointer"));
	var_Layer2->Background->Picture->set_Name(TVariant("noLine.png"));
	var_Layer2->DefaultRotateAngle = 240;
	var_Layer2->RotateAngleToValue = L"value/240 * 100";
	var_Layer2->ValueToRotateAngle = L"value / 100 * 240";
	var_Layer2->RotateAngleValid = L"value > 240 ? (value > 300 ? 0 : 240) : value";
	var_Layer2->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
Exgaugelib_tlb::ILayerPtr var_Layer3 = Gauge1->Layers->get_Item(TVariant(3));
	var_Layer3->set_Key(TVariant("noBack"));
	var_Layer3->Left = L"(width - 55 * 2)/2";
	var_Layer3->Top = L"(height - 94 * 1)/2";
	var_Layer3->Width = L"2 * 45 + 8";
	var_Layer3->Height = L"1 * 94";
	var_Layer3->Transparency = 90;
	Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer3->Background->get_ExtraPicture(TVariant("80"));
		var_Picture->set_Name(TVariant("noBack.png"));
		var_Picture->Left = L"-4";
		var_Picture->Width = L"70";
	Exgaugelib_tlb::ILPicturePtr var_Picture1 = var_Layer3->Background->get_ExtraPicture(TVariant("08"));
		var_Picture1->set_Name(TVariant("noBack.png"));
		var_Picture1->Left = L"36";
		var_Picture1->Width = L"70";
Exgaugelib_tlb::ILayerPtr var_Layer4 = Gauge1->Layers->get_Item(TVariant(4));
	var_Layer4->set_Key(TVariant("noDigit"));
	var_Layer4->Left = L"(width - 55 * 2)/2";
	var_Layer4->Top = L"(height - 94 * 1)/2";
	var_Layer4->Width = L"2 * 45 + 8";
	var_Layer4->Height = L"1 * 94";
	Exgaugelib_tlb::ILPicturePtr var_Picture2 = var_Layer4->Background->get_ExtraPicture(TVariant("80"));
		var_Picture2->set_Name(TVariant("no1.png"));
		var_Picture2->Left = L"-4";
		var_Picture2->Width = L"70";
	Exgaugelib_tlb::ILPicturePtr var_Picture3 = var_Layer4->Background->get_ExtraPicture(TVariant("08"));
		var_Picture3->set_Name(TVariant("no2.png"));
		var_Picture3->Left = L"36";
		var_Picture3->Width = L"70";
Exgaugelib_tlb::ILayerPtr var_Layer5 = Gauge1->Layers->get_Item(TVariant(5));
	var_Layer5->set_Key(TVariant("noCap"));
	var_Layer5->Background->Picture->set_Name(TVariant("noCap.png"));
	var_Layer5->Transparency = 45;
Gauge1->Layers->get_Item(TVariant("pointer"))->Position = Gauge1->Layers->get_Item(TVariant("noCap"))->Position;
Gauge1->LayerOfValue = Gauge1->Layers->get_Item(TVariant("pointer"))->Index;
Gauge1->set_Value(TVariant(56));
Gauge1->EndUpdate();

39
How can I display LED-numbers

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->set_Value(TVariant(->FormatABC(L"value MIN 0 MAX 99",TVariant(Gauge1->get_Value()),TNoParam(),TNoParam())));
	Gauge1->Layers->get_Item(TVariant("noDigit"))->Background->get_ExtraPicture(TVariant("80"))->set_Name(TVariant(Gauge1->FormatABC(L"`no` + int((value MIN 0 MAX 99)/10) + `.png`",TVariant(Gauge1->get_Value()),TNoParam(),TNoParam())));
	Gauge1->Layers->get_Item(TVariant("noDigit"))->Background->get_ExtraPicture(TVariant("08"))->set_Name(TVariant(Gauge1->FormatABC(L"`no` + int((value MIN 0 MAX 99) mod 10) + `.png`",TVariant(Gauge1->get_Value()),TNoParam(),TNoParam())));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"value + B",TVariant(Gauge1->Layers->get_Item(TVariant("noDigit"))->get_Value()),TVariant(Delta),TNoParam())));
}

// Timer event - Occurs when the interval elapses.
void __fastcall TForm1::Gauge1Timer(TObject *Sender,long   TickCount)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"value = 99 ? 0 : ( value  + B )",TVariant(Gauge1->get_Value()),TVariant(1),TNoParam())));
}

Gauge1->BeginUpdate();
Gauge1->AllowSmoothChange = Exgaugelib_tlb::SmoothPropertyEnum::exSmoothChangeless;
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Led\\Speed";
Gauge1->Layers->Count = 3;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(1));
	var_Layer->set_Key(TVariant("noBack"));
	var_Layer->Left = L"(width - 55 * 2)/2";
	var_Layer->Top = L"(height - 94 * 1)/2";
	var_Layer->Width = L"2 * 45 + 8";
	var_Layer->Height = L"1 * 94";
	var_Layer->Transparency = 90;
	Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer->Background->get_ExtraPicture(TVariant("80"));
		var_Picture->set_Name(TVariant("noBack.png"));
		var_Picture->Left = L"-4";
		var_Picture->Width = L"70";
	Exgaugelib_tlb::ILPicturePtr var_Picture1 = var_Layer->Background->get_ExtraPicture(TVariant("08"));
		var_Picture1->set_Name(TVariant("noBack.png"));
		var_Picture1->Left = L"36";
		var_Picture1->Width = L"70";
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(2));
	var_Layer1->set_Key(TVariant("noDigit"));
	var_Layer1->Left = L"(width - 55 * 2)/2";
	var_Layer1->Top = L"(height - 94 * 1)/2";
	var_Layer1->Width = L"2 * 45 + 8";
	var_Layer1->Height = L"1 * 94";
	Exgaugelib_tlb::ILPicturePtr var_Picture2 = var_Layer1->Background->get_ExtraPicture(TVariant("80"));
		var_Picture2->set_Name(TVariant("no1.png"));
		var_Picture2->Left = L"-4";
		var_Picture2->Width = L"70";
	Exgaugelib_tlb::ILPicturePtr var_Picture3 = var_Layer1->Background->get_ExtraPicture(TVariant("08"));
		var_Picture3->set_Name(TVariant("no2.png"));
		var_Picture3->Left = L"36";
		var_Picture3->Width = L"70";
Gauge1->LayerOfValue = Gauge1->Layers->get_Item(TVariant("noDigit"))->Index;
Gauge1->set_Value(TVariant(73));
Gauge1->TimerInterval = 100;
Gauge1->EndUpdate();

38
How can I display a simple knob, to fit the control's client area

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 1";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->LayerAutoSize = -1;
Gauge1->DefaultLayer[Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerWidth] = TVariant("width MAX height");
Gauge1->DefaultLayer[Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerHeight] = TVariant("width MAX height");
Gauge1->Layers->Count = 5;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(4));
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotamove;
	var_Layer->DefaultRotateAngle = -142;

37
How can I display a switch

// Click event - Occurs when the user presses and then releases the left mouse button over the control.
void __fastcall TForm1::Gauge1Click(TObject *Sender)
{
	Gauge1->set_Value(TVariant(->FormatABC(L"(value + 1) mod 2",TVariant(Gauge1->get_Value()),TNoParam(),TNoParam())));
}

// DragEnd event - Occurs once the user ends dragging a layer.
void __fastcall TForm1::Gauge1DragEnd(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL   Cancel)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"(value < 24 ? 0 : 1)",TVariant(Gauge1->Layers->get_Item(TVariant("knob"))->OffsetX),TNoParam(),TNoParam())));
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"value > 0 ? 1 : 0",TVariant(Delta),TNoParam(),TNoParam())));
}

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Linear\\Switch";
Gauge1->Layers->Count = 4;
Gauge1->Layers->get_Item(TVariant(0))->Background->Picture->set_Name(TVariant("background.png"));
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(1));
	Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer->Background->Picture;
		var_Picture->set_Name(TVariant("Indicator_ON.png"));
		var_Picture->DisplayAs = Exgaugelib_tlb::PictureDisplayEnum::MiddleLeft;
	var_Layer->OffsetXValid = L"48";
	var_Layer->OffsetYValid = L"0";
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(2));
	Exgaugelib_tlb::ILPicturePtr var_Picture1 = var_Layer1->Background->Picture;
		var_Picture1->set_Name(TVariant("Indicator_OFF.png"));
		var_Picture1->DisplayAs = Exgaugelib_tlb::PictureDisplayEnum::MiddleRight;
	var_Layer1->OffsetXValid = L"-12";
	var_Layer1->OffsetYValid = L"0";
Exgaugelib_tlb::ILayerPtr var_Layer2 = Gauge1->Layers->get_Item(TVariant(3));
	var_Layer2->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoMove;
	var_Layer2->set_Key(TVariant("knob"));
	Exgaugelib_tlb::ILPicturePtr var_Picture2 = var_Layer2->Background->Picture;
		var_Picture2->set_Name(TVariant("knob.png"));
		var_Picture2->DisplayAs = Exgaugelib_tlb::PictureDisplayEnum::MiddleCenter;
	var_Layer2->DefaultOffsetY = "9";
	var_Layer2->DefaultOffsetX = "-5";
	var_Layer2->OffsetYValid = L"0";
	var_Layer2->ValueToOffsetX = L"value = 0 ? 0 : 48";
	var_Layer2->OffsetToValue = L"value = 0 ? 0 : 1";
	var_Layer2->OffsetXValid = L"(value MIN 0 MAX 48)";
Gauge1->LayerOfValue = Gauge1->Layers->get_Item(TVariant("knob"))->Index;
Gauge1->set_Value(TVariant(1));

36
How can I colorize the layer

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Caption[Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` Value: <b>` + (value format ``)",TVariant(Gauge1->Layers->get_Item(TVariant(4))->get_Value()),TNoParam(),TNoParam()));
}

// Click event - Occurs when the user presses and then releases the left mouse button over the control.
void __fastcall TForm1::Gauge1Click(TObject *Sender)
{
	_tlb::ObjectPtr var_Object = Gauge1->Layers->get_Item(TVariant(Gauge1->LayerFromPoint[-1,-1]));
}

// MouseIn event - Notifies that the cursor enters the layer.
void __fastcall TForm1::Gauge1MouseIn(TObject *Sender,long   Layer)
{
	Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(Layer));
		var_Layer->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exRedChannel,100);
		var_Layer->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exGreenChannel,0);
		var_Layer->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exBlueChannel,0);
}

// MouseOut event - Notifies that the cursor exits the layer.
void __fastcall TForm1::Gauge1MouseOut(TObject *Sender,long   Layer)
{
	Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(Layer));
		var_Layer->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exRedChannel,Gauge1->get_DefaultLayer(Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerBrightness));
		var_Layer->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exGreenChannel,Gauge1->get_DefaultLayer(Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerBrightness));
		var_Layer->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exBlueChannel,Gauge1->get_DefaultLayer(Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerBrightness));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->set_Value(TVariant(->FormatABC(L"A - B",TVariant(Gauge1->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->BeginUpdate();
Gauge1->DefaultLayer[Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerBrightness] = TVariant(51);
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 2";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->Layers->Count = 6;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->RotateCenterX = L"lwidth/2-3";
	var_Layer->RotateCenterY = L"lheight/2+23";
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(4));
	var_Layer1->DefaultRotateAngle = -132;
	var_Layer1->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotamove;
	var_Layer1->RotateAngleValid = L"value < 0 ? 0  : (value > 236 ? (value > 300 ? 0 : 236 ) : value)";
	var_Layer1->ValueToRotateAngle = L"value < 20 ? (value /20 * 86) : (value - 20) / (90-20) * (236-86) + 86";
	var_Layer1->RotateAngleToValue = L"value < 86 ? value / 86 * 20: ( 20 + ( value -86 ) / (236-86) * 70 )";
Gauge1->set_Value(TVariant(45));
Gauge1->EndUpdate();

35
How can I imitate the rotating angle on an unequal scale

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Caption[Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` Value: <b>` + (value format ``)",TVariant(Gauge1->Layers->get_Item(TVariant(4))->get_Value()),TNoParam(),TNoParam()));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->set_Value(TVariant(->FormatABC(L"A - B",TVariant(Gauge1->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 2";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->Layers->Count = 6;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->RotateCenterX = L"lwidth/2-3";
	var_Layer->RotateCenterY = L"lheight/2+23";
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(4));
	var_Layer1->DefaultRotateAngle = -132;
	var_Layer1->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotamove;
	var_Layer1->RotateAngleValid = L"value < 0 ? 0  : (value > 236 ? (value > 300 ? 0 : 236 ) : value)";
	var_Layer1->ValueToRotateAngle = L"value < 20 ? (value /20 * 86) : (value - 20) / (90-20) * (236-86) + 86";
	var_Layer1->RotateAngleToValue = L"value < 86 ? value / 86 * 20: ( 20 + ( value -86 ) / (236-86) * 70 )";
Gauge1->set_Value(TVariant(45));
Gauge1->EndUpdate();

34
How can I rotate more knobs at once

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Caption[Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` Value: <b>` + (value format ``)",TVariant(Gauge1->Layers->get_Item(TVariant(4))->get_Value()),TNoParam(),TNoParam()));
	Gauge1->Layers->get_Item(TVariant(2))->RotateAngle = Gauge1->Layers->get_Item(TVariant(4))->RotateAngle;
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->Layers->get_Item(TVariant(4))->RotateAngle = Gauge1->FormatABC(L"A - B",TVariant(Gauge1->Layers->get_Item(TVariant(4))->RotateAngle),TVariant(Delta),TNoParam());
}

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 1";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->Layers->Count = 5;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(4));
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotamove;
	var_Layer->DefaultRotateAngle = -142;
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(2));
	var_Layer1->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer1->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;

33
How can I clip one layer while other is rotating

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Caption[Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` Value: <b>` + (value format ``)",TVariant(Gauge1->Layers->get_Item(TVariant(9))->get_Value()),TNoParam(),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotateAngle"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` RotateAngle: <b>` + ( A format `` ) + `°`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotateAngle),TNoParam(),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotateAngle"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(18);
	Gauge1->ExtraCaption[TVariant("RotamoveCenter"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` RotamoveCenter: <b> (` + A + `,` + B + `)`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveCenterX),TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveCenterY),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotamoveCenter"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(36);
	Gauge1->ExtraCaption[TVariant("RotamoveOffset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` RotamoveOffset: <b> (` + A + `,` + B + `)`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveOffsetX),TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveOffsetY),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotamoveOffset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(54);
	Gauge1->ExtraCaption[TVariant("Offset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` Offset: <b> (` + A + `,` + B + `)`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->OffsetX),TVariant(Gauge1->Layers->get_Item(TVariant(9))->OffsetY),TNoParam()));
	Gauge1->ExtraCaption[TVariant("Offset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(72);
	Gauge1->ExtraCaption[TVariant("Client"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"`<sha ;;0><font ;12><b>` + ((100 - value) format ``)",TVariant(Gauge1->get_Value()),TNoParam(),TNoParam()));
	Gauge1->ExtraCaption[TVariant("Client"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionLeft] = TVariant(Gauge1->FormatABC(L"value - 12",TVariant(->get_Item(TVariant(9))->get_LayerToClientX(TVariant(Gauge1->Layers->RotamoveCenterX),TVariant(->RotamoveCenterY))),TNoParam(),TNoParam()));
	Gauge1->ExtraCaption[TVariant("Client"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(Gauge1->FormatABC(L"value - 36",TVariant(->get_Item(TVariant(9))->get_LayerToClientY(TVariant(Gauge1->Layers->RotamoveCenterX),TVariant(->RotamoveCenterY))),TNoParam(),TNoParam()));
	Gauge1->Layers->get_Item(TVariant(3))->Clip->set_Value(TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotateAngle));
	Gauge1->Layers->get_Item(TVariant(4))->Clip->set_Value(TVariant(Gauge1->Layers->get_Item(TVariant(3))->Clip->get_Value()));
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.RotateAngleValid = "value < 0 ? 0 : ( value >= 360 ? 359.999 : value )"
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"100 - value - B",TVariant(Gauge1->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->Layers->Count = 11;
Gauge1->AllowSmoothChange = Exgaugelib_tlb::SmoothPropertyEnum::exSmoothChangeless;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(9));
	var_Layer->DefaultRotateAngle = -126;
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotamove;
	var_Layer->RotateAngleToValue = L"100 - value / 360 * 100";
	var_Layer->ValueToRotateAngle = L"(value)/100 * 360";
Gauge1->Layers->get_Item(TVariant(3))->Clip->Pie->SweepAngle = L"value";
Gauge1->Layers->get_Item(TVariant(4))->Clip->Pie->SweepAngle = Gauge1->Layers->get_Item(TVariant(3))->Clip->Pie->SweepAngle;
Gauge1->Layers->get_Item(TVariant(9))->set_Value(TVariant(25));
Gauge1->EndUpdate();

32
Can I move one or more layers at once

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Layers->get_Item(TVariant(3))->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exRedChannel,Gauge1->FormatABC(L"100 - value ",TVariant(Gauge1->get_Value()),TNoParam(),TNoParam()));
	Gauge1->Layers->get_Item(TVariant(4))->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exRedChannel,Gauge1->Layers->get_Item(TVariant(3))->get_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exRedChannel));
	Gauge1->Caption[Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` Value: <b>` + (100 - value format ``)",TVariant(Gauge1->Layers->get_Item(TVariant(9))->get_Value()),TNoParam(),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotateAngle"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` RotateAngle: <b>` + ( A format `` ) + `°`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotateAngle),TNoParam(),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotateAngle"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(18);
	Gauge1->ExtraCaption[TVariant("RotamoveCenter"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` RotamoveCenter: <b> (` + A + `,` + B + `)`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveCenterX),TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveCenterY),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotamoveCenter"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(36);
	Gauge1->ExtraCaption[TVariant("RotamoveOffset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` RotamoveOffset: <b> (` + A + `,` + B + `)`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveOffsetX),TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveOffsetY),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotamoveOffset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(54);
	Gauge1->ExtraCaption[TVariant("Offset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` Offset: <b> (` + A + `,` + B + `)`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->OffsetX),TVariant(Gauge1->Layers->get_Item(TVariant(9))->OffsetY),TNoParam()));
	Gauge1->ExtraCaption[TVariant("Offset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(72);
	Gauge1->Layers->get_Item(TVariant(10))->RotateAngle = Gauge1->Layers->get_Item(TVariant(9))->RotateAngle;
}

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
void __fastcall TForm1::Gauge1DblClick(TObject *Sender,short   Shift,int   X,int   Y)
{
	Gauge1->set_Value(TVariant(0));
}

// Drag event - Notifies that the user drags the layer.
void __fastcall TForm1::Gauge1Drag(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo)
{
	// ExtraCaption("Clockwise",0) = FormatABC( "` Clockwise: <b>` + ( value != 0 ? `Yes` : `No`) ", DragInfo.Clockwise )
	// ExtraCaption("Cumulative",0) = FormatABC( "` CumulativeRotateAngle: <b>` + ( value format `` ) + `°` ", DragInfo.CumulativeRotateAngle )
	OutputDebugString( L"DragInfo" );
	Gauge1->ExtraCaption[TVariant("Clockwise"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(90);
	Gauge1->ExtraCaption[TVariant("Cumulative"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(108);
}

// DragEnd event - Occurs once the user ends dragging a layer.
void __fastcall TForm1::Gauge1DragEnd(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL   Cancel)
{
	Gauge1->ExtraCaption[TVariant("Clockwise"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant("");
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug  = 227
	// DragInfo.RotateAngleValid = "value < 0 ? 0 : (value > 360 ? 359.999999 : value)"
	Gauge1->ExtraCaption[TVariant("Clockwise"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant("");
	Gauge1->ExtraCaption[TVariant("Cumulative"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant("");
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"100 - A - B",TVariant(Gauge1->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->DefaultLayer[Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerRotateType] = TVariant(2);
Gauge1->Layers->Count = 11;
Gauge1->AllowSmoothChange = Exgaugelib_tlb::SmoothPropertyEnum::exSmoothChangeless;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(9));
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotamove;
	var_Layer->DefaultRotateAngle = -126;
	var_Layer->RotateAngleToValue = L"100 - (value ) / 360 * 100";
	var_Layer->ValueToRotateAngle = L"(value)/100 * 360";
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(10));
	var_Layer1->Grayscale = 100;
	var_Layer1->Transparency = 25;
	var_Layer1->DefaultRotateAngle = -69.5;
	var_Layer1->RotateAngleToValue = L"100 - (value ) / 360 * 100";
	var_Layer1->ValueToRotateAngle = L"(value 1)/100 * 360";
	var_Layer1->Background->Picture->set_Value(TVariant("Highlighted_Layer4.png"));
Exgaugelib_tlb::ILayerPtr var_Layer2 = Gauge1->Layers->get_Item(TVariant(3));
	var_Layer2->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exAllChannels,0);
	var_Layer2->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exRedChannel,0);
Exgaugelib_tlb::ILayerPtr var_Layer3 = Gauge1->Layers->get_Item(TVariant(4));
	var_Layer3->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exAllChannels,0);
	var_Layer3->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exRedChannel,0);
Gauge1->LayerOfValue = 9;
Gauge1->set_Value(TVariant(5));
Gauge1->EndUpdate();

31
How can I rotate a knob by moving ( rotamove )

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Layers->get_Item(TVariant(3))->Transparency = Gauge1->get_Value();
	Gauge1->Layers->get_Item(TVariant(4))->Transparency = Gauge1->get_Value();
	Gauge1->Caption[Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` Value: <b>` + (100 - value format ``)",TVariant(Gauge1->Layers->get_Item(TVariant(9))->get_Value()),TNoParam(),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotateAngle"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` RotateAngle: <b>` + ( A format `` ) + `°`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotateAngle),TNoParam(),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotateAngle"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(18);
	Gauge1->ExtraCaption[TVariant("RotamoveCenter"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` RotamoveCenter: <b> (` + A + `,` + B + `)`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveCenterX),TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveCenterY),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotamoveCenter"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(36);
	Gauge1->ExtraCaption[TVariant("RotamoveOffset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` RotamoveOffset: <b> (` + A + `,` + B + `)`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveOffsetX),TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveOffsetY),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotamoveOffset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(54);
	Gauge1->ExtraCaption[TVariant("Offset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` Offset: <b> (` + A + `,` + B + `)`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->OffsetX),TVariant(Gauge1->Layers->get_Item(TVariant(9))->OffsetY),TNoParam()));
	Gauge1->ExtraCaption[TVariant("Offset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(72);
}

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
void __fastcall TForm1::Gauge1DblClick(TObject *Sender,short   Shift,int   X,int   Y)
{
	Gauge1->set_Value(TVariant(0));
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.RotateAngleValid = "value < 0 ? 0 : (value > 360 ? 359.999999 : value)"
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"100 - A - B",TVariant(Gauge1->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->Layers->Count = 11;
Gauge1->AllowSmoothChange = Exgaugelib_tlb::SmoothPropertyEnum::exSmoothChangeless;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(9));
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotamove;
	var_Layer->DefaultRotateAngle = -126;
	var_Layer->RotateAngleToValue = L"100 - value / 360 * 100";
	var_Layer->ValueToRotateAngle = L"(value)/100 * 360";
	var_Layer->Background->get_ExtraPicture(TVariant("Aka"))->set_Value(TVariant("Highlighted_Layer4.png"));
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(3));
	var_Layer1->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exAllChannels,0);
	var_Layer1->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exRedChannel,100);
Exgaugelib_tlb::ILayerPtr var_Layer2 = Gauge1->Layers->get_Item(TVariant(4));
	var_Layer2->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotamove;
	var_Layer2->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exAllChannels,0);
	var_Layer2->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exRedChannel,100);
Gauge1->set_Value(TVariant(15));
Gauge1->EndUpdate();

30
How can I display a knob, and displays the current value on it

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Caption[Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` Value: <b>` + (100 - value format ``)",TVariant(Gauge1->Layers->get_Item(TVariant(9))->get_Value()),TNoParam(),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotateAngle"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` RotateAngle: <b>` + ( A format `` ) + `°`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotateAngle),TNoParam(),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotateAngle"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(18);
	Gauge1->ExtraCaption[TVariant("RotamoveCenter"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` RotamoveCenter: <b> (` + A + `,` + B + `)`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveCenterX),TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveCenterY),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotamoveCenter"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(36);
	Gauge1->ExtraCaption[TVariant("RotamoveOffset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` RotamoveOffset: <b> (` + A + `,` + B + `)`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveOffsetX),TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveOffsetY),TNoParam()));
	Gauge1->ExtraCaption[TVariant("RotamoveOffset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(54);
	Gauge1->ExtraCaption[TVariant("Offset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"` Offset: <b> (` + A + `,` + B + `)`",TVariant(Gauge1->Layers->get_Item(TVariant(9))->OffsetX),TVariant(Gauge1->Layers->get_Item(TVariant(9))->OffsetY),TNoParam()));
	Gauge1->ExtraCaption[TVariant("Offset"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(72);
	Gauge1->ExtraCaption[TVariant("Client"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"`<sha ;;0><font ;12><b>` + (100 - value format `0`)",TVariant(Gauge1->get_Value()),TNoParam(),TNoParam()));
	Gauge1->ExtraCaption[TVariant("Client"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionLeft] = TVariant(Gauge1->FormatABC(L"value - 8",TVariant(Gauge1->Layers->get_Item(TVariant(9))->get_LayerToClientX(TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveCenterX),TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveCenterY))),TNoParam(),TNoParam()));
	Gauge1->ExtraCaption[TVariant("Client"),Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaptionTop] = TVariant(Gauge1->FormatABC(L"value - 26",TVariant(Gauge1->Layers->get_Item(TVariant(9))->get_LayerToClientY(TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveCenterX),TVariant(Gauge1->Layers->get_Item(TVariant(9))->RotamoveCenterY))),TNoParam(),TNoParam()));
	Gauge1->Layers->get_Item(TVariant(7))->RotateAngle = Gauge1->Layers->get_Item(TVariant(0))->RotateAngle;
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"100 - A - B",TVariant(Gauge1->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob";
Gauge1->PicturesName = L"`Layer` + str(value + 1) + `.png`";
Gauge1->Layers->Count = 11;
Gauge1->AllowSmoothChange = Exgaugelib_tlb::SmoothPropertyEnum::exSmoothChangeless;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(9));
	var_Layer->DefaultRotateAngle = -126;
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotamove;
	var_Layer->RotateAngleToValue = L"100 - (value / 360 * 100)";
	var_Layer->ValueToRotateAngle = L"(value)/100 * 360";
	var_Layer->ValueToOffsetX = L"value";
	var_Layer->OffsetToValue = L"value";
	var_Layer->RotateAngleValid = L"int(value / 360 * 100)/100 * 360";
Gauge1->Layers->get_Item(TVariant(3))->Visible = false;
Gauge1->Layers->get_Item(TVariant(4))->Visible = false;
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer1->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer1->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
Exgaugelib_tlb::ILayerPtr var_Layer2 = Gauge1->Layers->get_Item(TVariant(7));
	var_Layer2->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer2->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
Gauge1->set_Value(TVariant(25));
Gauge1->EndUpdate();

29
How can I display an indicator

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->Layers->get_Item(TVariant(1))->Clip->set_Value(TVariant(->FormatABC(L"(value + B) MIN 0 MAX 100",TVariant(Gauge1->Layers->get_Item(TVariant(1))->Clip->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Linear\\Indicator";
Gauge1->Layers->Count = 3;
Gauge1->Layers->get_Item(TVariant(0))->Background->Picture->set_Name(TVariant("Background.png"));
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(1));
	var_Layer->Background->Picture->set_Name(TVariant("Green_Lights.png"));
	Exgaugelib_tlb::IClipPtr var_Clip = var_Layer->Clip;
		Exgaugelib_tlb::IClipRectanglePtr var_ClipRectangle = var_Clip->Rectangle;
			var_ClipRectangle->Height = L"(100 - value)/100 * height";
			var_ClipRectangle->InverseClip = true;
		var_Clip->set_Value(TVariant(50));
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(2));
	var_Layer1->Visible = false;
	var_Layer1->Background->Picture->set_Name(TVariant("overlay_top_layer.png"));

28
How can I display a gauge

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Layers->get_Item(TVariant(1))->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exGreenChannel,Gauge1->get_Value());
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"A - B",TVariant(Gauge1->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->BeginUpdate();
Gauge1->BackColor = RGB(217,217,217);
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Guage";
Gauge1->Layers->Count = 2;
Gauge1->AllowSmoothChange = Exgaugelib_tlb::SmoothPropertyEnum::exSmoothChangeless;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->RotateCenterY = L"lheight/2 + 78";
	var_Layer->Background->Picture->set_Name(TVariant("Guage_Background.png"));
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(1));
	var_Layer1->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer1->Background->Picture->set_Name(TVariant("Guage_Needle.png"));
	var_Layer1->RotateAngleValid = L"value < 90 ? value : (value < 180 ? 90 : ( value < 270 ? 270 : value ))";
	var_Layer1->RotateAngleToValue = L"value >= 270 ? (value - 270)/90*50 : (value/90)*50 + 50";
	var_Layer1->ValueToRotateAngle = L"value < 50 ? (270 + value/50*90) : (value - 50)/50 * 90";
	var_Layer1->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
	var_Layer1->set_Brightness(Exgaugelib_tlb::ColorAdjustmentChannelEnum::exAllChannels,0);
Gauge1->set_Value(TVariant(78));
Gauge1->EndUpdate();

27
How can I display a clock (rotate,wolf)

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Layers->get_Item(TVariant("sec"))->set_Value(TVariant(Gauge1->get_Value()));
	Gauge1->Layers->get_Item(TVariant("min"))->set_Value(TVariant(Gauge1->get_Value()));
	Gauge1->Layers->get_Item(TVariant("hour"))->set_Value(TVariant(Gauge1->get_Value()));
	Gauge1->Layers->get_Item(TVariant("range"))->Clip->set_Value(TVariant(Gauge1->Layers->get_Item(TVariant("pointer"))->get_Value()));
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug = -1
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->Layers->get_Item(TVariant("pointer"))->set_Value(TVariant(Gauge1->FormatABC(L"A - B",TVariant(Gauge1->Layers->get_Item(TVariant("pointer"))->get_Value()),TVariant(Delta),TNoParam())));
}

// Timer event - Occurs when the interval elapses.
void __fastcall TForm1::Gauge1Timer(TObject *Sender,long   TickCount)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L" date(`now`)",TNoParam(),TNoParam(),TNoParam())));
	Gauge1->Layers->get_Item(TVariant("pointer"))->set_Value(TVariant(Gauge1->FormatABC(L"sin((value/100 mod 100)/100 * 2 * asin(1)) * 100",TVariant(TickCount),TNoParam(),TNoParam())));
	Gauge1->Layers->get_Item(TVariant("range"))->Clip->set_Value(TVariant(Gauge1->Layers->get_Item(TVariant("pointer"))->get_Value()));
}

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Clock - Wolf";
Gauge1->DefaultLayer[Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerRotateType] = TVariant(2);
Gauge1->Layers->Count = 9;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Left = L"(width-512)/2";
	var_Layer->Top = L"(height-512)/2";
	var_Layer->Height = L"512";
	var_Layer->Width = L"512";
	var_Layer->Background->Picture->set_Name(TVariant("Back.png"));
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(1));
	var_Layer1->set_Key(TVariant("scale"));
	var_Layer1->DefaultOffsetX = -90;
	var_Layer1->DefaultOffsetY = -150;
	var_Layer1->Background->Picture->set_Name(TVariant("Scale.png"));
	var_Layer1->RotateCenterLayer = 1;
	var_Layer1->RotateCenterX = L"(lwidth+181)/2";
	var_Layer1->RotateCenterY = L"(lheight+232)/2";
Exgaugelib_tlb::ILayerPtr var_Layer2 = Gauge1->Layers->get_Item(TVariant(2));
	var_Layer2->set_Key(TVariant("range"));
	var_Layer2->DefaultOffsetX = Gauge1->Layers->get_Item(TVariant("scale"))->DefaultOffsetX;
	var_Layer2->DefaultOffsetY = Gauge1->Layers->get_Item(TVariant("scale"))->DefaultOffsetY;
	var_Layer2->RotateCenterLayer = Gauge1->Layers->get_Item(TVariant("scale"))->Index;
	Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer2->Background->Picture;
		var_Picture->set_Name(TVariant("ScalePointerArc.png"));
	var_Layer2->RotateCenterLayer = Gauge1->Layers->get_Item(TVariant("scale"))->Index;
	Exgaugelib_tlb::IClipPiePtr var_ClipPie = var_Layer2->Clip->Pie;
		var_ClipPie->RadiusX = L"100";
		var_ClipPie->RadiusY = L"100";
		var_ClipPie->CenterX = Gauge1->Layers->get_Item(TVariant("scale"))->RotateCenterX;
		var_ClipPie->CenterY = Gauge1->Layers->get_Item(TVariant("scale"))->RotateCenterY;
		var_ClipPie->StartAngle = L"-148";
		var_ClipPie->SweepAngle = L"value/100 * 300";
Exgaugelib_tlb::ILayerPtr var_Layer3 = Gauge1->Layers->get_Item(TVariant(3));
	var_Layer3->set_Key(TVariant("pointer"));
	var_Layer3->DefaultOffsetX = Gauge1->Layers->get_Item(TVariant("scale"))->DefaultOffsetX;
	var_Layer3->DefaultOffsetY = Gauge1->Layers->get_Item(TVariant("scale"))->DefaultOffsetY;
	Exgaugelib_tlb::ILPicturePtr var_Picture1 = var_Layer3->Background->Picture;
		var_Picture1->set_Name(TVariant("ScalePointer.png"));
	var_Layer3->RotateCenterLayer = Gauge1->Layers->get_Item(TVariant("scale"))->Index;
	var_Layer3->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer3->DefaultRotateAngle = -148;
	var_Layer3->RotateAngleValid = L"value > 300 ? (value > 330 ? 0 : 300) : value";
	var_Layer3->RotateAngleToValue = L"value / 300 * 100";
	var_Layer3->ValueToRotateAngle = L"value /100 * 300";
Exgaugelib_tlb::ILayerPtr var_Layer4 = Gauge1->Layers->get_Item(TVariant(4));
	var_Layer4->set_Key(TVariant("bolt"));
	var_Layer4->DefaultOffsetX = Gauge1->Layers->get_Item(TVariant("scale"))->DefaultOffsetX;
	var_Layer4->DefaultOffsetY = Gauge1->Layers->get_Item(TVariant("scale"))->DefaultOffsetY;
	Exgaugelib_tlb::ILPicturePtr var_Picture2 = var_Layer4->Background->Picture;
		var_Picture2->set_Name(TVariant("Bolt.png"));
Exgaugelib_tlb::ILayerPtr var_Layer5 = Gauge1->Layers->get_Item(TVariant(5));
	var_Layer5->Left = L"(width-512)/2";
	var_Layer5->Top = L"(height-512)/2";
	var_Layer5->Height = L"512";
	var_Layer5->Width = L"512";
	var_Layer5->set_Key(TVariant("sec"));
	var_Layer5->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer5->Selectable = false;
	var_Layer5->Background->Picture->set_Name(TVariant("second-hand.png"));
	var_Layer5->ValueToRotateAngle = TVariant(String("((2:=(((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - ") +
"floor(=:1)) * 60 )) - floor(=:2) ) * 360");
	var_Layer5->RotateAngleToValue = L"value / 360 / 24 / 60";
Exgaugelib_tlb::ILayerPtr var_Layer6 = Gauge1->Layers->get_Item(TVariant(6));
	var_Layer6->Left = L"(width-512)/2";
	var_Layer6->Top = L"(height-512)/2";
	var_Layer6->Height = L"512";
	var_Layer6->Width = L"512";
	var_Layer6->set_Key(TVariant("min"));
	var_Layer6->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer6->Selectable = false;
	var_Layer6->Background->Picture->set_Name(TVariant("Minute.png"));
	var_Layer6->ValueToRotateAngle = TVariant(String("((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - floor(") +
"=:1)) * 360");
	var_Layer6->RotateAngleToValue = L"value / 360 / 24 / 60";
Exgaugelib_tlb::ILayerPtr var_Layer7 = Gauge1->Layers->get_Item(TVariant(7));
	var_Layer7->Left = L"(width-512)/2";
	var_Layer7->Top = L"(height-512)/2";
	var_Layer7->Height = L"512";
	var_Layer7->Width = L"512";
	var_Layer7->set_Key(TVariant("hour"));
	var_Layer7->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer7->Background->Picture->set_Name(TVariant("Hour.png"));
	var_Layer7->ValueToRotateAngle = L"2 * 360 * ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) )";
	var_Layer7->RotateAngleToValue = L"value / 360 * 0.5";
Exgaugelib_tlb::ILayerPtr var_Layer8 = Gauge1->Layers->get_Item(TVariant(8));
	var_Layer8->Left = L"(width-512)/2";
	var_Layer8->Top = L"(height-512)/2";
	var_Layer8->Height = L"512";
	var_Layer8->Width = L"512";
	var_Layer8->set_Key(TVariant("front"));
	var_Layer8->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer8->Background->Picture->set_Name(TVariant("front.png"));
Gauge1->LayerOfValue = Gauge1->Layers->get_Item(TVariant("hour"))->Index;
Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"date(`now`)",TNoParam(),TNoParam(),TNoParam())));
Gauge1->TimerInterval = 100;

26
How can I display a clock (rotate,vintage)

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Layers->get_Item(TVariant("sec"))->set_Value(TVariant(Gauge1->get_Value()));
	Gauge1->Layers->get_Item(TVariant("min"))->set_Value(TVariant(Gauge1->get_Value()));
	Gauge1->Layers->get_Item(TVariant("hour"))->set_Value(TVariant(Gauge1->get_Value()));
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"A - 1/24/60/60*B",TVariant(Gauge1->get_Value()),TVariant(Delta),TNoParam())));
}

// Timer event - Occurs when the interval elapses.
void __fastcall TForm1::Gauge1Timer(TObject *Sender,long   TickCount)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"value + 1/24/60/60",TVariant(Gauge1->get_Value()),TNoParam(),TNoParam())));
}

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Clock - Vintage";
Gauge1->DefaultLayer[Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerRotateType] = TVariant(2);
Gauge1->Layers->Count = 5;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Left = L"(width-512)/2";
	var_Layer->Top = L"(height-512)/2";
	var_Layer->Height = L"512";
	var_Layer->Width = L"512";
	var_Layer->Background->Picture->set_Name(TVariant("Back.png"));
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(1));
	var_Layer1->Position = 3;
	var_Layer1->Left = L"(width-512)/2";
	var_Layer1->Top = L"(height-512)/2";
	var_Layer1->Height = L"512";
	var_Layer1->Width = L"512";
	var_Layer1->set_Key(TVariant("sec"));
	var_Layer1->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer1->Selectable = false;
	var_Layer1->Background->Picture->set_Name(TVariant("second-hand.png"));
	var_Layer1->ValueToRotateAngle = TVariant(String("((2:=(((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - ") +
"floor(=:1)) * 60 )) - floor(=:2) ) * 360");
	var_Layer1->RotateAngleToValue = L"value / 360 / 24 / 60";
Exgaugelib_tlb::ILayerPtr var_Layer2 = Gauge1->Layers->get_Item(TVariant(2));
	var_Layer2->Left = L"(width-512)/2";
	var_Layer2->Top = L"(height-512)/2";
	var_Layer2->Height = L"512";
	var_Layer2->Width = L"512";
	var_Layer2->Position = 2;
	var_Layer2->set_Key(TVariant("min"));
	var_Layer2->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer2->Selectable = false;
	var_Layer2->Background->Picture->set_Name(TVariant("Minute.png"));
	var_Layer2->ValueToRotateAngle = TVariant(String("((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - floor(") +
"=:1)) * 360");
	var_Layer2->RotateAngleToValue = L"value / 360 / 24 / 60";
Exgaugelib_tlb::ILayerPtr var_Layer3 = Gauge1->Layers->get_Item(TVariant(3));
	var_Layer3->Left = L"(width-512)/2";
	var_Layer3->Top = L"(height-512)/2";
	var_Layer3->Height = L"512";
	var_Layer3->Width = L"512";
	var_Layer3->Position = 1;
	var_Layer3->set_Key(TVariant("hour"));
	var_Layer3->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer3->Background->Picture->set_Name(TVariant("Hour.png"));
	var_Layer3->ValueToRotateAngle = L"2 * 360 * ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) )";
	var_Layer3->RotateAngleToValue = L"value / 360 * 0.5";
Exgaugelib_tlb::ILayerPtr var_Layer4 = Gauge1->Layers->get_Item(TVariant(4));
	var_Layer4->Left = L"(width-512)/2";
	var_Layer4->Top = L"(height-512)/2";
	var_Layer4->Height = L"512";
	var_Layer4->Width = L"512";
	var_Layer4->Position = 1;
	var_Layer4->set_Key(TVariant("front"));
	var_Layer4->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer4->Background->Picture->set_Name(TVariant("front.png"));
	var_Layer4->ValueToRotateAngle = L"2 * 360 * ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) )";
	var_Layer4->RotateAngleToValue = L"value / 360 * 0.5";
Gauge1->LayerOfValue = 3;
Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"date(`now`)",TNoParam(),TNoParam(),TNoParam())));
Gauge1->TimerInterval = 1000;

25
How can I display a clock (rotate,london)

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Layers->get_Item(TVariant("sec"))->set_Value(TVariant(Gauge1->get_Value()));
	Gauge1->Layers->get_Item(TVariant("min"))->set_Value(TVariant(Gauge1->get_Value()));
	Gauge1->Layers->get_Item(TVariant("hour"))->set_Value(TVariant(Gauge1->get_Value()));
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"A - 1/24/60/60*B",TVariant(Gauge1->get_Value()),TVariant(Delta),TNoParam())));
}

// Timer event - Occurs when the interval elapses.
void __fastcall TForm1::Gauge1Timer(TObject *Sender,long   TickCount)
{
	Gauge1->set_Value(TVariant(->FormatABC(L"value + 1/24/60/60",TVariant(Gauge1->get_Value()),TNoParam(),TNoParam())));
}

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Clock - London";
Gauge1->DefaultLayer[Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerRotateType] = TVariant(2);
Gauge1->Layers->Count = 6;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Left = L"(width-512)/2";
	var_Layer->Top = L"(height-512)/2";
	var_Layer->Height = L"512";
	var_Layer->Width = L"512";
	var_Layer->Background->Picture->set_Name(TVariant("Back.png"));
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(1));
	var_Layer1->Position = 3;
	var_Layer1->Left = L"(width-512)/2";
	var_Layer1->Top = L"(height-512)/2";
	var_Layer1->Height = L"512";
	var_Layer1->Width = L"512";
	var_Layer1->set_Key(TVariant("sec"));
	var_Layer1->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer1->Selectable = false;
	var_Layer1->RotateCenterLayer = 1;
	var_Layer1->Background->Picture->set_Name(TVariant("second-hand.png"));
	var_Layer1->ValueToRotateAngle = TVariant(String("((2:=(((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - ") +
"floor(=:1)) * 60 )) - floor(=:2) ) * 360");
	var_Layer1->RotateAngleToValue = L"value / 360 / 24 / 60";
Exgaugelib_tlb::ILayerPtr var_Layer2 = Gauge1->Layers->get_Item(TVariant(2));
	var_Layer2->Left = L"(width-512)/2";
	var_Layer2->Top = L"(height-512)/2";
	var_Layer2->Height = L"512";
	var_Layer2->Width = L"512";
	var_Layer2->Position = 2;
	var_Layer2->RotateCenterLayer = 2;
	var_Layer2->set_Key(TVariant("min"));
	var_Layer2->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer2->Selectable = false;
	var_Layer2->Background->Picture->set_Name(TVariant("Minute.png"));
	var_Layer2->ValueToRotateAngle = TVariant(String("((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - floor(") +
"=:1)) * 360");
	var_Layer2->RotateAngleToValue = L"value / 360 / 24 / 60";
Exgaugelib_tlb::ILayerPtr var_Layer3 = Gauge1->Layers->get_Item(TVariant(3));
	var_Layer3->Left = L"(width-512)/2";
	var_Layer3->Top = L"(height-512)/2";
	var_Layer3->Height = L"512";
	var_Layer3->Width = L"512";
	var_Layer3->Position = 1;
	var_Layer3->set_Key(TVariant("hour"));
	var_Layer3->RotateCenterLayer = 3;
	var_Layer3->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer3->Background->Picture->set_Name(TVariant("Hour.png"));
	var_Layer3->ValueToRotateAngle = L"2 * 360 * ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) )";
	var_Layer3->RotateAngleToValue = L"value / 360 * 0.5";
Exgaugelib_tlb::ILayerPtr var_Layer4 = Gauge1->Layers->get_Item(TVariant(4));
	var_Layer4->Left = L"(width-512)/2";
	var_Layer4->Top = L"(height-512)/2";
	var_Layer4->Height = L"512";
	var_Layer4->Width = L"512";
	var_Layer4->Position = 1;
	var_Layer4->set_Key(TVariant("front"));
	var_Layer4->RotateCenterLayer = 4;
	var_Layer4->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer4->Background->Picture->set_Name(TVariant("front.png"));
	var_Layer4->ValueToRotateAngle = L"2 * 360 * ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) )";
	var_Layer4->RotateAngleToValue = L"value / 360 * 0.5";
Exgaugelib_tlb::ILayerPtr var_Layer5 = Gauge1->Layers->get_Item(TVariant(5));
	var_Layer5->Left = L"(width-512)/2";
	var_Layer5->Top = L"(height-512)/2";
	var_Layer5->Height = L"512";
	var_Layer5->Width = L"512";
	var_Layer5->set_Key(TVariant("bolt"));
	var_Layer5->RotateCenterLayer = 5;
	var_Layer5->Background->Picture->set_Name(TVariant("Bolt.png"));
Gauge1->LayerOfValue = Gauge1->Layers->get_Item(TVariant("hour"))->Index;
Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"date(`now`)",TNoParam(),TNoParam(),TNoParam())));
Gauge1->TimerInterval = 1000;

24
How can I display a clock (rotate)

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Layers->get_Item(TVariant("sec"))->set_Value(TVariant(Gauge1->get_Value()));
	Gauge1->Layers->get_Item(TVariant("min"))->set_Value(TVariant(Gauge1->get_Value()));
	Gauge1->Layers->get_Item(TVariant("hour"))->set_Value(TVariant(Gauge1->get_Value()));
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"A - 1/24/60/60*B",TVariant(Gauge1->get_Value()),TVariant(Delta),TNoParam())));
}

// Timer event - Occurs when the interval elapses.
void __fastcall TForm1::Gauge1Timer(TObject *Sender,long   TickCount)
{
	Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"value + 1/24/60/60",TVariant(Gauge1->get_Value()),TNoParam(),TNoParam())));
}

Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Clock";
Gauge1->DefaultLayer[Exgaugelib_tlb::DefaultLayerPropertyEnum::exDefLayerRotateType] = TVariant(2);
Gauge1->Layers->Count = 4;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Background->Picture->set_Name(TVariant("vista_clock.png"));
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(1));
	var_Layer1->Position = 3;
	var_Layer1->set_Key(TVariant("sec"));
	var_Layer1->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer1->Selectable = false;
	var_Layer1->Background->Picture->set_Name(TVariant("second-hand.png"));
	var_Layer1->ValueToRotateAngle = TVariant(String("((2:=(((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - ") +
"floor(=:1)) * 60 )) - floor(=:2) ) * 360");
	var_Layer1->RotateAngleToValue = L"value / 360 / 24 / 60";
Exgaugelib_tlb::ILayerPtr var_Layer2 = Gauge1->Layers->get_Item(TVariant(2));
	var_Layer2->Position = 2;
	var_Layer2->set_Key(TVariant("min"));
	var_Layer2->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer2->Selectable = false;
	var_Layer2->Background->Picture->set_Name(TVariant("Minute.png"));
	var_Layer2->ValueToRotateAngle = TVariant(String("((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - floor(") +
"=:1)) * 360");
	var_Layer2->RotateAngleToValue = L"value / 360 / 24 / 60";
Exgaugelib_tlb::ILayerPtr var_Layer3 = Gauge1->Layers->get_Item(TVariant(3));
	var_Layer3->Position = 1;
	var_Layer3->set_Key(TVariant("hour"));
	var_Layer3->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer3->Background->Picture->set_Name(TVariant("Hour.png"));
	var_Layer3->ValueToRotateAngle = L"2 * 360 * ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) )";
	var_Layer3->RotateAngleToValue = L"value / 360 * 0.5";
Gauge1->LayerOfValue = 3;
Gauge1->set_Value(TVariant(Gauge1->FormatABC(L"date(`now`)",TNoParam(),TNoParam(),TNoParam())));
Gauge1->TimerInterval = 1000;

23
How can I clip as a triangle

// Drag event - Notifies that the user drags the layer.
void __fastcall TForm1::Gauge1Drag(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaY )
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug= 287
	Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
		var_Layer->set_UserData(TVariant(var_Layer->Clip->get_Value()));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->Layers->get_Item(TVariant(0))->Clip->set_Value(TVariant(Gauge1->FormatABC(L"(value + B) MIN 0 MAX 100",TVariant(Gauge1->Layers->get_Item(TVariant(0))->Clip->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->Layers->Count = 1;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Background->Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
	Exgaugelib_tlb::IClipPtr var_Clip = var_Layer->Clip;
		Exgaugelib_tlb::IClipPolygonPtr var_ClipPolygon = var_Clip->Polygon;
			var_ClipPolygon->Points = 3;
			var_ClipPolygon->set_X(0,L"0");
			var_ClipPolygon->set_Y(0,L"height");
			var_ClipPolygon->set_X(1,L"width/2");
			var_ClipPolygon->set_Y(1,L"value/100*width");
			var_ClipPolygon->set_X(2,L"width");
			var_ClipPolygon->set_Y(2,L"height");
			var_ClipPolygon->InverseClip = true;
		var_Clip->set_Value(TVariant(50));

22
How can I limit the rotation from 0 to 360 degree, while dragging
// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug = 483
	// DragInfo.RotateAngleValid = "value < 0 ? 0 : (value > 360 ? 359.999999 : value)"
}

Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("back"));
	var_Layer->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
	var_Layer->Left = L"(width-512)/2";
	var_Layer->Top = L"(height-512)/2";
	var_Layer->Height = L"512";
	var_Layer->Width = L"512";
	Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer->Background->Picture;
		var_Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
		var_Picture->Left = L"(width-pwidth)/2";
		var_Picture->Top = L"(height-pheight)/2";
		var_Picture->Width = L"pwidth";
		var_Picture->Height = L"pheight";
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer->RotateAngle = -45;

21
How can I clip as a pie

// Drag event - Notifies that the user drags the layer.
void __fastcall TForm1::Gauge1Drag(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("value + B/360 * 100", Me.Layers(0).UserData, DragInfo.DeltaAngle )
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug = -1
	Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
		var_Layer->set_UserData(TVariant(var_Layer->Clip->get_Value()));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->Layers->get_Item(TVariant(0))->Clip->set_Value(TVariant(Gauge1->FormatABC(L"(value + B) MIN 0 MAX 100",TVariant(Gauge1->Layers->get_Item(TVariant(0))->Clip->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->Layers->Count = 1;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Left = L"(width-128)/2";
	var_Layer->Top = L"(height-128)/2";
	var_Layer->Height = L"128";
	var_Layer->Width = L"128";
	var_Layer->Background->Color->Value = RGB(0,255,0);
	Exgaugelib_tlb::IClipPtr var_Clip = var_Layer->Clip;
		Exgaugelib_tlb::IClipPiePtr var_ClipPie = var_Clip->Pie;
			var_ClipPie->InverseClip = true;
			var_ClipPie->StartAngle = L"0";
			var_ClipPie->SweepAngle = L"value/100*360";
		var_Clip->set_Value(TVariant(15));

20
How can I use a picture to clip the layer

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Layers->get_Item(TVariant("Clip"))->Clip->set_Value(TVariant(Gauge1->Layers->get_Item(TVariant("Thumb"))->RotateAngle));
}

Gauge1->BeginUpdate();
Gauge1->PicturesPath = L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 1";
Gauge1->PicturesName = L"`Layer` + int(value  + 1) + `.png`";
Gauge1->Layers->Count = 5;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(4));
	var_Layer->set_Key(TVariant("Thumb"));
	var_Layer->DefaultRotateAngle = -141;
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
Exgaugelib_tlb::ILayerPtr var_Layer1 = Gauge1->Layers->get_Item(TVariant(1));
	var_Layer1->set_Key(TVariant("Clip"));
	Exgaugelib_tlb::IClipPtr var_Clip = var_Layer1->Clip;
		var_Clip->Pie->SweepAngle = L"value";
		Exgaugelib_tlb::IClipPicturePtr var_ClipPicture = var_Clip->Picture;
			var_ClipPicture->set_Name(TVariant(Gauge1->Layers->get_Item(TVariant("Clip"))->Background->Picture->get_Name()));
			var_ClipPicture->AlphaTo = L"128";
Gauge1->Layers->get_Item(TVariant("Thumb"))->RotateAngle = 90;
Gauge1->EndUpdate();

19
How do I clip a circle/ellipse

// Drag event - Notifies that the user drags the layer.
void __fastcall TForm1::Gauge1Drag(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaX )
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug= 287
	Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
		var_Layer->set_UserData(TVariant(var_Layer->Clip->get_Value()));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->Layers->get_Item(TVariant(0))->Clip->set_Value(TVariant(Gauge1->FormatABC(L"(value + B) MIN 0 MAX 100",TVariant(Gauge1->Layers->get_Item(TVariant(0))->Clip->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->Layers->Count = 1;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Left = L"(width-128)/2";
	var_Layer->Top = L"(height-128)/2";
	var_Layer->Height = L"128";
	var_Layer->Width = L"128";
	var_Layer->Background->Color->Value = RGB(0,255,0);
	Exgaugelib_tlb::IClipPtr var_Clip = var_Layer->Clip;
		var_Clip->Ellipse->RadiusX = L"value/100 * width";
		var_Clip->set_Value(TVariant(25));

18
What InverseClip does

// Drag event - Notifies that the user drags the layer.
void __fastcall TForm1::Gauge1Drag(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaX )
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug= 287
	Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
		var_Layer->set_UserData(TVariant(var_Layer->Clip->get_Value()));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->Layers->get_Item(TVariant(0))->Clip->set_Value(TVariant(Gauge1->FormatABC(L"(value + B) MIN 0 MAX 100",TVariant(Gauge1->Layers->get_Item(TVariant(0))->Clip->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->Layers->Count = 1;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Left = L"(width-128)/2";
	var_Layer->Top = L"(height-128)/2";
	var_Layer->Height = L"128";
	var_Layer->Width = L"128";
	var_Layer->Background->Color->Value = RGB(0,255,0);
	Exgaugelib_tlb::IClipPtr var_Clip = var_Layer->Clip;
		Exgaugelib_tlb::IClipRoundRectanglePtr var_ClipRoundRectangle = var_Clip->RoundRectangle;
			var_ClipRoundRectangle->Width = L"value/100 * width";
			var_ClipRoundRectangle->RoundRadiusX = L"width/8";
			var_ClipRoundRectangle->RoundRadiusY = L"height/8";
			var_ClipRoundRectangle->InverseClip = true;
		var_Clip->set_Value(TVariant(50));

17
How do I clip as rectangle (round), from left to right

// Drag event - Notifies that the user drags the layer.
void __fastcall TForm1::Gauge1Drag(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaX )
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug= 287
	Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
		var_Layer->set_UserData(TVariant(var_Layer->Clip->get_Value()));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->Layers->get_Item(TVariant(0))->Clip->set_Value(TVariant(Gauge1->FormatABC(L"(value + B) MIN 0 MAX 100",TVariant(Gauge1->Layers->get_Item(TVariant(0))->Clip->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->Layers->Count = 1;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Left = L"(width-128)/2";
	var_Layer->Top = L"(height-128)/2";
	var_Layer->Height = L"128";
	var_Layer->Width = L"128";
	var_Layer->Background->Color->Value = RGB(0,255,0);
	Exgaugelib_tlb::IClipPtr var_Clip = var_Layer->Clip;
		Exgaugelib_tlb::IClipRoundRectanglePtr var_ClipRoundRectangle = var_Clip->RoundRectangle;
			var_ClipRoundRectangle->Width = L"value/100 * width";
			var_ClipRoundRectangle->RoundRadiusX = L"width/8";
			var_ClipRoundRectangle->RoundRadiusY = L"height/8";
		var_Clip->set_Value(TVariant(50));

16
How do I clip as rectangle, from bottom to top

// Drag event - Notifies that the user drags the layer.
void __fastcall TForm1::Gauge1Drag(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaY )
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug= 287
	Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
		var_Layer->set_UserData(TVariant(var_Layer->Clip->get_Value()));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->Layers->get_Item(TVariant(0))->Clip->set_Value(TVariant(Gauge1->FormatABC(L"(value + B) MIN 0 MAX 100",TVariant(Gauge1->Layers->get_Item(TVariant(0))->Clip->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->Layers->Count = 1;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Background->Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
	Exgaugelib_tlb::IClipPtr var_Clip = var_Layer->Clip;
		Exgaugelib_tlb::IClipRectanglePtr var_ClipRectangle = var_Clip->Rectangle;
			var_ClipRectangle->Height = L"value/100 * height";
			var_ClipRectangle->InverseClip = true;
		var_Clip->set_Value(TVariant(50));

15
How do I clip as rectangle, from top to bottom

// Drag event - Notifies that the user drags the layer.
void __fastcall TForm1::Gauge1Drag(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaY )
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug= 287
	Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
		var_Layer->set_UserData(TVariant(var_Layer->Clip->get_Value()));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->Layers->get_Item(TVariant(0))->Clip->set_Value(TVariant(Gauge1->FormatABC(L"(value + B) MIN 0 MAX 100",TVariant(Gauge1->Layers->get_Item(TVariant(0))->Clip->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->Layers->Count = 1;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Background->Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
	Exgaugelib_tlb::IClipPtr var_Clip = var_Layer->Clip;
		var_Clip->Rectangle->Height = L"value/100 * height";
		var_Clip->set_Value(TVariant(50));

14
How do I clip as rectangle, from right to left

// Drag event - Notifies that the user drags the layer.
void __fastcall TForm1::Gauge1Drag(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaX )
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug= 287
	Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
		var_Layer->set_UserData(TVariant(var_Layer->Clip->get_Value()));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->Layers->get_Item(TVariant(0))->Clip->set_Value(TVariant(Gauge1->FormatABC(L"(value + B) MIN 0 MAX 100",TVariant(Gauge1->Layers->get_Item(TVariant(0))->Clip->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->Layers->Count = 1;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Background->Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
	Exgaugelib_tlb::IClipPtr var_Clip = var_Layer->Clip;
		Exgaugelib_tlb::IClipRectanglePtr var_ClipRectangle = var_Clip->Rectangle;
			var_ClipRectangle->Width = L"value/100 * width";
			var_ClipRectangle->InverseClip = true;
		var_Clip->set_Value(TVariant(50));

13
How do I clip as rectangle, from left to right

// Drag event - Notifies that the user drags the layer.
void __fastcall TForm1::Gauge1Drag(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaX )
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug= 287
	Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
		var_Layer->set_UserData(TVariant(var_Layer->Clip->get_Value()));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void __fastcall TForm1::Gauge1MouseWheel(TObject *Sender,long   Delta)
{
	Gauge1->Layers->get_Item(TVariant(0))->Clip->set_Value(TVariant(Gauge1->FormatABC(L"(value + B) MIN 0 MAX 100",TVariant(Gauge1->Layers->get_Item(TVariant(0))->Clip->get_Value()),TVariant(Delta),TNoParam())));
}

Gauge1->Layers->Count = 1;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Background->Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
	Exgaugelib_tlb::IClipPtr var_Clip = var_Layer->Clip;
		var_Clip->Rectangle->Width = L"value/100 * width";
		var_Clip->set_Value(TVariant(50));

12
How can I associate a value to rotation angle

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Caption[Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"`Value: <b>` + (value format ``) ",TVariant(Gauge1->Layers->get_Item(TVariant(0))->get_Value()),TNoParam(),TNoParam()));
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug = 483
}

Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("back"));
	var_Layer->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
	var_Layer->Left = L"(width-512)/2";
	var_Layer->Top = L"(height-512)/2";
	var_Layer->Height = L"512";
	var_Layer->Width = L"512";
	Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer->Background->Picture;
		var_Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
		var_Picture->Left = L"(width-pwidth)/2";
		var_Picture->Top = L"(height-pheight)/2";
		var_Picture->Width = L"pwidth";
		var_Picture->Height = L"pheight";
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer->DefaultRotateAngle = 45;
	var_Layer->RotateCenterY = L"lheight/2 + 32";
	var_Layer->RotateCenterX = L"lwidth/2 + 32";
	var_Layer->RotateAngleToValue = L"value/360 * 100";
	var_Layer->ValueToRotateAngle = L"value / 100 * 360";
	var_Layer->set_Value(TVariant(50));

11
How can I associate a value to vertical offset

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Caption[Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"`Value: <b>` + (value format ``)",TVariant(Gauge1->Layers->get_Item(TVariant(0))->get_Value()),TNoParam(),TNoParam()));
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug = 287
}

Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("back"));
	var_Layer->Background->Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoMove;
	var_Layer->DefaultOffsetY = -100;
	var_Layer->OffsetYValid = L"value MIN 0 MAX 200";
	var_Layer->OffsetXValid = L"0";
	var_Layer->OffsetToValue = L"offsety /200 * 100";
	var_Layer->ValueToOffsetY = L"value / 100 * 200";
	var_Layer->set_Value(TVariant(50));

10
How can I associate a value to horizontal offset

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Caption[Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"`Value: <b>` + (value format ``)",TVariant(Gauge1->Layers->get_Item(TVariant(0))->get_Value()),TNoParam(),TNoParam()));
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug = 287
}

Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("back"));
	var_Layer->Background->Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoMove;
	var_Layer->DefaultOffsetX = -100;
	var_Layer->OffsetXValid = L"value MIN 0 MAX 200";
	var_Layer->OffsetYValid = L"0";
	var_Layer->OffsetToValue = L"offsetx /200 * 100";
	var_Layer->ValueToOffsetX = L"value / 100 * 200";
	var_Layer->set_Value(TVariant(50));

9
How can I display the current angle

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Caption[Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"`Angle: <b>` + (value format ``) + `°`",TVariant(Gauge1->Layers->get_Item(TVariant(0))->RotateAngle),TNoParam(),TNoParam()));
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug = 483
}

Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("back"));
	var_Layer->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
	var_Layer->Left = L"(width-512)/2";
	var_Layer->Top = L"(height-512)/2";
	var_Layer->Height = L"512";
	var_Layer->Width = L"512";
	Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer->Background->Picture;
		var_Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
		var_Picture->Left = L"(width-pwidth)/2";
		var_Picture->Top = L"(height-pheight)/2";
		var_Picture->Width = L"pwidth";
		var_Picture->Height = L"pheight";
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer->RotateAngleValid = L"(value > 180 ? value - 360 : value)  MIN 15 MAX 65";

8
How can I limit the rotation angle

// Change event - Occurs when the layer's value is changed.
void __fastcall TForm1::Gauge1Change(TObject *Sender,long   Layer)
{
	Gauge1->Caption[Exgaugelib_tlb::PropertyLayerCaptionEnum::exLayerCaption] = TVariant(Gauge1->FormatABC(L"`Angle: <b>` + (value format ``) + `°`",TVariant(Gauge1->Layers->get_Item(TVariant(0))->RotateAngle),TNoParam(),TNoParam()));
}

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug = 483
}

Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("back"));
	var_Layer->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
	var_Layer->Left = L"(width-512)/2";
	var_Layer->Top = L"(height-512)/2";
	var_Layer->Height = L"512";
	var_Layer->Width = L"512";
	Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer->Background->Picture;
		var_Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
		var_Picture->Left = L"(width-pwidth)/2";
		var_Picture->Top = L"(height-pheight)/2";
		var_Picture->Width = L"pwidth";
		var_Picture->Height = L"pheight";
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer->RotateAngleValid = L"(value > 180 ? value - 360 : value)  MIN 15 MAX 65";

7
Can I specify a different center while rotating

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug = 483
}

Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("back"));
	var_Layer->RotateType = Exgaugelib_tlb::RotateTypeEnum::exRotateBilinearInterpolation;
	var_Layer->Left = L"(width-512)/2";
	var_Layer->Top = L"(height-512)/2";
	var_Layer->Height = L"512";
	var_Layer->Width = L"512";
	Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer->Background->Picture;
		var_Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
		var_Picture->Left = L"(width-pwidth)/2";
		var_Picture->Top = L"(height-pheight)/2";
		var_Picture->Width = L"pwidth";
		var_Picture->Height = L"pheight";
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer->RotateAngle = -45;
	var_Layer->RotateCenterY = L"lheight/2 + 32";
	var_Layer->RotateCenterX = L"lwidth/2 + 32";

6
How can I rotate a layer, without cutting off the picture

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug = 483
}

Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("back"));
	var_Layer->Left = L"(width-512)/2";
	var_Layer->Top = L"(height-512)/2";
	var_Layer->Height = L"512";
	var_Layer->Width = L"512";
	Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer->Background->Picture;
		var_Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
		var_Picture->Left = L"(width-pwidth)/2";
		var_Picture->Top = L"(height-pheight)/2";
		var_Picture->Width = L"pwidth";
		var_Picture->Height = L"pheight";
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer->RotateAngle = -45;

5
How can I rotate a layer

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug = 483
}

Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("back"));
	Exgaugelib_tlb::ILPicturePtr var_Picture = var_Layer->Background->Picture;
		var_Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
		var_Picture->Width = L"pwidth";
		var_Picture->Height = L"pheight";
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoRotate;
	var_Layer->RotateAngle = 45;

4
Is there any way to debug the layer while moving

// DragStart event - Occurs once the user starts dragging a layer.
void __fastcall TForm1::Gauge1DragStart(TObject *Sender,Exgaugelib_tlb::IDragInfo   *DragInfo,VARIANT_BOOL *   Cancel)
{
	// DragInfo.Debug = 287
}

Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("back"));
	var_Layer->Background->Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoMove;

3
How do I specify where to move the layer, while dragging
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("back"));
	var_Layer->Background->Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoMove;
	var_Layer->OffsetXValid = L"int(value / 64) * 64";
	var_Layer->OffsetYValid = L"int(value / 64) * 64";

2
How can I add layers to the control
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->Add(TVariant("back"));
	var_Layer->Background->Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoMove;

1
How can I add layers to the control
Gauge1->Layers->Count = 1;
Exgaugelib_tlb::ILayerPtr var_Layer = Gauge1->Layers->get_Item(TVariant(0));
	var_Layer->Background->Picture->set_Value(TVariant("c:\\exontrol\\images\\card.png"));
	var_Layer->OnDrag = Exgaugelib_tlb::OnDragLayerEnum::exDoMove;