| 
| 
 | Вопрос # 4 291/ вопрос открыт / | 
 |  Здравствуйте, эксперты!Возможно в прошлый раз задал вопрос не совсем корректно. исправляюсь.
 Пользователем задана матрица. хз сколько задаст строк, хз сколько столбцов. нужно построить 2 диаграммы
 
 пример вот такой.
 http://s54.radikal.ru/i146/1006/c6/8e3ea9c7e627.jpg
 
 сделанный в экселе. дана например вот такая матрица, необходимы две диаграммы. для линий А и линий В.
 вот такие вот.
 Как это реализовать?
 
|  |   Вопрос задал: zloy_nub (статус: Посетитель)Вопрос отправлен: 6 июня 2010, 20:42
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 20; последнее сообщение — 8 июня 2010, 21:12; участников в обсуждении: 3. 
|   | min@y™ (статус: Доктор наук), 7 июня 2010, 08:31 [#1]:Могу сделать без TChart. Будет просто и красиво. Сколько пива ставишь? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 7 июня 2010, 09:56 [#2]: Цитата (zloy_nub): Сколько нужно - поставлю.  Ящик осилишь?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  7 июня 2010, 15:33: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Графика (2D и 3D) в приложениях модератором Ерёмин А.А. 
|   | min@y™ (статус: Доктор наук), 7 июня 2010, 17:58 [#3]: Цитата (zloy_nub): если это не элитное какое-нибудь пиво, то осилю.  Нет, не элитное, я простое рязанское Жигулёвское предпочитаю. Ладно, попробую написать.
 
 Откуда ж вы такие берётесь? Как сессия, так у меня завал полнейший, хоть круглосуточно лабы пиши.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | padonak (статус: Посетитель), 8 июня 2010, 01:59 [#4]:Жутко извеняюсь, но на результат можно будет глянуть? |  
|   | min@y™ (статус: Доктор наук), 8 июня 2010, 09:37 [#5]:Завалили меня работой. Я уже начал писать класс-отрисовщик, а тут аврал. Подождёшь несколько дней или сам напишешь?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 8 июня 2010, 11:45 [#6]:Ну чего, мне продолжать или не надо? Я уже много написал. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 8 июня 2010, 14:53 [#7]: Цитата (zloy_nub): ну не получается, так не получается, что поделаешь.  Поздняк метаццо, 80% примерно сделал уже. Ещё пару часов, если не отвлекут.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 8 июня 2010, 15:41 [#8]:Могу прислать предварительный вариант. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 8 июня 2010, 16:22 [#9]: Цитата (zloy_nub): было бы круто  Куда слать-то? На деревню дедушке Константиру Макарычу?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 8 июня 2010, 16:47 [#10]:Отправил, смотри. Могу продать черновые исходники. Дёшево, но придётся тебе их обрабатывать напильником самому.
 Могу доделать, это займёт время и будет дороже.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 8 июня 2010, 17:04 [#11]: Цитата (zloy_nub): тэк. теперь интересуют 2 вещи. сама цена и способ оплаты.  А ты какой вариант исходников выбираешь?
 Черновой - 5 бутылок пива.
 Доделанный - ящик (20 бутылок).
 
 Выбирай 1-й вариант, а?
 А то у меня тут завал, диплом за 5 тыщ пишу, сроки все вышли!
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | 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™ (статус: Доктор наук), 8 июня 2010, 17:47 [#14]:Блин, оказывается я этот вопрос спутал с 4286, а там было что-то про TurboDelphi, в котором нету TChart. Почему-то у меня в голову врезалось это сообщение, и я думал, что оно твоё. Поэтому предложил сделать без TChart. Но, оказывается, можно использовать TChart, а целый рабочий день почти угрохал. Вот я туплю... Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 8 июня 2010, 17:55 [#15]:Это я уже понял. Чо теперь делать? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 8 июня 2010, 18:23 [#16]: Цитата (zloy_nub): сделать в чарте - такая же муть длинная?  Нет, там гораздо меньше писанины.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 8 июня 2010, 18:27 [#17]:Пример я тебе уже пишу. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 8 июня 2010, 18:33 [#18]:Мне надо отойти на часок, вернусь - доделаю. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 8 июня 2010, 21:02 [#19]:Отправил новый пример. Он тоже сырой, но и ты пойми меня правильно: у меня щас 4 проги одновременно в разработке. Времени нету, полный жоп. Если чо надо добавить - пиши.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 8 июня 2010, 21:12 [#20]: Цитата (zloy_nub): Пример хорош, там как вижу по столбцам. По строкам думаю сам соображу...  По строкам - достаточно траспонировать матрицу. И всё.
 Я потратил на тебя целый день, на сколько пива я могу рассчитывать?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |