This is the best way I could find to not select a polyline when it is created. This allows the user to select a polyline after it is created, and not select it when it is first created.
The WmAfterSelectObject procedure is required so that the added object is selected as it is not yet selected in the OnNewObject event.
const
WM_AFTER_SELECTOBJECT = WM_USER + 400;
private
procedure WmAfterSelectObject(var Msg: TMessage); message WM_AFTER_SELECTOBJECT;
procedure TForm1.ImageEnVect1NewObject(Sender: TObject; hobj: Integer);
begin
{ Post the custom message WM_AFTER_SELECTOBJECT to our form }
PostMessage(Self.Handle, WM_AFTER_SELECTOBJECT, 0, 0);
end;
procedure TForm1.WmAfterSelectObject(var Msg: TMessage);
var
i: Integer;
iHObj: Integer;
begin
iHObj := -1;
with ImageEnVect1 do
begin
for i := -1 to SelObjectsCount - 1 do
begin
if i >= 0 then
iHObj := SelObjects[i];
if iHObj <> -1 then
if ObjKind[iHObj] = iekPOLYLINE then
UnSelObject(iHObj);
end;
end;
end;
Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development