Снова о TAChart

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Снова о TAChart

Сообщение Little_Roo »

Уперся в проблему, явно по скудоумию :(
Нужно вывести диаграмму средних баллов учащихся из базы Firebird 2.5
Выборка проходит, диаграмма строится, но... От DbChartSource пришлось отказаться ввиду ну о-о-о-о-очень тормознутости оного :shock:
Серии строю в лоб

Код: Выделить всё

.........
datasource1.DataSet.First;
for i := 1 to datasource1.DataSet.RecordCount do
  begin
    f := datasource1.DataSet.FieldByName('FAM').AsString;   // фамилия !!!!!

    otm := datasource1.DataSet.FieldByName(rg + s).AsFloat; // средний балл
    Chart5BarSeries1.AddXY(i, otm, FloatToStrF(otm, fffixed, 2, 2), col); // отрисовка
    datasource1.DataSet.Next;
  end;

получаю

Нужно вместо порядковых номеров учащихся (ось Х) вставить их фамилии (переменная f). Как? И желательно фамилии на 90 градусов повернуть
Lazarus 1.1 r39305 FPC 2.6.1 i386-win32-win32/win64
Да, вместо значений диаграмм фамилии прекрасно выводятся, но "хочется странного" (с)Стругацкие :D - чтобы и то, и это :D :D :D
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ask
постоялец
Сообщения: 163
Зарегистрирован: 25.12.2008 02:51:37

Re: Снова о TAChart

Сообщение Ask »

От DbChartSource пришлось отказаться ввиду ну о-о-о-о-очень тормознутости оного

Да, DbChartSource как-то не вышел -- и тормоза, и глюки. Надо будет в доках прописать, чтобы его не использовали.

Нужно вместо порядковых номеров учащихся (ось Х) вставить их фамилии (переменная f).

1) Создать ListChartSource, положить данные туда, включая фамилии
2) Привязать его к Marks.Source для нужной оси
3) Установить Marks.Style или Marks.Format соответственно


фамилии на 90 градусов повернуть

LabelFont.Orientation:=900

См. также документацию и axisdemo
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Re: Снова о TAChart

Сообщение Little_Roo »

Ask писал(а):1) Создать ListChartSource, положить данные туда, включая фамилии
2) Привязать его к Marks.Source для нужной оси


Не пинайте - но КАК это сделать в real-time ? В демке вроде design-time :shock:
Ask
постоялец
Сообщения: 163
Зарегистрирован: 25.12.2008 02:51:37

Re: Снова о TAChart

Сообщение Ask »

в real-time

в run-time. real-time -- это из другой темы.

КАК это сделать

Так же как и с другми компонентами,

Код: Выделить всё

ListChartSource1 := TListChartSource.Create;

и т.д.

Однако, непонятно, зачем. В design-time гораздо удобнее, он в общем-то для этого создан.
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Re: Снова о TAChart

Сообщение Little_Roo »

Ask писал(а):в run-time. real-time -- это из другой темы.

Тьфу, дурак я...но после отведенных четырех пар...ум за мозг цепляется :shock:
Ask писал(а): В design-time гораздо удобнее, он в общем-то для этого создан.

Ну может и удобнее, или я что-то недопонимаю-не догоняю - НО... данные-то меняются динамически - из SQL-запроса
Фиксируется (в идеале) только фамилия (поле FAM), а вот пристегивается к нему разное поле

Как заполнить ListChartSource в процессе, и ЧТО и КУДА впердоливать ???? :( :( :( Ну учитель я :shock:
Ask
постоялец
Сообщения: 163
Зарегистрирован: 25.12.2008 02:51:37

Re: Снова о TAChart

Сообщение Ask »

Как заполнить ListChartSource в процессе

Код: Выделить всё

ListChartSource1.Add(x, y, label)


Чтобы самостоятельно узнавать такие вещи, рекомендую следующий способ:
набрать "ListChartSource1.", нажать Ctrl+пробел -- будет введен список свойств и методов.
Аватара пользователя
vada
энтузиаст
Сообщения: 691
Зарегистрирован: 14.02.2006 12:43:17

Re: Снова о TAChart

Сообщение vada »

Импонирует ученик под номером 13.
У меня в школьном аттестате тоже был средний бал 3.33 :mrgreen:
Ответить