You can try something like this:
foptions -> Position -> poDefault
procedure pAjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings);
procedure TMainForm.pAjaxEvent(Sender: TComponent; EventName: string;
Params: TUniStrings);
var
p: TUniPanel;
x, y: Integer;
begin
if EventName = '_mousedown' then
begin
x := Params.Values['x'].ToInteger();
y := Params.Values['y'].ToInteger();
p := findcomponent((Sender as TComponent).Name) as TUniPanel;
foptions.unilabel2.Caption := p.Caption;
foptions.Top := y;
foptions.Left := x;
foptions.ShowModal();
end;
end;
procedure TMainForm.UniPanel1Click(Sender: TObject);
var
i: integer;
begin
for i := 1 to 25 do
begin
pStatus := TUniPanel.Create(MainForm);
with pStatus do
begin
Name := 'Option_' + inttostr(i);
caption := name;
Parent := sb;
Top := i * 41;
Height := 40;
align := altop;
color := RGB(Random(255), Random(255), Random(255));
//onclick := pstatusClick;
OnAjaxEvent := pAjaxEvent;
ClientEvents.ExtEvents.Values['mousedown'] := 'function mousedown(sender, x, y, eOpts){ajaxRequest(sender, "_mousedown", ["x="+parseInt(x+sender.getX()), "y="+parseInt(y+sender.getY())])}';
end;
end;
end;