Jump to content
uniGUI Discussion Forums

Mehmet Emin

uniGUI Subscriber
  • Content Count

  • Joined

  • Last visited

  • Days Won


Mehmet Emin last won the day on May 18

Mehmet Emin had the most liked content!

Community Reputation

9 Neutral

About Mehmet Emin

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. My web app has only touch version/mobile forms so I don't need to switch to mobile platform with /m parameter added by uniGUI and redirection. I already tried setting autoplatformswitch to "off" on uniservermodule but does not help. How can I avoid this "/m" url path added? Thanks in advance
  2. Mehmet Emin

    Thread içerisinden Veritabanı Değişiklik Kontrolü

    Merhaba, uniGUI ile başlarken, eğer daha önce göz atmadıysanız geliştirici klavuzunu tümü ile incelemenizi öneririm. Database bağlantıları ve farklı thread lerin çakışmaması için MainForm, MainModule, ServerModule gibi nesnelere nasıl erişileceği ve diğer konular çok iyi açıklanmış durumda. Uygulamanızda birden çok form olacaksa veritabanı nesnesini MainModule üzerine yerleştirin. Query nesnesini form ya da MainModule üzerine yerleştirin. Bu arada ServerModule üzerinde rahatça thread başlatabilirsiniz sıkıntı olmaz ben sürekli kullanıyorum. procedure TUniServerModule.UniGUIServerModuleCreate(Sender: TObject); içinden thread inizi başlatın FAPIRefreshThread := TAPIRefreshThread.Create(True); FAPIRefreshThread.FreeOnTerminate := True; FAPIRefreshThread.Start; Kapanırlen de öldürün gitsin. procedure TUniServerModule.UniGUIServerModuleBeforeShutdown(Sender: TObject); begin if Assigned(FAPIRefreshThread) then begin FAPIRefreshThread.Terminate; Log.Debug('APIRefreshThread thread terminated', LOG_MAIN); end; Kolay gelsin. ** Diğer sorunuza gelince 200 ekrana aynı data mı akacak yoksa hepsinin kendi sorgusu ayrı mı anlayamadığım için net bir cevap veremeyeceğim.
  3. Mehmet Emin

    Pooling, Thread ?

    Hi Abaksoft Before you get the authorised answer of Farshad I would like share my opinion. The method to place the database session component on ServerModule and the database connection component on the MainModule is the way to go because uniGUI handles user requests in a multi-threaded way and 99% of SQL components in the market requires their connection component to be used by one thread at a time. This architecture of uniGUI is fine as long as we get the resources when we need them and release them when the job done. For example FireDAC has connection pooling and offlining option. If you use FireDAC's offlining option you don't have to leave your connection open (you dont have to allocate it to one user during uniGUI session). As you finish getting your data to your datasets during handling client ajax calls just call the TFDCustomConnection.Offline method. This way you will close the connection resource and give it back to connection pool. Your datasets will be operational even after offlining. When you want to save changes etc. (when user saves) you can call Online method or there is implicit automatic activation. So this offlining option is critically important to share connections between uniGUI sessions.
  4. Mehmet Emin

    resize column of TUnimDBListGrid

    Most of the development with uniGUI is many many times faster compared to other tools but sometimes I stuck with this type of basic issues. For the past hours I have been searching the forum just to resize a column of TUnimDBListGrid as client side resize events. I have 2 columns and I want to flex first one so that it is maximized and second column to have minWidth. Thanks in advance
  5. Mehmet Emin

    using uniGUI frame on mobile form

    Can I safely use uniGUI frame a mobile form? Is seems to have properties that mobile forms has not (like layout options form desktop components.) Thanks
  6. Mehmet Emin

    Console error messages

    I guess I know the reason for the first one only. May be it has to do with uniGUI back button warning (just a guess)
  7. Mehmet Emin

    Console error messages

    Why I am getting these console error messages? I just realized and it is a very simple mobile form with 3 buttons. Thanks
  8. Mehmet Emin

    UniGUI Theme Pack Update Package (-x30)

    +1 for mobile
  9. Mehmet Emin

    Update to UniGUI Add-on Theme Pack 1

    Gerhard I am using your themes. And would like to purchase mobile themes. Are they available?
  10. Mehmet Emin

    how to generate QRCode with unigui ?

    Here is my unigui qr code generator You will need DelphiZXingQRCode though procedure TUniMainModule.CreateTicketQRCode(const ATicketId, ATicketUrl: string); procedure ResizeBitmap(Bitmap: TBitmap; const NewWidth, NewHeight: integer); var buffer: TBitmap; begin buffer := TBitmap.Create; try buffer.SetSize(NewWidth, NewHeight); buffer.Canvas.StretchDraw(Rect(0, 0, NewWidth, NewHeight), Bitmap); Bitmap.SetSize(NewWidth, NewHeight); Bitmap.Canvas.Draw(0, 0, buffer); finally buffer.Free; end; end; var QRCodeBitmap: TBitmap; QRCode: TDelphiZXingQRCode; Row, Column: Integer; PNG: TPNGImage; begin if UniServerModule.ConfigINI.QRCodeSaveDir = '' then Exit; QRCodeBitmap := nil; QRCode := nil; PNG := nil; try QRCodeBitmap := TBitmap.Create; QRCode := TDelphiZXingQRCode.Create; QRCode.Data := ATicketUrl; QRCodeBitmap.SetSize(QRCode.Rows, QRCode.Columns); for Row := 0 to QRCode.Rows - 1 do begin for Column := 0 to QRCode.Columns - 1 do begin if (QRCode.IsBlack[Row, Column]) then begin QRCodeBitmap.Canvas.Pixels[Column, Row] := clBlack; end else begin QRCodeBitmap.Canvas.Pixels[Column, Row] := clWhite; end; end; end; ResizeBitmap(QRCodeBitmap, QRCode.Rows*5, QRCode.Columns*5); PNG := TPNGImage.Create; PNG.Assign(QRCodeBitmap); PNG.SaveToFile(TPath.Combine(UniServerModule.ConfigINI.QRCodeSaveDir, LowerCase(ATicketId)+'.png')); finally QRCodeBitmap.Free; QRCode.Free; PNG.Free; end; end;
  11. Mehmet Emin

    centralized exceptions

    Since there is no source code available for TUniGUISession and no documentation of this property except a usage in a demo for UniGUIAuxExceptionHandler with Eureka I looked at that code and thougth that if Farshad Mohajeri put this line here there should be a reason. I could not see a difference in my case but I keep it there anyway. I think it is there to disable web user feed with dumps etc. in case something goes wrong (I dont see any different).
  12. Mehmet Emin

    Wrap caption of Tunimcheckbox

    It worked thank you
  13. Mehmet Emin

    centralized exceptions

    Also if you decide to use madExcept for bug reporting you can find the below code useful. procedure TUniServerModule.UniGUIServerModuleException( Sender: TUniGUIMainModule; AException: Exception; var Handled: Boolean); var CurSession : TUniGUISession; begin if not (AException is EAbort) then begin if not (AException is UniErrorException) and not (AException is EUniSessionException) then begin CurSession := UniSession; if Assigned(CurSession) then CurSession.AlertDisabled := True; try AutoSaveBugReport(CreateBugReport(etNormal, nil, nil, 0, 0, 0, nil, false)); Handled := True; finally if Assigned(CurSession) then CurSession.AlertDisabled := False; end; end; end; end;
  14. Mehmet Emin

    Wrap caption of Tunimcheckbox

    How can I wrap the caption of Tunimcheckbox. I dont want to use <br> in the caption. I need to wrap it based on available size. Thanks
  15. Mehmet Emin

    Problems with SSL from godaddy

    You are getting this error message SSL.SSLOptions.Method := sslvTLSv1_2; SSL.SSLOptions.SSLVersions := [sslvTLSv1_2]; Although I recommend above dont set them for now. They are more secure but you may get some errors while debugging and client connects. just ignore of this exception type.