Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 291

/ вопрос открыт /

Здравствуйте, эксперты!
Возможно в прошлый раз задал вопрос не совсем корректно. исправляюсь.
Пользователем задана матрица. хз сколько задаст строк, хз сколько столбцов. нужно построить 2 диаграммы

пример вот такой.
http://s54.radikal.ru/i146/1006/c6/8e3ea9c7e627.jpg

сделанный в экселе. дана например вот такая матрица, необходимы две диаграммы. для линий А и линий В.
вот такие вот.
Как это реализовать?

zloy_nub Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: zloy_nub (статус: Посетитель)
Вопрос отправлен: 6 июня 2010, 20:42
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 20; последнее сообщение — 8 июня 2010, 21:12; участников в обсуждении: 3.
min@y™

min@y™ (статус: Доктор наук), 7 июня 2010, 08:31 [#1]:

Могу сделать без TChart. Будет просто и красиво. Сколько пива ставишь?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 7 июня 2010, 09:56 [#2]:

Цитата (zloy_nub):

Сколько нужно - поставлю.

Ящик осилишь?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

7 июня 2010, 15:33: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Графика (2D и 3D) в приложениях модератором Ерёмин А.А.

min@y™

min@y™ (статус: Доктор наук), 7 июня 2010, 17:58 [#3]:

Цитата (zloy_nub):

если это не элитное какое-нибудь пиво, то осилю.

Нет, не элитное, я простое рязанское Жигулёвское предпочитаю. Ладно, попробую написать.

Откуда ж вы такие берётесь? Как сессия, так у меня завал полнейший, хоть круглосуточно лабы пиши.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
padonak

padonak (статус: Посетитель), 8 июня 2010, 01:59 [#4]:

Жутко извеняюсь, но на результат можно будет глянуть?
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 09:37 [#5]:

Завалили меня работой. Я уже начал писать класс-отрисовщик, а тут аврал.
Подождёшь несколько дней или сам напишешь?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 11:45 [#6]:

Ну чего, мне продолжать или не надо? Я уже много написал.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 14:53 [#7]:

Цитата (zloy_nub):

ну не получается, так не получается, что поделаешь.

Поздняк метаццо, 80% примерно сделал уже. Ещё пару часов, если не отвлекут.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 15:41 [#8]:

Могу прислать предварительный вариант.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 16:22 [#9]:

Цитата (zloy_nub):

было бы круто

Куда слать-то? На деревню дедушке Константиру Макарычу?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 16:47 [#10]:

Отправил, смотри.
Могу продать черновые исходники. Дёшево, но придётся тебе их обрабатывать напильником самому.
Могу доделать, это займёт время и будет дороже.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 17:04 [#11]:

Цитата (zloy_nub):

тэк. теперь интересуют 2 вещи. сама цена и способ оплаты.

А ты какой вариант исходников выбираешь?
Черновой - 5 бутылок пива.
Доделанный - ящик (20 бутылок).

Выбирай 1-й вариант, а?
А то у меня тут завал, диплом за 5 тыщ пишу, сроки все вышли!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 17:16 [#12]:

Цитата (zloy_nub):

а может в более конвертируемой валюте?

Могу принять рубли на сим-карту.

Цитата (zloy_nub):

только у тебя статичная матрица и значения внутри неё хрен поменяешь, а еще графики друг на друга накладываются...

Это таблица статичная.
За отрисовку отвечает класс, которому подставляешь ЛЮБУЮ матрицу, ЛЮБОЙ размерности и Canvas, на котором рисовать. StringGrid там только для отладки самого класса. Вот его описалово:
unit uBarChart;
 
interface
 
uses
  Classes, Types, SysUtils, Graphics, Math;
 
type
  TMatrix = array of array of Integer;
  //TColorVector = array of TColor;
 
  TBarChart = class
  private
    // Поля свойств
    FMatrix: TMatrix;
    FCanvas: TCanvas;
    FAxisColor: TColor;
 
    // Внутренние поля
    FMin: Integer;
    FMax: Integer;
    FXAxisTop: Integer;
    FXAxisLen: Integer;
    FSectionLen: Integer; // Длина секции в пикселях
    FYAxisLeft: Integer;
    FYScale: Double; // Масштаб (пикс. на единицу измерения)
    FSectionFilling: Double; // Процент заполнение секции под прямоугольники (def.: 0.7 (70%))
 
    // Дочерние объекты
    FColors: TList;
 
    // Функции доступа к свойствам
    function GetRowCount: Integer;
    procedure SetRowCount(const ANew: Integer);
    function GetColCount: Integer;
    procedure SetColCount(const ANew: Integer);
    function GetCell(const i, j: Integer): Integer;
    procedure SetCell(const i, j: Integer; const ANew: Integer);
    function GetColor(const Index: Integer): TColor;
    procedure SetColor(const Index: Integer; const ANew: TColor);
 
 
    // Технологические функции
    function GetMinMaxInfo: TPoint;
    function IndexesInBounds(const i, j: Integer): Boolean;
    procedure DrawYAxisValue(const ABounds: TRect; const Value: Integer);
    procedure DrawXAxisValues(const ABounds: TRect);
    procedure DrawAxis(const ABounds: TRect);
    procedure DrawValueBar(const i, j: Integer);
  public
    constructor Create;
    destructor Destroy; override;
 
    // Методы
    procedure Draw(const ABounds: TRect);
 
    // Свойства
    property Matrix: TMatrix read FMatrix write FMatrix;
    property RowCount: Integer read GetRowCount write SetRowCount;
    property ColCount: Integer read GetColCount write SetColCount;
    property Cells[const i, j: Integer]: Integer read GetCell write SetCell;
    property Colors[const Index: Integer]: TColor read GetColor write SetColor;
    property Canvas: TCanvas read FCanvas write FCanvas;
    property AxisColor: TColor read FAxisColor write FAxisColor;
  end;
 
implementation

Это только предварительно. Там ещё много чего можно добавить.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Вадим К

Вадим К (статус: Академик), 8 июня 2010, 17:33 [#13]:

Может вы это все в личке решать будете? кто кому сколько должен?
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 17:47 [#14]:

Блин, оказывается я этот вопрос спутал с 4286, а там было что-то про TurboDelphi, в котором нету TChart. Почему-то у меня в голову врезалось это сообщение, и я думал, что оно твоё. Поэтому предложил сделать без TChart. Но, оказывается, можно использовать TChart, а целый рабочий день почти угрохал. Вот я туплю...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 17:55 [#15]:

Это я уже понял. Чо теперь делать?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 18:23 [#16]:

Цитата (zloy_nub):

сделать в чарте - такая же муть длинная?

Нет, там гораздо меньше писанины.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 18:27 [#17]:

Пример я тебе уже пишу.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 18:33 [#18]:

Мне надо отойти на часок, вернусь - доделаю.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 21:02 [#19]:

Отправил новый пример.
Он тоже сырой, но и ты пойми меня правильно: у меня щас 4 проги одновременно в разработке. Времени нету, полный жоп. Если чо надо добавить - пиши.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 8 июня 2010, 21:12 [#20]:

Цитата (zloy_nub):

Пример хорош, там как вижу по столбцам. По строкам думаю сам соображу...

По строкам - достаточно траспонировать матрицу. И всё.
Я потратил на тебя целый день, на сколько пива я могу рассчитывать?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:53
Выполнено за 0.04 сек.