Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Нужен визуальный компонент аналогично отображения дефрагментации


Gu_2020   (05.04.20 19:53

Описание: Нужен визуальный компонент, который отображает в окне упорядоченное количество элементов в виде цветных прямоугольников

Количество элементов: 1024 макс, линейное с лева на право заполнение до конца видимой области, далее с новой строки

У каждого элемента: программно возможность изменения позиции в списке и цвета, всплывающая подсказка, popup меню

Как бонус: масштабирование и прокрутка видимой области отображения

Вид: Аналог отображения дефрагментации, скрины:

https://s1.pir.fm/pf/df/df-screen.png

https://rempc.by/upload/raznoe/New%20Folder8/93_x.jpg

Вопрос: Таких компонентов не знаю, может подскажете если есть? А если нет, то посоветуйте как написать?

= Win 10 Ent, Embarcadero Delphi 10.3

p.s. Если не в ту ветку, просьба перенести.


Gu_2020   (05.04.20 22:59[1]

По подсказке сделал это, скрин:

https://d.radikal.ru/d33/2004/75/733356f752a3.png

Все классно, только как теперь сделать подсказку у кажого квадратика и всплывающее меню индивидуальное?

Текст основного модуля:

unit Unit1;

interface

uses
 Winapi.Windows, System.SysUtils, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.StdCtrls, Vcl.Grids;

type
 TForm1 = class(TForm)
   dg1: TDrawGrid;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure dg1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
     State: TGridDrawState);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
dg1.Repaint;
end;

procedure TForm1.dg1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect;  State: TGridDrawState);
begin
dg1.Canvas.Brush.Color := Random(9999999);dg1.Canvas.FillRect(dg1.CellRect(ACol, ARow));
end;

end.


DimaBr ©   (12.04.20 22:00[2]

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


Германн ©   (15.04.20 03:27[3]


> DimaBr ©   (12.04.20 22:00) [2]

Я вовсе не имел в виду, что вы должны/обязаны продолжить выполнять свои функции модератора на ДМ.
Уж извините. :(


ВладОшин ©   (15.05.20 08:54[4]

type
 TForm1 = class(TForm)
   drwgrd1: TDrawGrid;
   procedure drwgrd1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
 private     { Private declarations }
 public      { Public declarations }
   GC, GR: Integer;
 end;

var
 Form1: TForm1;

implementation
{$R *.dfm}

procedure TForm1.drwgrd1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
 C, R: Integer;
 P: TPoint;
begin
 drwgrd1.MouseToCell(X, Y, C, R);
 if (GC = C) and (GR = R) then
 begin
   Exit;
 end;
 Application.HideHint;
 drwgrd1.Hint := Format('Col %d Row %d', [C, R]);
 P.X := X;
 P.Y := Y;
 P := drwgrd1.ClientToScreen(P);
 Application.ActivateHint(P);
 GC := C;
 GR := R;

end;


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо