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
 Getting error in IE 8.7.5
 New Topic  Reply to Topic
Author Previous Topic Topic Next Topic  

yogiyang

India
725 Posts

Posted - Nov 09 2019 :  05:21:46  Show Profile  Reply
Hello,

I installed the latest version if IE which is 8.7.5 on my system and opened an existing project which is compiling and working properly in 8.6.0 is not working properly.

First problem that I faced is that the IDE shows error in the component TMSScripter related module code at compile time.

So I removed TMSScripter and all its related modules. After this the application compiled properly but I started getting error when we close the application.

On debugging in the IDE, it points to this code in iemview.pas module:
procedure TImageEnMView.SetThumbnailClipping(Value: Integer);
begin
  if fThumbnailClipping <> Value then
  begin
    fThumbnailClipping := Value;
    ClearCache;
    UpdateEx( True );
  end;
end;


I am using Delphi 10 Seattle.

How to solve this problem?

TIA


Yogi Yang

xequte

38182 Posts

Posted - Nov 09 2019 :  15:30:12  Show Profile  Reply
Hi Yogi

Can you reproduce in any of our demos?

What is the error that you get? On which particular line?

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

yogiyang

India
725 Posts

Posted - Nov 10 2019 :  00:17:50  Show Profile  Reply
I have not tested the samples/demos. Will try them out.

The error is on this line:
if fThumbnailClipping <> Value then


The error I get is a cryptic memory location.

TIA


Yogi Yang
Go to Top of Page

xequte

38182 Posts

Posted - Nov 10 2019 :  13:56:43  Show Profile  Reply
Hi Yogi

That implies you are calling:

ImageEnMView1.ThumbnailClipping := ...;

After you have freed it.

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

yogiyang

India
725 Posts

Posted - Nov 11 2019 :  07:52:54  Show Profile  Reply
Hello Nigel,

I checked my code I am not trying to reference ImageEnMView anywhere at form close event.

Here is the code that I am using:
if fSourceBitmap <> nil then
    FreeAndNil(fSourceBitmap);
  if fSourceImg <> nil then
    FreeAndNil(fSourceImg);

  if lstSelectedPFName <> nil then
    FreeAndNil(lstSelectedPFName);
  if lstSelectedLFName <> nil then
    FreeAndNil(lstSelectedLFName);

  if lstQckINIFile <> nil then
    FreeAndNil(lstQckINIFile);

  if fSourceBitmap <> nil then
    FreeAndNil(fSourceBitmap);

  if FadeEffectImage <> nil then
    FreeAndNil(FadeEffectImage);

  if IsDirty then
  begin
    dResult := MessageDlg
      ('Current Design is not saved. Do you sure you want to Save it?',
      TMsgDlgType.mtConfirmation, mbYesNoCancel, 0);

    if dResult = mrYes then
    begin
      // Save the document
    end;
    if dResult = mrCancel then
    begin
      CanClose := False;
      exit;
    end;
  end;



TIA


Yogi Yang
Go to Top of Page

yogiyang

India
725 Posts

Posted - Nov 11 2019 :  07:57:01  Show Profile  Reply
Hello Nigel,

I have such a code in the Change event of ImageEnMView control:

procedure TMainForm.iemPhotosChanged(Sender: TObject);
begin
  iemPhotos.ThumbnailClipping := 10;
  iemPhotos.HorizBorder := 15;
  iemPhotos.Update;
end;



Yogi Yang
Go to Top of Page

yogiyang

India
725 Posts

Posted - Nov 11 2019 :  08:09:33  Show Profile  Reply
Hello Nigel,

After a bit more experimentation I found that we remove/comment the code line
iemPhotos.ThumbnailClipping := 10;
for all ImageEnMView controls in out project this error goes away.

But this is actually not a solution in my case because if we want to use ThumbnailClipping we cannot use it.

Can you please look into this and help solve it.

TIA


Yogi Yang
Go to Top of Page

xequte

38182 Posts

Posted - Nov 11 2019 :  19:55:56  Show Profile  Reply
Hi Yogi

So, is the following method being called as/after the TImageEnMView is being destroyed?

E.g. if you put an exit at the start of this method, does the error go away?

procedure TMainForm.iemPhotosChanged(Sender: TObject);


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

yogiyang

India
725 Posts

Posted - Nov 12 2019 :  00:35:01  Show Profile  Reply
Hello Nigel,

The code I have posted is of the change event of ImageEnMView control.

Yes commenting out this particular line: iemPhotos.ThumbnailClipping := 10; the error goes away.

But the funny thing is that this code exist from a long time and it has worked properly till date, that is till 8.6.x. It has started giving error only in 8.7.x.

TIA


Yogi Yang
Go to Top of Page

xequte

38182 Posts

Posted - Nov 12 2019 :  18:22:21  Show Profile  Reply
Hi Yogi

The bug here is that the OnChanged event should not be called from the destructor. That is just poor form. I will have a fix in the next update.

Though, why do you set properties in the Changed event? That is an odd place for it. Why not in your FormCreate or FormShow event, for example?


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

yogiyang

India
725 Posts

Posted - Nov 12 2019 :  23:35:29  Show Profile  Reply
Hello Nigel,

 
Though, why do you set properties in the Changed event? That is an odd place for it. Why not in your FormCreate or FormShow event, for example?

Well in past the settings (ThumbnailClipping and HorizBorder) were getting reset every time we cleared ImageEnMView and reloaded it by using FillFromDirectory or by adding one file at a time programatically, so while experimenting we found that setting these in the change event it was a guarantee that it will have the required effect.

TIA


Yogi Yang
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
Jump To: