Jump to content
uniGUI Discussion Forums


Popular Content

Showing content with the highest reputation since 12/04/19 in all areas

  1. 4 points
    Hi I am addressing this post to the MR.Farshad and to the entire UniGUI team. I have read quite a long posts here I will try to keep brief. Guys just don't pay attention to posts like this.There's no point. Keep your track. I think it is right. I have more than 25 years of experience. Mainly with Delphi and I can say that UniGUI is the best thing that has happened for Delphi community since 10-15 years And I'm ready to sign this statement with my both hands. Have a nice day.
  2. 2 points
    Hello, I'm attaching a simple test case, try... 1. To generate coords, I used an online tool: https://www.image-map.net/ 2. UniServerModule.CustomFiles: files/imageMap.css files/imageMap.js mapImage.rar
  3. 1 point
    Comparing uniGUI to TMS web core is compairing apples and oranges. They have only Pascal dialect as common and they target different niches. I am new to uniGUI and only developed two intranet apps with it so far I am very satisfied with the development speed uniGUI offers. I would like to say thank you to the development/support team behind uniGUI for bringing such product to Delphi community.
  4. 1 point
    Sure. during/before first use - FlexCelDllInit when done/to release - FlexCelDllShutdown FlexCelDllInit Method Use this method to initialize FlexCel when encapsulating it in a dll. Note that you don't normally need to call this method, as FlexCel is initialized automatically. But when you are hosting FlexCel inside a dll instead of the main application you need to call this method before calling the methods in the dll. Currently, this method will just initialize GDI+ when running in Windows, because GDI+ can't be initialized from the dll itself. When you use this method, always call FlexCelDllShutdown before closing your app.
  5. 1 point
    Yes, I think this should be added by default. We will add this.
  6. 1 point
    Merhaba, Eğer Application Form kullanırsanız unigui sizin yerinize bu işlemleri yapıyor. Klasik form istiyorsanız yeni form yaratırken çıkan dialogda Free Form seçiniz. Böylece create and Free olaylarını siz yönetebilirsiniz.
  7. 1 point
    Do you want to select a specific (index) color in UniColorPalette?
  8. 1 point
  9. 1 point
    yes and no, i would like a generic method exposed by unigui that catch all click,etc and in this function i could apply a "filter " for log like that : if event = click on the unibutton and if this name is BtnSave in form MyOwnForm then log(....)
  10. 1 point
    Really great ! I think a lot o people didn't realize the potential. Since there is no that much comments about it here. I will make another example using USA maps and publish in a "uniGUI DOES..." series. This is really fantastic. I work with some statistic project relate to demographics/maps and we can produce some nice interfaces mapping figures in such way.
  11. 1 point
    Hello, Sorry for the late reply. Try this: procedure TMainForm.UniFormCreate(Sender: TObject); begin with UniHTMLMemo1 do JSInterface.JSAddListener('initialize', 'function(editor){'+ ' const bodyArea = editor.getEditorBody();'+ ' bodyArea.style["border"] = "1px solid";'+ ' bodyArea.style["border-radius"] = "4px";'+ ' bodyArea.style["padding"] = "12px 10px";'+ ' bodyArea.style["line-height"] = "2";'+ '}' ); end;
  12. 1 point
    Hi All, I have read posts in this topic, and i share my experience and my thought; I have license on Unigui and also on TMS web core (and many other library and components); Goal of TMS web Core is "openess and cross-platform", due to only javascript generated code; it's still young and in constant evolution, now also work in Visual Studio Code; Well, the question is: Why I must use it if I need a "only javascript + HTML5" approach to my applications? I have tested a lot of frameworks and, if I must "rewrite" my apps for the web without Delphi approach (I intend use of datasets, frames, etc...) and I need a separate REST data management I change totally direction and go with Devextreme and pure javascript, due to its UI power (or Infragistic, or Telerik, etc...), no more dependence from Delphi in UI and no more pascal; maybe the data server can be Delphi :-) The truth is that "the magic wand" is the visual IDE, creation wysiwyg of forms and manage of event and property at DESIGN TIME. Infact TMS Web core attract our attention ONLY because it have a visual editor, like the Delphi Edition. Without a visual editor, who use pascal code in Visual Studio code for generate javascript? Ok, It is another solution if I want to approach the standard web: client code + separate remote data management, so stateless and client centric; but I need to worry about sessions, timeouts, and other not visible "variables" of the project, and I need to expose too into client browser. Moreover performance is not the best; With Unigui I take about 2 seconds at runtime for show a form with 300 fields (I develope tax applications, Farshad Known...), 10 seconds with TMS, due that creation object in javascript is not the same of Delphi, the same when you need complex calculation of use of fast complex functions. Sure they optimize it in the future, so I think it is a good product. I will look at evolution. But we have also Unigui that follows Delphi way; visual forms, datasets, events, etc. ALL in ONE perfectly integrated. With a crazy productivity in time development ($$$). Indeed, what we want (and what is missing) is that Unigui have all that we see on modern richfull libraries like Devextreme (for ex.), on Client User Interface, no one dares to question on its Delphi server logic that is PERFECT. This because our customers see only UI, but the real treasure is in the exe (or dll) that manage all, and work worderfully with its session management. So, if I can have DBGrids that have the same power and richness of great Devextreme, very powerful Listview, Lookups, Charts, etcc... without write a lot of javascript client code (all Client features!!!) why I must change UNIGUI? Why I need to change Unigui if all I need is at 95% in Unigui components property and events, with only 5% of my custom javascript client code? (I naturaly don't speek on Delphi server code) Only for obtain a cross platform javascript product, with A LOT of extra work, I think; But now I need powerful Windows (based) applications; maybe linux release give me freedom on server side for cost, when available; Mac (server) is not a problem for me; So I think that Unigui with Equinox full features completed is a powerful tool for my need, thanks the powerful updated components. We need a more attention to forum requests, more responsiveness on bug and primarily on help request about ExtJs interaction and simple client features that Delphi programmer don't known (I don't have experience in ExtJs, I study it gradually on need). Most of times the problem is that we are locked on stupid or little request, easily solvable by an expert on forum or (better) with a new timely release (I am wating for a direct editing in a cell without press Enter, for ex.) but that prevent release of the entire project for months!! So I hope only more powerful components and more attention to user requests, in short time. When all Equinox features are available I Intend to substitute also desktop application with all-in-one project. Because I think that Unigui is, at present, the best web tools for Delphi programmers. Good job to Farshad. (Sorry for my very poor english :-) )
  13. 1 point
    Hi, This config may help you: function beforeInit(sender, config) { config.picker='floated'; }
  14. 1 point
    Нашел решение - ваш ответ в этом посту http://forums.unigui.com/index.php?/topic/9776-descending-treegrid-order/&do=findComment&comment=50778 var me=sender; me.remoteSort=false; me.sort({property:1, direction:"ASC"}); me.grid.getSelectionModel().select(0);
  15. 1 point
    procedure TMainmForm.UnimFormReady(Sender: TObject); begin UnimDBGrid1.JSInterface.JSConfig('width', ['100%'], UnimDBGrid1.Columns[0].JSColumn); end;
  16. 1 point
    Here is quick example: UniDBGrid->Ext Events->ViewReady Event: function viewready(sender, eOpts) { sender.getColumns()[0].renderer = function (value, metadata, record) { myToolTipText = "<table class='tblRecGridRowToolTip'>"+ "<tr class='tdToolTip'>"+ "<td class='tblRecGridRowToolTipTitle'>Reference:</td>"+ "<td class='tblRecGridRowToolTipValue'>5006247</td>"+ "</tr>"+ "<tr class='tdToolTip'>"+ "<td class='tblRecGridRowToolTipTitle'>Debit account:</td>"+ "<td class='tblRecGridRowToolTipValue'>Suppliers account</td>"+ "</tr>"+ "</table>"; metadata.tdAttr = 'data-qclass="dvQtip" data-qtip="' + myToolTipText + '"'; }; MainForm.UniDBGrid1.getView().refresh(); } You may use Xtemplate for you Tool-tip text and from 'record' variable you can extract the fields value.
  17. 1 point
  18. 1 point
    Ok, Then try this: function itemtap(sender, index, target, record, e, eOpts) { var _column=e.target.parentNode.$column || e.target.$column; ajaxRequest(sender, '_cellclick', ["cellindx="+index, "colindx="+_column.getDataIndex()]); } Best regards.
  19. 1 point
    Hi, Sorry, now it's clear,, For now try, can help: UniMemo1 -> ClientEvents -> ExtEvents ... add keydown fn: function keydown(sender, e, eOpts) { if (e.getKey() == e.ENTER) { e.stopPropagation(); } } Best regards.
  20. 1 point
    for overCls UniSession.AddJS(nwbtn.JSName+'.overCls = "btngray-over";');