wiFT Developer Guide

last update:
08/04/02 -- August 4th, 2002

comments/suggestions/corrections/additions/etc to:
mjvh AT users.sf.net
[ my setup ]

I use Delphi 6 Enterprise Edition (6.240), Update Pack 2.

If you use something else, I can't guarantee that it will work for you. If you do manage to compile it with another version, please let me know. I'll put the notes here. I am also willing to make small changes to the code to accomdate other versions.

[ TListView horrors ]

There is a bug (?) in the way TListView copes with columns being dragged around. I don't really understand it, and I wasn't able to find much information on it, but everytime I tried to implement the saving/restoring of column positions I ran into a brick wall.

Recently while mucking about with various things I discovered that simply compiling the included ComCtrls.pas and replacing the existing ComCtrls.dcu fixes the problem.

Hence, there is a problem with the pre-compiled stuff. Recompile ComCtrls.pas and you'll be fine.

[ components ]

I've limited myself to using only components that are available within the Delphi 6 IDE, so that there are no licensing issues.

Or, I've written my own. As is the case with ugiFT.pas and uBarGraph.pas.

ugiFT.pas is my wrapper for the fe-daemon communication. That way when the UI protocol changes, I don't have to rewrite everything, just the parsing routine. There isn't really any documentation on it at the moment, but I think it's fairly straight forward. If you're planning on writing your own client, using ugiFT.pas might give you a bit of a head start.

uBarGraph.pas is used to display the transfer speed graphs on the uploads and downloads windows. It was just a quick hack, so it's not perfect, but it works for my purposes.

[ 10 things I hate about CLX ]
  1. weird qtintf.dll errors when running (particularly when resizing windows)
  2. no docking
  3. borderStyle := bsSingle seems to have no effect
  4. TForm.WindowMenu does not exist
  5. TListView won't sort properly if the columns have been rearranged
  6. TListView is clearly fubar when columns are rearranged.. try rearranging some columns (and sizes), and comparing listview.columns[i].caption to listview.columns[i].width
  7. okay.. I stopped using CLX here.. so I guess it should be 6 things I hate about CLX..

I had originally intended for this project to be written using CLX but it seemed to be more effort than it was worth. I ran into all sorts of irritants such as those listed above while working with CLX. Maybe next version I'll be happier with it.

There are lots of good linux clients already anyway.