views:

219

answers:

4

I have a application that like firefox, can be enhanced from plugins available from internet.

Now, I want to provide in Delphi (2010) a dialog similar to the download from firefox. I have no skills in build graphical controls.

Using the standard controls of Delphi, what could be the best way... using a TListView/TStringGrid with custom draw or...

The idea is show a icon in the left, a title with subtitle with 1-3 lines on the middle and date/version on the right. That row must be selectable and that is all.

A: 

Use TFrame to create a custom control for one download, and then reuse it.

Srx
I mark this because is the simpler way using native Delphi controls.-However, I like the suggestion of 3d party controls. Is bad is not possible to mark several questions as the answer.
mamcx
+1  A: 

use VirtualStringTree from SoftGems.

sdjngsdkjgnsdkj
A: 

Use a TDataSet descendant (eg. TClientDataSet, JVCL's TjvMemoryData or any other dataset you like) to have a table with all the fields needed to describe your download. For example:

  • Plugin_Name - Char(255)

  • Plugin_Icon - Blob

  • Downloaded_Size - Int64

  • Total_Size - Int64

//etc.

(Of course the above fields are provided just as an example - the actual fields are up to you).

After this, connect a TDataSource to your table and use an TDBCtrlGrid to show your data as you wish. For the above example, you can put on your record a TDBLabel, TDBImage, TjvDBProgressBar (unfortunately we don't have a data-aware gauge shipped with Delphi) etc. all these connected to the appropriate fields.

In this way you can simulate a list (if you set TDBCtrlGrid's Column property to 1) with a custom layout in which you can do select, add, delete etc.

HTH

Good Idea. I wish TDBCtrlGrid was available with no datasource support....
mamcx
+2  A: 

For the UI part,

The easiest way: Use TNextGrid in "Slide view" from bergsoft. It's one of my favorite VCL controls. Check this screenshot:

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

The most flexible way: Use TVirtualStreeTree with custom draw, but it'll take some time to get use to that most powerful tree view control and apply a custom draw.

The Most promising way: Use TMS software's advanced poly list (in beta stage currently), check the Screenshots in the following page and it's very nice looking!: http://www.tmssoftware.com/site/advpolylist.asp

Edwin
Great controls! But I need a way using only the standar controls on Delphi...
mamcx