Wilton Ergon Posted November 24, 2021 Share Posted November 24, 2021 in some cases, this error is generated when creating a frame inside a pagecontrol, I've never been able to get this error locally in development, but it always appears in my error log that I capture in the application, I can't understand why this happens in a completely random way. I'm using this event to catch the error, and a function created by farshad to catch the error and save it to a table. procedure TUniServerModule.UniGUIServerModuleException( Sender: TUniGUIMainModule; AException: Exception; var Handled: Boolean); var s, Msg: String; p1, p2, p3: Integer; begin try if Assigned(Sender) then begin try (sender as TUniMainModule).LogException(AException); except s:= 'debug'; end; Handled:= True; end else begin if AException <> nil then begin Msg:= AException.Message; p1 := Pos('Invalid URI:', Msg); p2 := Pos('EIdOSSLAcceptError :', Msg); p3 := Pos('Session not found:', Msg); // EUniSessionException : Invalid session or session Timeout. (Session not found: if (p1+p2+p3) > 0 then begin Handled:= True; end else begin Logger.AddLog('ERROR_GEP_WEB', 'EXCEPTION - ' + 'UnAssigned MainModule "'+Msg+'"'); Handled:= True; end; end else begin Handled:= True; end; end; except end; end; in mainmodule... procedure Tunimainmodule.LogException(E: Exception); var Cmp: TComponent; s1, s2, Msg: String; begin S1:=''; S2:=''; try if E <> nil then begin Msg:= E.Message; if copy(msg,1,1)<>'*' then Begin Cmp:= TUniGUIApplication(UniApplication).UniSession.CurrentComponent; if Assigned(Cmp) then begin if Cmp is TUniControl then s2:= TUniControl(Cmp).OwnerForm.Name else if Cmp is TUniComponent then s2:= TUniComponent(Cmp).OwnerForm.Name else s2:= ''; //this function save in database error! SaveLogError(Msg, s2+' - '+cmp.Name+' - ' +Cmp.ClassName, CaptionGuiaAtualPrincipal); end else begin SaveLogError(Msg, 'ERRO NAO IDENTIFICADO',CaptionGuiaAtualPrincipal); end; End; except end; end; my function create new form... procedure TFrmPrincipal.CriaFormulario(NomeForm,Titulo:string;BotaoFechar:Boolean); Var Ts : TUniTabSheet; FrC : TUniFrameClass; Fr : TUniFrame; i : Integer; fname,TsName:String; Begin Try For I := 0 to pgControlMain.PageCount-1 do Begin if pgControlMain.Pages[I].Caption=Titulo then Begin pgControlMain.ActivePageIndex :=I; Exit; End; End; if pgControlMain.PageCount>5 then FecharAba(1); TsName:='tab_'+SomenteLetras_e_Numeros(GetGuid); fname :=NomeForm+SomenteLetras_e_Numeros(GetGuid); Ts := TUniTabSheet.Create(self); Ts.PageControl := pgControlMain; Ts.Name := TsName; Ts.Closable := BotaoFechar; Ts.Caption := Titulo; Ts.OnClose := tabStartClose; pgControlMain.ActivePage :=Ts; FrC := TUniFrameClass(FindClass(NomeForm)); Fr := FrC.Create(self); //here before I used TS as form owner Fr.Name := fname; Fr.Align := alClient; Fr.Parent := Ts; finally BEGIN HideMask; UniSession.Synchronize; END; end; end; procedure TFrmPrincipal.tabStartClose(Sender: TObject; var AllowClose: Boolean); var zForm: TuniFrame; begin //destroy frame try zForm := tunitabsheet(sender).controls[0] as TuniFrame; freeandnil(zform); except end; end; Link to comment Share on other sites More sharing options...
Wilton Ergon Posted November 25, 2021 Author Share Posted November 25, 2021 up Link to comment Share on other sites More sharing options...
Hayri ASLAN Posted November 28, 2021 Share Posted November 28, 2021 On 11/25/2021 at 3:34 PM, wilton_rad said: up Hello Please create a test case so we can work on it. Link to comment Share on other sites More sharing options...
Wilton Ergon Posted November 29, 2021 Author Share Posted November 29, 2021 there is no way to create such a test case, as already explained, the function is called thousands of times a day, and randomly in some cases, this message is displayed, in totally different forms, when ending the session and trying the form again already and opened without problems, if I knew what causes this error to occur, I could try to find something else in the system that could generate the error. 1 Link to comment Share on other sites More sharing options...
eduardosuruagy Posted March 24, 2022 Share Posted March 24, 2022 On 29/11/2021 at 14:06, Wilton Ergon said: não há como criar tal caso de teste, como já explicado, a função é chamada milhares de vezes ao dia, e aleatoriamente em alguns casos, essa mensagem é exibida, de formas totalmente diferentes, ao encerrar a sessão e tentar o formulário novamente já e aberto sem problemas, se eu soubesse o que causa esse erro, poderia tentar encontrar outra coisa no sistema que pudesse gerar o erro. I have the same problem Link to comment Share on other sites More sharing options...
eduardosuruagy Posted March 31, 2022 Share Posted March 31, 2022 ??? Link to comment Share on other sites More sharing options...
Wilton Ergon Posted April 4, 2022 Author Share Posted April 4, 2022 anyone else with this problem? Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now