Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TChart - Gantt bei Onclick Y-Wert ermitteln (https://www.delphipraxis.net/92578-tchart-gantt-bei-onclick-y-wert-ermitteln.html)

WIng2005 22. Mai 2007 15:26


TChart - Gantt bei Onclick Y-Wert ermitteln
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich verzweifle gerade an meinem Gantt-Diagramm (Delphi 7 Prof.).
Ich möchte erreichen, dass ich die Bezeichnung eines Vorgangs beim
"Anklicken" des Graphen (quasi die Graph-Bezeichnung) abfragen kann.
Das würde bedeuten, das im Beispiel die Bezeichnung "Bankwesen"
in eine Variable geschrieben wird, wenn der zugehörige Graph angeklickt wurde.
Leider fehlt mir hierzu völlig der Ansatz, sodass ich
über jeden Hinweis dankbar bin.


MFG
Steffen

Gremlin 22. Mai 2007 15:51

Re: TChart - Gantt bei Onclick Y-Wert ermitteln
 
Hi WIng2005,

dies sollte über den Event GantSeries.OnMouseDown und den Zugriff über die Properties YValues möglich sein,
die du beispielsweise über die die Methode AddGanttColor setzt, da der YValue meist nicht verwendet wird.

Delphi-Quellcode:
...
  for i := 0 to Werte.Count-1 do
    <GanttSeries>.AddGanttColor(<FromDate>, <ToDate>, [b]<Y-Wert>[/b], 'Mein Gant', clNavy);
...

Delphi-Quellcode:
...GantChartMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  ClickedGant : Longint;
begin
  if Assigned(<GanttSeries>) then begin
    ClickedGant := FGanttSeries.Clicked(x, y);
    if (ClickedGant <> -1) then begin
      <GanttSeries>.[b]YValues[/b][ClickedGant]));
    end;
  end;
end;

WIng2005 23. Mai 2007 07:54

Re: TChart - Gantt bei Onclick Y-Wert ermitteln
 
Danke für die schnelle Antwort....

mit deiner Methode, liest er (denke ich) doch nur den Index aus.
Was ich suche, ist eine Möglichkeit den String, der als Y-Wert zugewiesen ist,
auszulesen und in eine Variable zu lesen...

MFG
Steffen

Gremlin 23. Mai 2007 09:46

Re: TChart - Gantt bei Onclick Y-Wert ermitteln
 
Den Wert des Labels bekommst du ganz einfach über das Labels.Property.

Delphi-Quellcode:
  [...]
  if Assigned(Series1) then begin
    ClickedGant := Series1.Clicked(x, y);
    if (ClickedGant <> -1) then
      ShowMessage('Label: '+Series1.Labels[ClickedGant]);
  end;

WIng2005 23. Mai 2007 09:56

Re: TChart - Gantt bei Onclick Y-Wert ermitteln
 
Ich bin nicht ganz sicher, ob ich grundlegend was falsch mache, aber bei mir
meckert er bei

"ShowMessage('Label: '+Series7.Labels[ClickedGant]);"

mit


[Fehler] Main.pas(373): Inkompatible Typen: 'String' und 'Pointer'



MFG
Steffen

WIng2005 23. Mai 2007 10:15

Re: TChart - Gantt bei Onclick Y-Wert ermitteln
 
Habs gefunden, das XLabel wars....:

Delphi-Quellcode:
procedure TMainForm.Ch_Ent_PV1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

var
  ClickedGant : Longint;

begin
  if Assigned(Series7) then begin
    ClickedGant := Series7.Clicked(x, y);
    if (ClickedGant <> -1) then
      ShowMessage('Label: '+Series7.XLabel[ClickedGant]);
  end;


end;
Vielen Dank für deine Ansätze...
MFG
Steffen


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz