Question to writers (work with WinXP)
Moderators: Hacker, petermad, Stefan2, white
Question to writers (work with WinXP)
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,
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,
- SanskritFritz
- Power Member
- Posts: 3693
- Joined: 2003-07-24, 09:25 UTC
- Location: Budapest, Hungary
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.
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!
XP look
Thanks, it's a good programs..SanskritFritz wrote:Google search "old programs xp look" gave those promising links
But - they are for changing .exe look, not to change source code
I need change in my source code...
Regards,
- ghisler(Author)
- Site Admin
- Posts: 48523
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
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
https://www.ghisler.com
Hello All,
On Delphi pages (see here) I found this:
On Delphi pages (see here) I found this:
Regards,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.
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...
-------------------------------
{
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...