Jump to content
uniGUI Discussion Forums


uniGUI Subscriber
  • Content Count

  • Joined

  • Last visited

  • Days Won


andyhill last won the day on November 30 2017

andyhill had the most liked content!

Community Reputation

8 Neutral

About andyhill

  • Rank
    Advanced Member

Profile Information

  • Gender
  • Location
    Melbourne Australia

Recent Profile Visitors

588 profile views
  1. andyhill

    Delphi and Linux

    Ron, I like the look at your old Rifer Pro, I am using Spooky2 (on Scalar twin generators) at the moment, have you worked with Spooky2 Scalar ? Andy
  2. andyhill

    invalid session or session timeout default page

    I have found that StandAlone MOBILE webapps do not honour ServerModule timings so as a work around I catch the MainModule Session TimeOut Event and extend it by 3 minutes (forever).
  3. andyhill

    Image Maps

    I do. Simply put, Human Image provides 100 odd areas of interest (not shown) where user can select and retrieve specific information:- Desktop (Hover / Click), Mobile (tap) - works as intended independent of zoom but hopelessly useless if rotated (needs separate vertical and horizontal images due to viewport issues).
  4. andyhill

    Сlosure of the session

    This is what I do on Server Shut Down (UniGUIServerModuleBeforeShutdown), modify my code and use elsewhere by filtering the SessionID in question. Remember that Browsers still open (UniGUIMainModuleSessionTimeout) will force the Server to try and reconnect, so after running my code below on shutdown and subsequent restart you will still get:- "EUniSessionException : Invalid session or session Timeout. (Session not found: ..." error messages in the Server Log until the Browser is closed -or- the session in question is let go of by the Browser. procedure TUniServerModule.UniGUIServerModuleBeforeShutdown(Sender: TObject); var I, p: Integer; S: TUniGUISessions; U: TUniGUISession; begin S:= UniServerModule.SessionManager.Sessions; S.Lock; try for I:= 0 to S.SessionList.Count - 1 do begin U:= S.SessionList; if U.UniMainModule <> nil then begin try U.ReleaseSession; U.Terminate('Closed !'); except end; end; // nil end; // for except end; S.Unlock; end; procedure TUniMainModule.UniGUIMainModuleSessionTimeout(ASession: TObject; var ExtendTimeOut: Integer); var Cmp: TComponent; s, s0, s1, s2: String; begin Inc(SessionMinutesCounter); if UniMainModule.TracePulse = True then begin s:= 'http'; if SecureFlag = True then begin s:= 'HTTPS'; end; DateTimeToString(formattedDateTime, 'dd/mm/yyyy hh:nn:ss.z', Now()); s0:= formattedDateTime; if EditedBy <> '' then begin s0:= EditedBy + ' ' + formattedDateTime; end; ////////////////////////////////////////////////////////////////////////////// try Cmp:= TUniGUIApplication(UniApplication).UniSession.CurrentComponent; if Assigned(Cmp) then begin s1:= Cmp.Name + ' (' + Cmp.ClassName + ')'; if Cmp is TUniControl then s2:= TUniControl(Cmp).OwnerForm.Name else if Cmp is TUniComponent then s2:= TUniComponent(Cmp).OwnerForm.Name else s2:= ''; uniServerModule.Logger.AddLog('ANDY-M', s+' "Session.TimeOut ('+s0+', '+IntToStr(SessionMinutesCounter)+' mins, SessionID:' + SessionIDstr + ', ' + UniMainModule.EditedBy + ', Component ' + s1 + ', Extended 3mins)"'); end else begin uniServerModule.Logger.AddLog('ANDY-M', s+' "Session.TimeOut ('+s0+', '+IntToStr(SessionMinutesCounter)+' mins, SessionID:' + SessionIDstr + ', ' + UniMainModule.EditedBy + ', Extended 3mins)"'); end; except end; end; // TracePulse ////////////////////////////////////////////////////////////////////////////// ExtendTimeOut:= (1000 * 180); // 3mins end;
  5. Not only does TUnimDBListGrid Mobile childdoubletap event not fire BUT it takes out UnimDBListGridDblClick event if coded !
  6. Where is all of the TUnimDBListGrid Mobile parameters (Item Info) that was Double Clicked ??? UnimDBListGridDblClick(Sender: TObject);
  7. Please advise how to catch Double Tap on TUnimDBListGrid Mobile (there is no itemtap event) ?
  8. andyhill

    Screen examples of you're application designs

    I used Sherzod's Image Map concepts (see Components and Code Samples) and did get Hot Zones working on Mobile BUT it is slow AND when the device is rotated (Horizontal) the viewport cuts off the full image no matter what I do and Sherzod has not responded to my requests for help.
  9. andyhill

    Image Maps

    OK now, even though I cleared the cache I still had issues so I cleared router - testing ...
  10. andyhill

    Image Maps

    Fails to fire events in Desktop, fails to load in Mobile iOS 13 ?
  11. andyhill

    Image Maps

    Sherzod, how are we going with the Mobile Implementation ?
  12. My code below walks through ALL MainModules fetching their MyUserName's - All Good. Problem, when sessions are no longer active (closed down [browser gone]) they still show up as active connected sessions. How can I determine if a session in the list has died ??? function TUniServerModule.GetSessionLoggedInUserNames(): String; var I: Integer; S: TUniGUISessions; U: TUniGUISession; begin Result:= ''; S:= UniServerModule.SessionManager.Sessions; S.Lock; try SetLength(ASessionList, S.SessionList.Count); for I:= 0 to S.SessionList.Count - 1 do begin U:= S.SessionList; ASessionList.ASessionId:= U.SessionId; ASessionList.AIP:= U.RemoteIP; ASessionList.ALastTime:= U.LastTimeStamp; if U.UniMainModule <> nil then begin if U.Active = True then begin // Need Dead Session Logic Here if I = 0 then begin Result:= (U.UniMainModule as TUniMainModule).MyUserName; end else begin Result:= Result + ', ' + (U.UniMainModule as TUniMainModule).MyUserName; end; end; end; end; finally S.Unlock; end; end;
  13. andyhill

    Mobile TUnimMemo Move Cursor To End at Runtime

    Locks up Safari ???
  14. andyhill

    Image Maps

    Any progress ?
  15. andyhill

    Mobile TUnimMemo Move Cursor To End at Runtime

    Programmatically move cursor to last char of last row (auto-scroll if necessary) of Mobile Memo at runtime