Create example for Delphi

var
//Global declarations
RasterAnn: LEADRasterAnnotation;
RasterAnnToolbar: LEADRasterAnnToolBar;

procedure TForm1.Button1Click(Sender: TObject);
begin
   RasterAnn:= CoLEADRasterAnnotation.Create ();
   RasterAnnToolbar:= CoLEADRasterAnnToolBar.Create ();
   RasterAnn.AnnParentRasterView := LEADRasterView1.Raster;
   LEADEventSink1.Connect (RasterAnn, _LEADRasterAnnotationEvents);
   RasterAnn.AnnUserMode:= ANN_USERMODE_DESIGN;
end;

//This example creates an annotation toolbar and adds a button to the toolbar.
//The button displays different images when selected/deselected
//The button has two tools associated with (line and button tool)
procedure TForm1.CreateToolBarClick(Sender: TObject);
var
   RasterIO: LEADRasterIO;

begin
   RasterIO:= CreateComObject (CLASS_LEADRasterIO) as LEADRasterIO;
   RasterAnnToolbar.AnnParentRasterView:= LEADRasterView1.Raster;
   RasterAnnToolbar.Visible:= True;

   RasterAnnToolbar.Create (0, 0, ANN_TOOLALIGN_TOP);
   if (RasterAnnToolbar.ToolBarhWnd <>0) then
   begin
      RasterAnnToolbar.ButtonTool [RasterAnnToolbar.ButtonCount]:= ANN_TOOL_USER_FIRST;
      RasterIO.Load (LEADRasterView2.Raster, 'e:\lead14\dist\images\Ulay1.bmp', 0, 0, 1);
      RasterAnnToolbar.ButtonBitmapUp [RasterAnnToolbar.ButtonCount] := LEADRasterView2.Raster.Bitmap;
      RasterIO.Load (LEADRasterView2.Raster, 'e:\lead14\dist\images\Ulay2.bmp', 0, 0, 1);
      RasterAnnToolbar.ButtonBitmapDown [RasterAnnToolbar.ButtonCount] := LEADRasterView2.Raster.Bitmap;
      RasterAnnToolbar.ButtonToolTipTextID [RasterAnnToolbar.ButtonCount] := -1;
      RasterAnnToolbar.ButtonToolTipText [RasterAnnToolbar.ButtonCount] := 'User defined tool';
      ShowMessage ('AnnToolTipText: ' + RasterAnnToolbar.ButtonToolTipText[RasterAnnToolbar.ButtonCount]);

      RasterAnnToolbar.ButtonToolCount [RasterAnnToolbar.ButtonCount] := 2;

      RasterAnnToolbar.ButtonMenuTool [RasterAnnToolbar.ButtonCount, 0] := ANN_TOOL_LINE;
      RasterAnnToolbar.ButtonMenuTextID [RasterAnnToolbar.ButtonCount, 0] := -1;
      RasterAnnToolbar.ButtonMenuText[RasterAnnToolbar.ButtonCount, 0] := 'User defined tool';

      RasterAnnToolbar.ButtonMenuTool[RasterAnnToolbar.ButtonCount, 1] := ANN_TOOL_BUTTON;
      RasterAnnToolbar.ButtonMenuTextID[RasterAnnToolbar.ButtonCount, 1] := -1;
      RasterAnnToolbar.ButtonMenuText [RasterAnnToolbar.ButtonCount, 1] := 'Button';

      RasterAnnToolbar.ButtonCount := RasterAnnToolbar.ButtonCount + 1;
      RasterAnn.AnnUserMode := ANN_USERMODE_DESIGN;

      RasterAnn.AutoSetTool := True;
   end;
end;