Atozed Forums

Full Version: IntraWeb 15.2.47 is out!
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi guys,

new IntraWeb release is available. https://www.atozed.com/2021/11/intraweb-15-2-47/

This update is an absolute must for Delphi 11 users

enjoy!  Big Grin
(11-26-2021, 07:41 PM)Alexandre Machado Wrote: [ -> ]Hi guys,

new IntraWeb release is available. https://www.atozed.com/2021/11/intraweb-15-2-47/

This update is an absolute must for Delphi 11 users

enjoy!  Big Grin

Hi Alexandre,
after updating to IW 15.2.47 from Iw 15.2.42 (delphi 11) in production ISAPI 64 bit i have a lot of AV in iwbscomponent freeing when form is shown or released.
I attached some AV Exceptions Stack.
In previous version 15.2.42 delphi 11 i have not AV. This happens in production when there are many users connected. In standalone mode o in testing isapi i can't detect AV with fastmm with fulldebug mode active. In my test isapi i can't detect memory leak or av.
Thank you for any help
Andrea
Hi, yes, I got your call stack.

I need a few more information from you:

what does this event handler do? BSINSERIMENTO.DoOnAsyncClick
(12-01-2021, 03:07 AM)Alexandre Machado Wrote: [ -> ]Hi, yes, I got your call stack.

I need a few more information from you:

what does this event handler do? BSINSERIMENTO.DoOnAsyncClick

Hi Alexandre,

BSInserimento.DoOnAsyncClick is an AsynClick of IWBSDROPDOWN. In this event is called this function

ShowForm(WebApplication,TBSInserimento,True);

Definition : function ShowForm(AWebApplication: TIWApplication; AFormClass: TIWAppFormClass; AReleaseCurrent: Boolean = False; ReCreate : boolean = False ): TIWAppForm;

Implementation
function ShowForm(AWebApplication: TIWApplication; AFormClass: TIWAppFormClass; AReleaseCurrent: Boolean; ReCreate : boolean): TIWAppForm;
var
  LActiveForm: TComponent;
begin
  Result := nil;
  if not Assigned(AFormClass) then
  begin
    Exit;
  end;

  // If desired form is already active form there's no need to do anything
  LActiveForm := AWebApplication.ActiveForm;
  if Assigned(LActiveForm) and (AFormClass = LActiveForm.ClassType) and (ReCreate = False)  then
  begin
    Exit(LActiveForm as TIWAppForm);
  end;

  // Check if desired form already exists. If so, use it, otherwise create a new one
  Result := AWebApplication.FindFormByClassName(AFormClass.ClassName) as TIWAppForm;
  if not Assigned(Result) then
  begin
    Result := AFormClass.Create(AWebApplication);
    Result.Tag := 1;//indicatore che mi dice che la form è stata creata
  end
  else
  begin
    if ReCreate = True then //ricreo la form se necessario
    begin
      Result := AFormClass.Create(AWebApplication);
      Result.Tag := 1;
    end
    else
      Result.Tag := 2;
  end;

  // Show the form. Optionally destroy the current active form
  if Assigned(Result) then
  begin
    Result.Show;
    if AReleaseCurrent and Assigned(LActiveForm) then
    begin
      TIWAppForm(LActiveForm).Release;
    end;
  end;
end;

Thank you
Andrea
Please install IW 15.2.48 released today. I expect it to fix the issue you are having.

Cheers
(12-01-2021, 08:13 AM)Alexandre Machado Wrote: [ -> ]Please install IW 15.2.48 released today. I expect it to fix the issue you are having.

Cheers

Ok Thank you Alexandre.
Andrea