سؤال

أنا أستخدم التحكم TChart الذي يأتي مع دلفي 7 وأرغب في ذلك احصل على السلسلة والقيمة # للخط/الشريط أسفل مؤشر الماوس.

أنا على علم بحدث OnClickSeries الذي يوفر معلومات رائعة ولكن أريد حقًا هذه المعلومات عندما أكون يحوم على مدى سلسلة.

يحرر:لقد وجدت الطريقة الأكثر نجاحًا على TChart والتي تعمل مع أي نوع من أنواع السلاسل والسلاسل المتعددة في مخطط واحد، لذا قمت بنشر هذا وجعلته إجابتي المقبولة.شكر خاص إلى GameCat على جهوده.

هل كانت مفيدة؟

المحلول 2

لقد وجدت أخيرًا هذه الطريقة التي تعمل مع سلاسل متعددة (حتى من أنواع مختلفة) في المخطط.

TChart.CalcClickedPart(Pos: TPoint; Var Part: TChartClickedPart);

تقوم الطريقة بملء سجل TChartClickedPart الذي يحتوي على معلومات اختبار النجاح التفصيلية التالية:

TChartClickedPart = record
  Part : TChartClickedPartStyle;
  PointIndex : Integer;
  ASeries : TChartSeries;
  AAxis : TChartAxis;
end;

يتضمن ذلك السلسلة وValueIndex (PointIndex) وهو بالضبط ما أردت.

نصائح أخرى

يمكنك التحقق من OnChartMouseMove (أو OnSeriesMouseMove)

procedure TForm5.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  i : Integer;
begin
  i := Series1.CalcClickedPie(x,y); // i = index of checked data -1 for none
  Memo1.Lines.Add(IntToStr(i));
end;

حسنًا، يا سيدي، رمز الأشرطة مختلف (حتى أسهل):

procedure TForm5.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  i : Integer;
begin
  i := Series1.GetCursorValueIndex;
  Memo1.Lines.Add(IntToStr(i));
end;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top