Как сделать элемент управления, похожий на диалог «загрузки» Firefox - PullRequest
1 голос
/ 25 апреля 2010

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

Теперь я хочу предоставить в Delphi (2010) диалоговое окно, похожее на загрузку с Firefox. У меня нет навыков построения графических элементов управления.

Используя стандартные элементы управления Delphi, что может быть лучшим способом ... используя TListView / TStringGrid с настраиваемым рисованием или ...

Идея состоит в том, чтобы показать значок слева, заголовок с подзаголовком с 1-3 строками в середине и дату / версию справа. Эта строка должна быть выбрана, и это все.

Ответы [ 4 ]

2 голосов
/ 25 апреля 2010

Для части пользовательского интерфейса,

Самый простой способ: использовать TNextGrid в «Slide view» от bergsoft. Это один из моих любимых элементов управления VCL. Проверьте этот скриншот:

http://www.bergsoft.net/res/screenshots/next-grid/slides-style.gif

Самый гибкий способ: используйте TVirtualStreeTree с настраиваемым рисованием, но потребуется некоторое время, чтобы привыкнуть к этому наиболее мощному древовидному элементу управления и применить настраиваемое рисование.

Самый многообещающий способ: используйте расширенный список поли программного обеспечения TMS (в стадии бета-тестирования), посмотрите скриншоты на следующей странице, и это очень красиво выглядит !: http://www.tmssoftware.com/site/advpolylist.asp

1 голос
/ 25 апреля 2010

использовать VirtualStringTree из SoftGems.

0 голосов
/ 25 апреля 2010

Используйте потомка TDataSet (например, TClientDataSet, TjvMemoryData JVCL или любой другой набор данных, который вам нравится), чтобы получить таблицу со всеми полями, необходимыми для описания вашей загрузки. Например:

  • Plugin_Name - Char (255)

  • Plugin_Icon - Blob

  • Downloaded_Size - Int64

  • Total_Size - Int64

// и т.д.

(Конечно, приведенные выше поля предоставлены , просто в качестве примера - фактические поля на ваше усмотрение).

После этого подключите TDataSource к вашей таблице и используйте TDBCtrlGrid, чтобы показать ваши данные, как вы хотите. В приведенном выше примере вы можете добавить в свою запись TDBLabel, TDBImage, TjvDBProgressBar (к сожалению, у нас нет датчика с данными, поставляемым с Delphi) и т. Д. Все это связано с соответствующими полями.

Таким образом, вы можете смоделировать список (если вы установили свойство Column для TDBCtrlGrid равным 1) с пользовательским макетом, в котором вы можете выбирать, добавлять, удалять и т. Д.

НТН

0 голосов
/ 25 апреля 2010

Используйте TFrame для создания пользовательского элемента управления для одной загрузки, а затем используйте его повторно.

...