![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TChart [D5, D6]
Kirill © (2002-05-18 14:06:00)Народ, нужна помощь для работы с сабжем. А конкретнее, как динамически создавать Series и добавлять их в Chart. И как работать с Axis, точнее как в run-time установить максимальное значение для x и y.
Kirill (2002-05-29 16:54:00) [1]2MBo:
Все, БОЛЬШОЕ СПАСИБО. Вопрос закрыт.
MBo (2002-05-29 12:40:00) [2]\Delphi5\Demos\Teechart
Kirill (2002-05-29 11:36:00) [3]Спасибо. В хелпе не нашел как им пользоваться. :(
MBo (2002-05-29 07:09:00) [4]Обрати внимание на gantt series
Kirill (2002-05-28 19:06:00) [5]Но проблема в том, что через значения должны проходить пунктиры (вертикальные и горизонтальные), но из-за (не знаю чего) отображается только для последней записи, а для остальных только график, т.е. линии отпуска (ни подписей, ни значений нет).
Kirill (2002-05-28 19:03:00) [6]
procedure TfrmGr.FormActivate(Sender: TObject);
var i,j : word;
ser : TLineSeries;
dat : TDate;
x : longint;
begin
WindowState:=wsMaximized;
j:=0;
with Chart1 do begin
for i:=0 to DatM.TGO.RecordCount-1 do begin
ser:=TLineSeries.Create(Chart1);
ser.ParentChart:=Chart1;
DatM.TGO.RecNo:=i;
if (DatM.TGO.FieldByName("DataNach").value=NULL)or(DatM.TGO.FieldByName("DaysOtp").Value=NULL) then continue;
inc(j);
dat:=DatM.TGO.FieldByName("DataNach").AsDateTime;
ser.AddNull(Trim(DatM.TS.FieldByName("FIO").AsString));
ser.AddXY(DayOfTheYear(dat),i+2,Copy(DateToStr(dat),1,5),clRed);
ser.AddXY(DayOfTheYear(dat)+DatM.TGO.FieldByName("DaysOtp").AsInteger,i+2,""{IntToStr(DayOfTheYear(dat)+DatM.TGO.FieldByName("DaysOtp").AsInteger)},clRed);
end;
LeftAxis.Automatic:=false;
LeftAxis.Maximum:=j+2;
BottomAxis.LabelsFont.Name:="Small Fonts";
BottomAxis.LabelsFont.Size:=6;
Canvas.Pen.Style:=psDash;
Canvas.Pen.Width:=1;
Canvas.Pen.Color:=clLtGray;
Canvas.Brush.Style:=bsClear;
end;
end;
Kirill (2002-05-28 19:02:00) [7]Так, начнем сначала и подробно.
Есть таблица с сотрудниками. В таблице есть с какого дня в отпуске и сколько. Т.к. количество сотрудников меняется, то задать количество Series не могу. На TChart надо полосами указать время в отпуске. Что-то вроде этого:
Петров | ------ |
Иванов | ----- |
Сидоров | ----- |
--------------------------------------------------------
Привожу код:
MBo (2002-05-28 17:39:00) [8]я твоей проблемы не пойму
Kirill (2002-05-28 17:29:00) [9]2 MBo:
Он не хочет обновлять линии.
Kirill (2002-05-24 10:54:00) [10]Никаких идей больше нет?
Kirill (2002-05-23 18:56:00) [11]Пробовал. Он не обновляет, почему-то? Плюс он еще подписи не выводит, их тоже самому писать на канвас? А проще нет решения, типа REFRESH?
MBo (2002-05-23 17:45:00) [12]на Canvas
Kirill (2002-05-23 17:35:00) [13]Как?
MBo (2002-05-23 17:32:00) [14]рисуй в afterpaint
Kirill (2002-05-23 17:11:00) [15]И как вообще построить свои пунктирные линии?
Kirill (2002-05-23 16:59:00) [16]
> подписи выводятся для оси в целом
Да, но только для одного последнего графика.
MBo (2002-05-23 16:48:00) [17]подписи выводятся для оси в целом.
Kirill (2002-05-23 16:44:00) [18]Не выводятся подписи для первых графиков и пунктирная вертикальная линия значений. Только для последнего.
MBo (2002-05-23 16:42:00) [19]>но вертикальная решетка высвечивается только для последнего графика
что-то я не пойму...
Kirill (2002-05-23 16:36:00) [20]>его уничтожит автоматически Owner, т.е. chart1 при своем destroy
Это хорошо