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: Stefan2, white, sheep, Hacker

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 » 2004-10-20, 23:18 UTC

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 » 2004-10-21, 07:57 UTC

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 » 2004-10-21, 11:59 UTC

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: 36544
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) » 2004-10-21, 18:58 UTC

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
http://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 » 2004-10-21, 21:19 UTC

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 » 2004-10-25, 23:45 UTC

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 » 2004-12-08, 03:32 UTC

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