Index: JvColorForm.pas
===================================================================
--- JvColorForm.pas	(revision 13302)
+++ JvColorForm.pas	(working copy)
@@ -186,9 +186,6 @@
 end;
 
 
-
-
-
 procedure TJvColorForm.DoColorClick(Sender: TObject);
 begin
   if Sender is TJvColorSquare then
@@ -224,6 +221,7 @@
 procedure TJvColorForm.FormActivate(Sender: TObject);
 var
   R: TRect;
+  Boundary : TRect;
   Pt: TPoint;
 begin
   { set placement }
@@ -231,10 +229,18 @@
   begin
     R := FOwner.ClientRect;
     Pt.X := R.Left;
-    Pt.Y := R.Top + R.Bottom;
+    Pt.Y := R.Bottom;
     Pt := FOwner.ClientToScreen(Pt);
+    Boundary := Screen.MonitorFromPoint(Pt).WorkareaRect;
+
     Left := Pt.X;
+    if (Left + Width) > Boundary.Right then
+      Left := Boundary.Right - Width;
+
     Top := Pt.Y;
+    if (Top + Height) > Boundary.Bottom then
+      Top := Pt.Y - Height - (R.Bottom - R.Top);
+
     if FOwner is TJvColorButton then
       SelectedColor := TJvColorButton(FOwner).Color;
   end;
