Снова о TAChart

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

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

Снова о TAChart

Сообщение Little_Roo » 19.11.2012 11:54:16

Уперся в проблему, явно по скудоумию :(
Нужно вывести диаграмму средних баллов учащихся из базы 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
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Снова о TAChart

Сообщение Ask » 19.11.2012 17:02:57

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

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

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

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


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

LabelFont.Orientation:=900

См. также документацию и axisdemo
Ask
постоялец
 
Сообщения: 163
Зарегистрирован: 25.12.2008 03:51:37

Re: Снова о TAChart

Сообщение Little_Roo » 19.11.2012 20:55:15

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


Не пинайте - но КАК это сделать в real-time ? В демке вроде design-time :shock:
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Снова о TAChart

Сообщение Ask » 19.11.2012 21:03:43

в real-time

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

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

Так же как и с другми компонентами,
Код: Выделить всё
ListChartSource1 := TListChartSource.Create;

и т.д.

Однако, непонятно, зачем. В design-time гораздо удобнее, он в общем-то для этого создан.
Ask
постоялец
 
Сообщения: 163
Зарегистрирован: 25.12.2008 03:51:37

Re: Снова о TAChart

Сообщение Little_Roo » 19.11.2012 21:14:58

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

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

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

Как заполнить ListChartSource в процессе, и ЧТО и КУДА впердоливать ???? :( :( :( Ну учитель я :shock:
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Снова о TAChart

Сообщение Ask » 19.11.2012 21:20:10

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

Код: Выделить всё
ListChartSource1.Add(x, y, label)


Чтобы самостоятельно узнавать такие вещи, рекомендую следующий способ:
набрать "ListChartSource1.", нажать Ctrl+пробел -- будет введен список свойств и методов.
Ask
постоялец
 
Сообщения: 163
Зарегистрирован: 25.12.2008 03:51:37

Re: Снова о TAChart

Сообщение vada » 20.11.2012 12:18:34

Импонирует ученик под номером 13.
У меня в школьном аттестате тоже был средний бал 3.33 :mrgreen:
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 232

Рейтинг@Mail.ru