Jump to content

Petzy

Members
  • Posts

    34
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Petzy

  1. 12 hours ago, Frederick said:

    My concurrent user count is about 10. The UniGUI application is not used frequently by users because it is just for downloading program patches. I am using VPS S and so far, I have not encountered downtime.

    Contabo was recommended by some users here and based on my research, its plans represent value for money compared to practically every other VPS provider I have looked at. This is based on VPS specifications. When I started with them, they only had servers in Germany. Now, they have servers in USA, UK and Singapore.

    My only concern is the long support response time. It can take Contabo 1 to 2 days to respond to a support email request. You can call them however, Since I have not had issues with the VPS so far, I am willing to live with this. Regardless of where your VPS is hosted, all support is still handled by their Germany office.

    Thank you for sharing!

    7 hours ago, TimKieu said:

    @PetzLet me share some things I know about the great uniGui eco systems:

    Question 1: Type of Server

    Windows Server Core is a perfect platform but license cost is a big thing.

    Linux Intel is possible but consider other packages, e.g FastMM4/4-VX/5.

    Linux Arm is not available due to Embarcadero Delphi v11. 

    Question 2: Development

    Yes, you can do that way. But you need a development Linux to debug on-the-go (Centos/Ubuntu/Oracle..)

    Question 3: HyperServer

    Yes, Linux Intel x64 is ready for HyperServer. Or you can use nginx, or cloudflare. 

    Question 5: Database heavy application

    FireDac can handle concurrent DB clients. But you can consider using caches other streaming stuffs like Kafka to break through any bottle-neck with heavy DB, or use NoSQL (Mongodb, Firebase, DynamoDB..).

    Or you can add API-tier to work with heavy DB app: prefer Java Light-4j (rest/kafka..) or Spring-boot. Due to Indy limit, Delphi API restful server is not high performance.

    The total cost of ownership x time = Delphi license + UniGUI license + other libs + less-code Man-power still << opensource + full-code Man-power.

    You should buy UniGUi complete license right away and do all your projects fastest!

    Awesome share, thank you!

  2. 42 minutes ago, Frederick said:

    Why do you not recommend Contabo for production? Aside from their slow support response times, their VPS has not gone done at all (touch wood) since I started using them 2 years ago.

    How many concurrent users in your project and how is that working so far with Contabo? Care to add any details to my question, since you use Contabo for production? It would help me

  3. 7 hours ago, markokas said:

    I do not recommend using Contabo VPS for production, if you want stable resources is a good option dedicated server. Do not repeat my mistake.

    It is good to know what the first letter VPS means :)

    br, Marko.

     

    thank you for your post but maybe detail a bit. Most people say it's fine for production. A lot of people use it, uniGUI and other software as well.

    What exactly is the problem, if you'd care to explain?

  4. ** an answer to any of the question would help **

     

    Hello,

    It's been a few years now since I worked with uniGUI.

    I have an offer for a long-term single project that I would get off the ground and then manage and I'm thinking to buy a uniGUI Complete license for it and do it in that.

    To that end, since I haven't kept up with updates, I'd appreciate it if you guys can help me out with some answers to my question, so I can reach a decision faster:

    Question 1: Type of Server

    Windows or Linux? Assuming that the Windows extra cost (license) isn't an issue for me, would you recommend I go with that or rather with Linux? What is your experience/recommendation and why? Does uniGUI still work best under Windows or has it caught up to Linux and there's no difference (other than Windows license cost)?

    Question 2: Development

    Can I develop uniGUI on a Windows machine as a Standalone, after that - add Linux as the platform, set Release and compile it to that and then run that uniGUI on a Linux server? Assuming I'm gonna buy the Linux hosting and not the Windows one

    Question 3: HyperServer

    Can I use it if I choose a Linux server and not a Windows server? Any important differences?

    Question 4: Hosting provider

    I'll be going with Contabo most likely. VPS M I'm thinking - Windows or Linux. (so 6vCPU Cores, 16 GB RAM, 200 GB NVMe)

    Would that be enough to handle, say, 100 concurrent users? What would the concurrent user limit be to that Contabo VPS M, in your experience, assuming good development practices and such?

    Question 5: Database heavy application

    I'll be hooking uniGUI up to a few databases, either/or MySQL or PostgreSQL.

    Aside from the obvious (indexes, optimized query's, etc) any particular advice, from your experience so far, in handling the mentioned number of concurrent users?

    ----

    Any info/opinions from own experience would help me speed up my decision making on the matter so I appreciate any answers. Thanks!

     

  5. On 5/10/2022 at 2:08 PM, Farshad Mohajeri said:

    These are the Windows OS "Handle" resources. Handles are used in various resource types. For example each open file consumes one OS "Handle".

    It is monitored to make sure there are no Handle leaks. As an example, if you open a file but forget to close it, this action will leak one handle. 

    so in the screenshot he provided he has currently 72 leaks with a peak of 76 above the normal?

  6. 13 hours ago, Sherzod said:

    Please specify again what type of chart are you using?

    I'm using several.

    Line, Bar, and Pie

    does the code differ by each one?

    The code I posted, taken from your examples, works for 1 series - if I have 2 - the second one doesn't work.

    I tried adding [1] and 'B' to another piece of the same code directly under that one and it still doesn't work

    I must be doing something wrong ^_^ - that's why a code example on how to do it for 2 series in a chart (Line, Bar or Pie) would help

  7. On 4/28/2020 at 9:16 PM, 1938 said:

    Looking for a way to change the grid cell border/outline color.  Canvas and Brush are not exposed in the attribs of the on draw cell event.  Looked at the demos and all of the cell borders are default. StringGrid and DBGrid.

    -Scott

     

     

     

    On 5/3/2020 at 5:07 PM, gerhardhziegler said:

    Hello, did you meanwhile find a solution? Regard

    procedure TsomenameForm.someDBGridDrawColumnCell(Sender: TObject; ACol, ARow: Integer; Column: TUniDBGridColumn; Attribs: TUniCellAttribs);
    begin
    
    if someDBGrid.ColumnByName('someColumnName').Field.Value > someDBGrid.ColumnByName('someOtherColumnName).Field.Value then
      begin
         if Column.FieldName='someColumnName' then
           Attribs.Style.Style := 'border: 2px dotted red';
         if Column.FieldName='someOtherColumnName' then
           Attribs.Style.Style := 'border: 2px dotted yellow';
      end;
    end;

    I use this to compare values from two different columns in the DBGrid and if it matches said condition, add a border around the cell. Maybe this will help?

    Play with the colors, pixels, dotted or other options etc.

    You can obviously adjust the code to your liking / conditions.

    • Like 2
  8. On 6/23/2020 at 8:14 AM, Sherzod said:

    Hello,

    First of all, specify the version that you are using so that we know.

    And please specify which edition are you using?

    Trial, 1531. I'm trying to build and test out everything I'm planning before buying a license.

    How would that code above look like for 2 series in a Chart? Could you provide a code example?

  9. Using the following code (that I got from a thread here on the forum) to show a tooltip window when I hover the mouse click over the mark on the chart:

    UniChart1 -> UniEvents -> Ext.chart.CartesianChart [chart] -> chart.beforeInit

    function chart.beforeInit(sender, config)
    {
        config.series[0].tooltip = {
            trackMouse: false,
            width: 120,
            renderer: function(tip, item) {
                tip.setTitle(item.get('LL'));
                tip.update('Suma: ' + item.get('A'));
            }
        }
    }


    Works well.

    However, it only works with 1 Series added to the UniChart.

    How can I make it work with the 2nd Series or a 3rd series (and so on) added to the UniChart?

  10. 7 minutes ago, Sherzod said:

    Please create a test case and give a download link, we will try to analyze.

    I just lost 8 hrs on this thing alone. Why do you need a test case so I can waste another hr?

    Open up Delphi - Create the unigui project - Add another application form to the project - add a button to the main form, in the button onclick event put:

    anotherForm.ShowModal();

    Set the other form Height to 950 and Width to 2550

    Open the other form - drop a UniMainMenu to it - now drop an UniPageControl and set it to align to Client - add a tabsheet to the pagecontrol

    On the tabsheet - drop 4 UniChart's - 1 in each corner of the tabsheet

    Run the program. Do you have scrollbars or not? You shouldn't have any - it your monitor resolution is lower than 950x2550 h/w the TabSheet and its contents will appear cut after the middle and you won't see the 2x UniCharts from the bottom right and upper right corners

    Set autoscroll. Run it again. No scrollbars? Welcome to my world.

    Not even the demos are helpful as they are all made intentionally small and don't scale or scroll apropriately. Not even using a ScrollBox - that just makes it even worse, even in the demo.

  11. Hi, 

    I have the following design:

    MainForm has a button.

    I click that button and it brings up another Form as ShowModal()

    That other form contains the following: an UniMainMenu, an UniPageControl, and TabSheets.

    Form size is set as Height 950 and Width 2550

    UniPageControl is set to Align to Client.

    If I set AutoScroll on the form - NO scroll bars show.

    Why is this not working?

    The entire form locks on to my resolution, which is less than 2550 width and it's driving me crazy. It should stay as I've set it, 2550 width and 950 height for the form - and should have the scrollbars. At the moment its not and due to that its not showing everything I have put into the TabSheets at design time.

    If I set the UniPageControl to Align none or custom and just drag it across the form height and width at design time the scroll bars appear but they aren't of the desired lenghts.

    Once I set the UniPageControl back to align Client or any other align - then the Range properties for the scrolls bars on the form default to 0 and no scroll bar appears. If I input the range manually, it unchecks AutoScroll. If I check back AutoScroll it makes the Range 0 again. Smh.

    I'm using the trial edition

  12. 9 minutes ago, Sherzod said:

    Hi,

    Please adjust your forum email address first:

     

    ?

    Found an example meanwhile:

    procedure TMainForm.UniFormShow(Sender: TObject);
    var
    Frame1: TFrame1;
    begin
      Frame1 := TFrame1.Create(self);
      Frame1.Align := alClient;
      Frame1.Parent := MainForm;
    end;

    It seems to work fine
     

  13. Hi,

    How do I show/add/insert/embed (whatever the term is) a specific UniFrame on the MainForm based on user from database that logged in prior, using the Login form?

    The Login form SQL and user choosing I've got that done.

    I log in and it shows me the empty (mfpage set) main form. Now I'd like the MainForm to display the contents of a specific Frame, based on the user that logged in. (frame aligned to client of MainForm)

    How can I do that? 

    I keep finding examples like "Frame1.Parent.." and they don't work. 

    Could anyone provide a simple example of how to implement this? I haven't found anything in the demo's

  14. Hello,

    Is there any method to make the server supply a different MainForm based on the users that are logging in?

    I'd like to separate users' MainForm content based on the type of the user (admin or non-admin)

    I can do that by having the non-admin users automatically see another, Application form, other than the MainForm. The problem with that is that the Form would still have a small border and it wouldn't be in full mfpage mode like the MainForm is if I select that from ServerModule. If I'm forced to use this approach, can I then have the Form in question display as the MainForm does when you select mfpage from ServerModule?

  15. Hey there,

     

    I've added the method from inside the Google Map demo to my application.

     

    I've deployed the application as an ISAPI module and I'm launching it inside my IIS 10 on Windows 10.

     

    All well and dandy. On my main form I have a button called show map which when I click it opens up a new form (show modal) and displays the google map (identical functionality to that of Google Map demo from you guys).

     

    I close the new form window then if I click the show map button again everything is dead in the form. Controls are visible but map doesn't load, nothing happens. I have to literally close everything and restart it so it can get back to normal.

     

    Seems something related to the session, I can't click the button, view the map, close the form that displays the map then click the button to show the form that displays the map again - 2nd time won't display anything. Works only 1 time.

     

    What might be the issue? I'm puzzled as log isn't showing up any problems and the same thing doesn't happen in the demo, which is weird.

  16. *** EDITED ***

     

    Moved to IIS (installed it on my Windows 10) and managed to get it working.

    Whole problem was I had to edit the handler mapping again (for isapi .dll) and specifically add the .dll in the executable field.

    The tutorials don't cover that.

     

    It's working now. Thanks delphidude 

  17. The reason for the salt is that somebody could realize that you hashed the pw,

    and then try to do the same thing to crack it, by hashing pw suggestions using

    the typical  hashing algos, but if you also have a salt stored in the db, which is

    combined with the hashed pw to re-hash it x times, then things get a notch harder

    to crack, as there is another element in the mix.

     

    If you then store the salt in the cookie, the point of the salt is gone,

    as it could theoretically be picked up and used in the cracking process.

    The salt should not be transferred over the net openly (like without SSL),

    for maximum security.

     

    thanks, appreciate the answer. Helped me implement everything.

  18. Thanks for the help Tokay, implemented successfully and it works like a charm!

     

    I'll come back with a demo attachment after I finish the project - just so anyone reading in the future and needing this can have a working example.

  19.  

    Hi! I do it in my app in that way:

    in the real main form do check, does the user have admin priveleges, and if no, I hide this form and show other one, user's, form:

    procedure TForm1.UniFormShow(Sender: TObject);
    begin
     if Users.IsPermitted(UniMainModule.LoggedUserHash, 'CAN_ADMIN') then
      NeedSetMainForm := True
     else
     begin
      Hide;
      UniForm14.Show;
     end;
    end;
    

    as I know, all works fine.

     

     

    Hi, thanks for the code and idea.

     

    Could you clarify your code further?

     

    As I understand it - your other "MainForm" - the not admin user is called UniForm14

    Your actual MainForm, the one admin's use, is called Form1

     

    What is "NeedSetMainForm" defined as?

    What is "Users" (Users.IsPermitted) defined as?

     

    I'm guessing UniMainModule.LoggedUserHash is a string variable?

     

    Where have you chosen to do the check in the real main form?

     

    Appreciate it

×
×
  • Create New...