Question to writers (work with WinXP)

Discuss and announce Total Commander plugins, addons and other useful tools here, both their usage and their development.

Moderators: white, Hacker, petermad, Stefan2

Post Reply
User avatar
Alextp
Power Member
Power Member
Posts: 2321
Joined: 2004-08-16, 22:35 UTC
Location: Russian Federation
Contact:

Question to writers (work with WinXP)

Post by *Alextp »

Hello All,

Maybe it's not right place (TC forum), but question about plugin. I didn't visit Delphi pages some time; how to make Delphi program work under WinXP, with themes?
I.e.: I added .manifest resource to program, program uses it, but: I have run-time errors in it. Some errors in TListView, when it draws its columns... :(

I'm using Delphi5 now, don't want to use D7.
What I need to make with D5 to run without run-time errors?
(Maybe correct VCL for D5?)


Regards,
User avatar
SanskritFritz
Power Member
Power Member
Posts: 3693
Joined: 2003-07-24, 09:25 UTC
Location: Budapest, Hungary

Post by *SanskritFritz »

Google search "old programs xp look" gave those promising links:
http://www.3sware.com/addxp/pictures.html
http://www.cronosoft.com/download/xp_skins/
You may check them out, maybe threre are some hints, how to accomplish your wish.
I switched to Linux, bye and thanks for all the fish!
User avatar
Alextp
Power Member
Power Member
Posts: 2321
Joined: 2004-08-16, 22:35 UTC
Location: Russian Federation
Contact:

XP look

Post by *Alextp »

SanskritFritz wrote:Google search "old programs xp look" gave those promising links
Thanks, it's a good programs..
But - they are for changing .exe look, not to change source code :)
I need change in my source code...

Regards,
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48021
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

I'm using Delphi 2 for the speed and small code it creates, and I had almost no problems using the manifest file. However, I'm using a listbox, not a listview in TC. There are some bugs in the themed listbox implementation, so there may be bugs in the listview implementation too. You should try to compile the VCL yourself and then check in the debugger where the errors occur.
Author of Total Commander
https://www.ghisler.com
User avatar
Alextp
Power Member
Power Member
Posts: 2321
Joined: 2004-08-16, 22:35 UTC
Location: Russian Federation
Contact:

Post by *Alextp »

Hello Christian,
No, don't want to debug VCL.. I think there is patch to D4/D5 VCL,
on some Delphi pages...


Regards,
PS
2Fritz:
"XP skins" program(link above) just adds .manifest file to folder of my .exe :)
And "Add XP" program don't work on my .exe.
User avatar
Alextp
Power Member
Power Member
Posts: 2321
Joined: 2004-08-16, 22:35 UTC
Location: Russian Federation
Contact:

Post by *Alextp »

Hello All,

On Delphi pages (see here) I found this:
Borland COMCTRLS wrapper for the TListView control has a problem with Windows XP visual styles on Windows XP.

The only solution so far is to patch COMCTRLS if you want to use the Windows XP visual styles with listview controls. We can provide this patch upon email request when needed.
Regards,
User avatar
Dark One
Junior Member
Junior Member
Posts: 40
Joined: 2003-05-19, 10:48 UTC
Location: Serbia

Post by *Dark One »

the following is an extract from torry's delphi pages. i cant give you a direct link because it's down right now...

-------------------------------


{
The TListView with a vsReport style causes an access violation
when you run your project with a XP manifest resource.

The VCL wrapper has a bug and you must patch sources.
Just copy the comctrls.pas unit in the folder with your own
project and modify the UpdateColumn method.
After compiling the project, a comctrls.dcu is created
and you can replace the original comctrls.dcu with the
patched one.

}



// ComCtrls.pas:

procedure TCustomListView.UpdateColumn(AnIndex: Integer);
{...}
with Column, Columns.Items[AnIndex] do
begin
{ PATCH start:}
// mask := LVCF_TEXT or LVCF_FMT or LVCF_IMAGE;
mask := LVCF_TEXT or LVCF_FMT;
if FImageIndex >= 0 then
mask := mask or LVCF_IMAGE;
{ PATCH :end }
{...}
end;


-------------------------

i hope this helps...
Post Reply