Hi.
I wonder if there is a way to customize the text shown in the "Mark Tips", without customizing the text shown in the actual marks of the series.
Note: I want to customize the mark tips shown when the mouse stays over one of my pie chart slice, without customizing the always shown marks of each slice.
I know that I can use the OnGetMarkText Event to customize mark texts, but this will customize both, the always shown marks and the mark tips of my pie chart.
Any idea how to resolve this?
Thanks!
OnGetMarkText - customize text of Mark Tips only, not Marks
Re: OnGetMarkText - customize text of Mark Tips only, not Marks
Hi marder,
Note that there is a OnGetMarkText event for the mark tips tool too:
Note that there is a OnGetMarkText event for the mark tips tool too:
Code: Select all
procedure TForm1.FormCreate(Sender: TObject);
begin
Series1.Clear;
Series1.Add(random*100, 'first');
Series1.Add(random*100, 'second');
Series1.Add(random*100, 'third');
Series1.Add(random*100, 'fourth');
Series1.Add(random*100, 'fifth');
Series1.Add(random*100, 'sixth');
Series1.Marks.Style := smsLabel;
ChartTool1.Style := smsValue;
end;
procedure TForm1.ChartTool1GetText(Sender: TMarksTipTool;
var Text: String);
var i:Integer;
begin
for i:=0 to Series1.Count-1 do
begin
if ChartTool1.Style = smsValue then
begin
if (FormatFloat('#.###', Series1.YValue[i]) = Text) then
begin
Text := 'label number ' + inttostr(i+1);
Exit;
end;
end
else
if ChartTool1.Style = smsLabel then
begin
if (Series1.Labels[i] = Text) then
begin
Text := 'label number ' + inttostr(i+1);
Exit;
end;
end
end;
end;
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |
Re: OnGetMarkText - customize text of Mark Tips only, not Marks
Hi Yeray.
Thanks for this information!
My problem is, that I have to customize both mark texts in different ways.
When I use the OnGetMarkText event to customize the "always shown marks" only, it seams that the default text of the "mark tips" is also customized.
This is a problem in my case, because I in some cases I want to cut the labels form the "always shown marks" and do show them only in the "mark tips". The problem is, that in the OnGetText Event of the Mark Tip I have no access to the current index so I cannot bring my label up again.
I hope you understand what I mean (It's some kind of tricky)
The perfect solution for me would be if:
1. The OnGetMarkText would not influence the text of the "mark tips", but only of the "always shown marks"
or
2. There was some kind of flag in the OnGetMarkText Event, so I could identify if this is the text for a mark tip or not.
Thanks for your help!
Thanks for this information!
My problem is, that I have to customize both mark texts in different ways.
When I use the OnGetMarkText event to customize the "always shown marks" only, it seams that the default text of the "mark tips" is also customized.
This is a problem in my case, because I in some cases I want to cut the labels form the "always shown marks" and do show them only in the "mark tips". The problem is, that in the OnGetText Event of the Mark Tip I have no access to the current index so I cannot bring my label up again.
I hope you understand what I mean (It's some kind of tricky)
The perfect solution for me would be if:
1. The OnGetMarkText would not influence the text of the "mark tips", but only of the "always shown marks"
or
2. There was some kind of flag in the OnGetMarkText Event, so I could identify if this is the text for a mark tip or not.
Thanks for your help!
Re: OnGetMarkText - customize text of Mark Tips only, not Marks
Hi marder,
I'll add your suggestions to the wish list to be considered for inclusion in future releases.
In the meanwhile you still could loop your series marks at the mark tips tool OnGetMarkText event and use the given text to retrieve the value index for that mark. Here is an example:
I'll add your suggestions to the wish list to be considered for inclusion in future releases.
In the meanwhile you still could loop your series marks at the mark tips tool OnGetMarkText event and use the given text to retrieve the value index for that mark. Here is an example:
Code: Select all
function TForm1.GetMark(ValueIndex:Integer):String;
begin
result := 'label number ' + inttostr(ValueIndex+1)
end;
procedure TForm1.Series1GetMarkText(Sender: TChartSeries;
ValueIndex: Integer; var MarkText: String);
begin
MarkText := GetMark(ValueIndex);
end;
procedure TForm1.ChartTool1GetText(Sender: TMarksTipTool;
var Text: String);
var i:Integer;
begin
for i:=0 to Series1.Count-1 do
begin
if ( Text = GetMark(i) ) then
begin
Text := 'label #' + inttostr(i+1);
Exit;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
Series1.Clear;
for i:=0 to 6 do
Series1.Add(random*100, 'number ' + inttostr(i));
end;
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |
Re: OnGetMarkText - customize text of Mark Tips only, not Marks
Thanks for your help and for adding this to the wish list!