I can get a MergeField's Contents when do a mail merge but I would like to get them in a mouse over.
Is there some way to do that?
I can get a MergeField's Contents when do a mail merge but I would like to get them in a mouse over.
Is there some way to do that?
Sure, you need to read out the object under the mouse cursor.
This code is from one of the demos. It was made to show a panel to pick values for a field from. It uses a time to hide the panel.
The Contents can be read with fieldobj.EmbeddedText.
procedure TWPMiniEd.WPRichText1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var fieldobj, fieldobjend : TWPTextObj; px, py : Integer;
begin
fieldobjend := nil;
fieldobj := (Sender as TWPRichText).CodeInsideOf(x, y, wpobjMergeField);
if (fieldobj <> nil) then
begin
fieldobjend := fieldobj.EndTag;
if fieldobjend<>nil then
begin
(Sender as TWPRichText).GetParXYBaselineScreen(fieldobjend.ParentPar, fieldobjend.ParentPosInPar, px, py ) ;
PickPanel.Left := px - PickPanel.Width div 2;
PickPanel.Top := DataEdit.Top + py - MulDiv(PickPanel.Height,4,5);
CurrField := fieldobj.Name;
end;
end;
if fieldobjend=nil then
HidePickPanelTimer.Enabled := TRUE // we hide it 500ms delayed
else
begin
PickPanel.Visible := true;
HidePickPanelTimer.Enabled := FALSE;
end;
end;
Alles anzeigen