Jump to content
uniGUI Discussion Forums

mhmda

uniGUI Subscriber
  • Content Count

    918
  • Joined

  • Last visited

  • Days Won

    96

Posts posted by mhmda


  1. Hello,

    1. Use Aligment in Client side, DON'T use aligment in server side !

    2. Don't use the 'aligment' property (as classic vcl app.)

    3. Don't use UnimFormScreenResize event, just waste of time

    4. use Layouts to achieve responsive behavior

     

    If you need further help, you may cointact me in skype or whatsapp.


  2. VPS mean shared resources with other users.

    We use contabo services for years and recently we purchased a dedicated server with 500 GB SSD and 4 TB secondary H.D we also purchased a RAID hardawre to backup primary SSD at real time in case of failure. We backup our customer data (DB & files) to FTP from contabo and we also backup data to Amazaon s3 account using CloudBerry application.

    • Like 1

  3. We already use that but using a client-side code, you may use Gid->ClientEvents->UniEvents->beforeInit:

     

    config.features=[{
            ftype: 'rowbody',
            getAdditionalData: function(data, idx, record, orig) {
                // Usually you would style the my-body-class in a CSS file
                return {
                    rowBody: '<div style="padding: 1em">' + record.get("desc") + '</div>',
                    rowBodyCls: "my-body-class"
                };
            }
        }];

     

    • Upvote 1

  4. function IsValidEmail(const Value: string): Boolean;
    function CheckAllowed(const s: string): Boolean;
      var i: Integer;
      begin
        Result:= false;
        for i:= 1 to Length(s) do
          if not (s[i] in ['a'..'z',
                           'A'..'Z',
                           '0'..'9',
                           '_',
                           '-',
                           '.']) then Exit;
        Result:= true;
      end;
    var
      i: Integer;
      NamePart, ServerPart: string;
    begin
      Result:= False;
      i:=Pos('@', Value);
      if i=0 then Exit;
      NamePart:=Copy(Value, 1, i-1);
      ServerPart:=Copy(Value, i+1, Length(Value));
      if (Length(NamePart)=0) or ((Length(ServerPart)<5)) then Exit;
      i:=Pos('.', ServerPart);
      if (i=0) or (i>(Length(serverPart)-2)) then Exit;
      Result:= CheckAllowed(NamePart) and CheckAllowed(ServerPart);
    end;

     

    • Like 1
    • Upvote 1

  5. Hi there,

    I check the file type and in some cases I need to delete the copied file but it uses by the unigui app.

    mFileUpload.TargetFolder :=  ServerModule.StartPath+'compsdata\';
    .....
    procedure TfrmAttachFiles.mFileUploadCompleted(Sender: TObject;
    ....
    DestName:=ExtractFileName(AStream.FileName);
    CopyFile(PChar(AStream.FileName), PChar(DestName), False);
    ....
    deletefile(ServerModule.StartPath+'compsdata\'+DestName);//file is used by other process (unigui app in this case)

     

    Any idea? 


  6. The Front-End is Extjs, which creating element in DOM, there is no static html,  your page is SAP (single application page), the framework has it's own layout engine to be cross-device, I don't see any need to use bootstrap. 

×