ImageEn for Delphi and C++ Builder ImageEn for Delphi and C++ Builder

 

ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
Forum membership is Free!  Click Join to sign-up
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 old ImageEn version with new Delphi version
 New Topic  Reply to Topic
Author Previous Topic Topic Next Topic  

JanZ

Netherlands
5 Posts

Posted - Oct 14 2025 :  05:58:46  Show Profile  Reply
We use ImageEN on a very old Delphi version (XE2) on Windows 7 but now went to Delphi version 12 on Windows 11 with that same ImageEN version.

It worked fine. We don't use that computer a lot but now when we want to compile our program we immediately get errors that all kind of IE-units cannot be compiled, that the software can't find ie.inc etc. although if you search for a unit in the program it can find the units we use in that program.

Our programmer didn't want to use a newer version of ImageEN because he read that a certain function that we use a lot was changed in a newer version and that would mean a lot of work.

My question therefore is: can we use an old version of ImageEN that doesn't support our new Delphi version?

xequte

39299 Posts

Posted - Oct 14 2025 :  19:55:22  Show Profile  Reply
Hi

1. There are no functions that have changed "a lot" in newer versions. All changes are kept to a minimum and if it took more than a few hours to upgrade any project to the latest version, I would be amazed. Please see:

https://www.imageen.com/help/Updating_and_Compatibility.html

There is even an app to update projects automatically.


2. If you want to use an old version of ImageEn on a new version of Delphi (newer than it was designed for) then you will need to create new packages and edit the source code to add definitions for the relevant Delphi version. It is not something we recommend, because your ImageEn version will never have been tested against that Delphi release.

Nigel
Xequte Software
www.imageen.com
Go to Top of Page

JanZ

Netherlands
5 Posts

Posted - Nov 11 2025 :  05:21:08  Show Profile  Reply
Thanks Nigel,

We got the new version of ImageEN installed and ran the app for updating the project automatically (didn't change that much).

At first we couldn't get the program compiled because of errors but now we got at the change that it compiles without errors but immediately runs into access violations.

We can't figure out why this is happening now:

Our code:

type
IEFolderMView: TImageEnFolderMView;

procedure TFmain.DebugTimerTimer(Sender: TObject);
begin
  label27.caption:=inttostr(IEFolderMView.jobsrunning);
  label32.caption:=inttostr(IEFolderMView.jobswaiting);
end;


Then we get an error:

First chance exception at $00000....15F7B50. Exception class $C0000005 with message 'c0000005 ACCESS_VIOLATION'


I notice a message in the Callstack:
TIECustomMView.GetJobsRunning


The code of procedure TFMain.DebugTimerTimer is almost verbatim from the code in Unit1.pas from \Demos\Multi\Thumbnails\ with the difference that there TImageEnMView is used, not TImageENFolderMView. But in our Windows 7 code this worked fine.

Any idea what the issue is here? We are pretty much stumped.
Go to Top of Page

xequte

39299 Posts

Posted - Nov 11 2025 :  13:20:05  Show Profile  Reply
Hi Jan

For our education, how long did it take to upgrade your code? (just code changes, not the testing part). Approximately how many forms do you have in the application? Do you recall what version you were using previously?

I tried reproducing the issue you reported by changing TImageEnMView for TImageEnMView in the Multi\Thumbnails\Thumbs.dpr demo (32 and 64bit), but could not. Do you see it in this?

attach/xequte/20251111131546_ThumbFolders.zip
3264.44 KB

If you comment out the Jobs* lines does it crash elsewhere?

Is it crashing before even the form displays? Is the TImageEnFolderMView on the form or do you create it at runtime?

If you are creating a 64bit app, have you added the latest ielib64.dll to our project folder?

https://www.imageen.com/help/ImageEn_DLLs.html

Are you able to create a simplified demo of your app that shows the problem?



Nigel
Xequte Software
www.imageen.com
Go to Top of Page

JanZ

Netherlands
5 Posts

Posted - Nov 12 2025 :  08:47:22  Show Profile  Reply
Hi Nigel,

Thanks for your elaborate answer.

Regarding the time for the upgrade, I don't think we are ready with it. We were forced to use a really old Delphi version because of a component that was no longer available for newer versions so we could not keep up with the times. I think the last ImageEN version we used was 8.6.0.

I just declared a value for the labels and then got the next access violation at 'if ImageEnViewCurr.IO.Params.Filename <> IEFolderMView.SelectedFilename'
ImageEnViewCurr.IO.Params.Filename is an inaccessible value (SelectedFilename is empty) when I use a breakpoint.

procedure TFmain.tmrUpdatePreviewTimer(Sender: TObject);
begin
  tmrUpdatePreview.Enabled := False;

    if ImageEnViewCurr.IO.Params.Filename <> IEFolderMView.SelectedFilename then
      begin
        if IEFolderMView.SelectedFilename = '' then
          //ImageEnViewCurr.ClearAll;
          //ImageEnViewCurr.update;
        else
          begin
            if DoLoadImageFromMView = true then
              begin
                //IEFolderMView.MIO.LoadFromFile(IEFolderMView.SelectedFilename);
                ImageEnViewCurr.IO.LoadFromFile(IEFolderMView.SelectedFilename);
                ImageStatusbarCurr.Panels[0].Text := OpenImageEnDialog1.FileName;
                ImageStatusbarCurr.panels[0].Width:= trunc(canvas.textwidth(OpenImageEnDialog1.FileName) * 1.25);
                ImageStatusbarCurr.Update;
              end;
          end;
      end;
end;


I must say that (irregularly) when I run the program for about a 100 times I get a popup that says that things do not have a corresponding component like:
Field Fmain.FlipVertical does not have a corresponding component. Remove declaration?

FlipVertical is:
FlipVertical: TImageEnViewFlipVertical

So it does that for like a 100 ImageEn declarations. And then it doesn't for a while. Then every time till it stops for a while.

The project you made available works flawlessly. I went through each component in the uses clause and added those that were in your project to our project (only 3 or 4 were not there) but apparently that didn't make any difference. When I installed the new ImageEN I needed to add a number of them that were not in the old project to get things "working", meaning compiling without error.

TImageEnFolderMView is on the form (we have about 9, one huge and about 8 small ones that don't use ImageEN) and I added the latest ielib64.dll (IELib 64bit, 8.1.6.0, 3,197 KB) to the project folder.

If I don't "break" at the first access violation but continue it stops at a next ImageEn thing, something about rulers[gripwidth].
Go to Top of Page

xequte

39299 Posts

Posted - Nov 12 2025 :  13:06:04  Show Profile  Reply

Hi Jan

1. Regarding the crash where ImageEnViewCurr.IO.Params.Filename <> IEFolderMView.SelectedFilename,are, when you get to that breakpoint, are any of those objects invalid? ImageEnViewCurr.IO.Params or ImageEnViewCurr.IO? (would be very unusual).

Does delaying the first call of tmrUpdatePreviewTimer until the form is completely ready make any difference?
e.g.

procedure TFmain.tmrUpdatePreviewTimer(Sender: TObject);
begin
if IEFolderMView.SelectedFilename = '' then
exit;

tmrUpdatePreview.Enabled := False;
...


2. Field Fmain.FlipVertical does not have a corresponding component. Remove declaration?

This error means that an object name is found in your declaration that cannot be found on this form. I've never seen this arise for a valid component (that exists on the form). Is that form particularly complex? Is this on Delphi 12. Do non-ImageEn actions come up in those errors too?


3. Regarding other unexpected crashes, I think there is something else going on. Perhaps you could make a copy of your project. Remove any non-ImageEn stuff, ensure it reproduces the crashes and send it to us.

Between 8.6.0 and 14.2.6, there shouldn't be major breaking changes in ImageEn itself, but perhaps there are timing or other interplay issues occurring here.

Nigel
Xequte Software
www.imageen.com
Go to Top of Page

JanZ

Netherlands
5 Posts

Posted - Nov 13 2025 :  06:54:57  Show Profile  Reply
Hi Nigel,

Thanks very much. Indeed I think something else is going on. While searching the internet I found mentions of errors likes that being caused by a mismatch between the .pas and .dfm file.

I opened the .dfm in Notepad and found that all mentions of TImageEN components were gone (they were in backup files). So I will return to a backup, compare the two .pas files to see were the upgrade exe made changes and add those manually.
Go to Top of Page

JanZ

Netherlands
5 Posts

Posted - Nov 14 2025 :  11:41:34  Show Profile  Reply
Hi Nigel,

We spent about half a day now on going over the code with the original programmer. We used the output file of the fixing program to go through the needed changes instead of using the fixing program itself (about 50 lines). We think we found a few issues the fixing program had missed but we will inform you later about the details.

We still use the -very- old routine for the EXIF routines that loads ie.inc. I think we should modernize that but the important thing is that we got something working again.

Thank you very much for your help.

Best regards, Jan Zonjee and Jan Steevens



Go to Top of Page

xequte

39299 Posts

Posted - Nov 14 2025 :  17:14:42  Show Profile  Reply
OK, let us know if you need further guidance.

Nigel
Xequte Software
www.imageen.com
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
Jump To: