-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


Визуализация уровня данных

Четверг, 27 Августа 2020 г. 15:12 + в цитатник
ivan1234:
Цитата Fr0sT @
можно попробовать с listview

Как и всегда оказалось, что если у кого то не получается что то сделать (кто то это конечно же я) - это совершенно не означает что это невозможно осуществить в принципе, просто на тот период у этого "кто то" недостаточно знаний.
Перекопав огромное количество примеров оказалось, что listview прекрасно справляется с поставленной задачей, заполняет поле мгновенно, да и скол присутствует в различных видах, правда несколько тормозит при прокрутке всего окна, но на этом этапе для меня этого достаточно.
Всем кто принял участие огромное спасибо!
Проект который у меня получился выложен здесь:
    unit Unit_1;
    interface
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, ExtCtrls, ComCtrls;
    type
    TForm1 = class(TForm)
    ListView1: TListView;
    procedure FormCreate(Sender: TObject);
    procedure ListView1Data(Sender: TObject; Item: TListItem);
    procedure ListView1CustomDrawItem(Sender: TCustomListView;
    Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
    procedure ListView1CustomDrawSubItem(Sender: TCustomListView;
    Item: TListItem; SubItem: Integer; State: TCustomDrawState;
    var DefaultDraw: Boolean);
    private
    { Private declarations }
    public
    { Public declarations }
    end;
    var
    Form1: TForm1;
    implementation
    {$R *.dfm}
    uses
    Unit_2;
    type
    TColorData=record
    end;
    var
    arr: TSimpleArr;
    s: Word;
    procedure TForm1.FormCreate(Sender: TObject);
    var
    lc: TListColumn;
    j: integer;
    begin
    MatrData(arr);
    Listview1.OwnerData:=True;
    ListView1.ViewStyle:=vsReport;
    for j:=0 to 10 do
    begin
    lc:=ListView1.Columns.Add;
    lc.Caption:=inttostr(j-1);
    lc.Width:=42;
    end;
    ListView1.RowSelect:=true;
    ListView1.Items.Count:=Length(arr);
    Caption:=IntToStr(Length(arr));
    end;
    procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
    Item: TListItem; State: TCustomDrawState;
    var DefaultDraw: Boolean);
    begin
    Sender.Canvas.Brush.Color:=RGB(255,255,255);
    end;
    procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
    Item: TListItem; SubItem: Integer; State: TCustomDrawState;
    var DefaultDraw: Boolean);
    begin
    Sender.Canvas.Brush.Color:=RGB(s,s,s);;
    end;
    procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);
    var
    n, j: integer;
    begin
    n:=10;
    item.Caption:=arr[item.Index,0].caption;
    for j:= 0 to n-1 do
    begin
    item.SubItems.Add(IntToStr(arr[item.Index,j].data));
    s:= arr[item.Index,j].data;
    end;
    end;
    end.

и
    unit Unit_2;
    interface
    uses SysUtils;
    type
    TColor =record
    caption:string;
    data:integer;
    end;
    TSimpleArr = array of array of TColor;
    procedure MatrData(var arr:TSimpleArr);
    implementation
    procedure MatrData(var arr:TSimpleArr);
    var
    k, n, i, j: integer;
    begin
    k:=12000;
    n:=10;
    SetLength(arr,k,n);
    for i := 0 to k-1 do
    for j:= 0 to n-1 do
    begin
    arr[i,j].caption:=inttostr(i);
    arr[i,j].data:=i*j;
    end;
    end;
    end.

https://forum.sources.ru/index.php?showtopic=419273&view=findpost&p=3837799

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку