Jump to content
uniGUI Discussion Forums


Popular Content

Showing content with the highest reputation since 10/13/19 in Posts

  1. 3 points
    A simple example "how to" capture image in desktop format with image feedback and save in temp's folder or load in you dataset field (see comments in code). In Mobile uses the unimFileUpload component. Won't work in IOs/IPhone if the server is not in a https:// connection. www.unigui.com.br-Capture Image.rar
  2. 2 points
    uniGUI DOES Digital Signature 2 (Desktop & Mobile) New version of our example digital signature with RESET button to reset coordinates in case of screen repositioning or factor change (expansion, decrease etc.). This version was is already suitable for Desktop (I'm not sure what anyone want it for, but anyways...) and for mobile. I left the RESET method separately (button) to decide whether to apply to any event or leave it as it is. Improved code and removal of some unnecessary things. JS library updated to the latest version. See the JS code if you want to change the type of writing or color displayed. Enjoy... PS: Please, download problems, DO report it to the uniGUI Staff. I don't have controls over files posted here and I'm, not going to provide alternative links to non-subscribers (or any one) since is here already and working. PS 2: Tested with Chrome and Firefox latest version in Desktop and Mobile. Should not work in IE or Safari (neither bother to test on it). www.unigui.com.br-uniGUI DOES Digital Signature2.rar
  3. 2 points
    Example of digital signature saving (image) for mobile. Great for sales systems where it works as a type of receipt document for goods delivery etc ... www.unigui.com.br-uniGUI DOES Digital Signature.rar
  4. 2 points
    We already have many web apps run for years serving our clients built using Unigui, It is the fastest way to develop a wonderful STABLE web apps.
  5. 1 point
    Demo online: Project: http://3msoft.net/mhmd/UniAnimate.rar
  6. 1 point
    >>>--- END USER LICENSE AGREEMENT ---<<< ... 1. NAMED USER LICENSE A single license of this product is licensed for one seat only. Each developer can install his/her own copy of uniGUI on one or more than one PCs which will be used by him/her only. A single license can not be shared among several developers in same company even if they do not use the product at the same time. For each uniGUI developer in your company you need to obtain a separate license.
  7. 1 point
    Hello, Can you please specify which edition and build of UniGUI are you using?
  8. 1 point
    Perfect. AjaxTimeout is the key. Thank you - UniGUI is an unbelievably clean product. tonyM
  9. 1 point
    Merhaba, Sorunun şu şekilde çözdüm; ServerModule.SessionTimeOut süresini kullanıcıların ekranları ara verdiklerinde kapanması diye çok uzun bir süre olarak belirlemiştim. Bununla birlikte Forma bir timer koyup 1 dk aralıklarla çalışmasını sağlamıştım. Kesin önlem gibi düşünmüştüm halbuki öyle değilmiş. Çözüm; ServerModule.SessionTimeOut := 600000; //(10 DK) Default Değer İyi çalışmalar.
  10. 1 point
    Have you tried to use CreateOrder property for this? Panel1.CreateOrder = 1 Panel2.CreateOrder = 2 Panel3.CreateOrder = 3 ...
  11. 1 point
    uniGUI DOES SPEECH SYNTHESIS Give a voice to your interface ! The standard Windows phrase is getting better and better. The same goes with the voices of Google services. This example I did demonstrates how to implement voice usage in both your desktop and mobile applications. I highly recommend using Chrome (or Firefox) because it already provides internal voices from his network, such as the translator. Works on all newer browsers except IExplorer, (Retired) Opera (Maybe) etc. There are more voices available using Chrome but you can also download more voices and install on your Windows. Visit https://t.me/uniguiBrazil Portuguese. https://t.me/uniguiexpress English PS: all parameters set to default. See the original HTML example to get range values. But I don't think you will need alter it. So, ignore the volume, rate and pitch controls in the example provided here you still can change in the function I created, thou. See source code and original HTML. Note, its pure uniGUI and JS. You don't need uniHTML/URL Frame or original HTML/JS to run it. PS: Next week I'll post uniGUI DOES SPEECH RECOGNITION, stay tuned ! For compatibility and other issues: See https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis www.unigui.com.br-Speech-synthesis.rar
  12. 1 point
    ... grid_items.LayoutAttribs.Columns := 3; // suggested by forum: grid_items.JSInterface.JSAssign('layout.columns', [grid_items.LayoutAttribs.Columns]); grid_items.JSInterface.JSCall('updateLayout', []); ...
  13. 1 point
    .x-css-shadow { box-shadow: none !important; } But it will also affect other forms.
  14. 1 point
    1) Works only in standalone, service mode 2) Tested over ARR proxy (IIS), Nginx 3) Use same port that UniServerModule 4) Enjoy WSEcho.zip P.S. Dont use with HyperServer(HyperService)
  15. 1 point
    Is possible web browsing from server side, so I can navigate to localhost(server) and view results from clients access? THX!
  16. 1 point
  17. 1 point
    Another from the series "All about..." All about a Login Form with a Background video Project Repository for a Initial Login Screen for desktop projects with background video and informative DIV and pause / play button. Adapted example from W3School (http://wwww.w3schools.com). Panel with Gradient in two colors and centralized shade to facilitate the definition of your login controls. Note that it is a borderless LoginForm and properly configured to work. Author: Fred Montier / Cetera Softwares 1- Open your IDE 2- Open the project in the Source folder and compile / execute. 3- Open your browser and go to the default address. 4- EX: http: // localhost: 8077 Future versions like this example and others you will find easily in the portal http://www.unigui.com.br Source code right below... have fun. Projeto24-LoginVideoInBackground.rar
  18. 1 point
    Attached. unit uniDBLookupComboBoxObject; interface uses System.SysUtils, System.Classes, Vcl.Controls, Vcl.Forms, Data.DB, uniGUIBaseClasses, uniGUIClasses, uniMultiItem, uniComboBox, uniDBComboBox, uniDBLookupComboBox, Aurelius.Bind.Dataset, System.Variants, devsul.model.search, Aurelius.Criteria.Linq, Aurelius.Criteria.Base; type TUniDBLookupComboBoxObject = class(TUniDBLookupComboBox) private { Private declarations } FRequired: Boolean; FListSource, FDataSet: TAureliusDataset; FCriteriaListSource: TCriteria; FListValues: TStringList; procedure ExecuteSearch; protected { Protected declarations } FOldUniTriggerEvent: TUniTriggerEvent; FSearch: TSearch; procedure DoSetRemoteValue(AIndex: Integer; Value: string); override; procedure MyTriggerEvent(Sender: TUniCustomComboBox; AButtonId: Integer); procedure LoadCompleted; override; procedure _RemoteQuery(const QueryString: string; Result: TStrings); procedure _GetKeyValue(const Value: string; var KeyValue: Variant); public { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure SetSearch(Search: TSearch); published { Published declarations } property Required: Boolean read FRequired write FRequired default False; end; procedure Register; implementation uses view.search.default, uniGUIApplication, Winapi.Windows; procedure Register; begin RegisterComponents('UniGUI Extension', [TUniDBLookupComboBoxObject]); end; { TUniDBLookupComboBoxObject } constructor TUniDBLookupComboBoxObject.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TUniDBLookupComboBoxObject.Destroy; begin if Assigned(Self.FSearch) then Self.FSearch.Free; if Assigned(Self.FListValues) then Self.FListValues.Free; if Assigned(Self.FCriteriaListSource) then Self.FCriteriaListSource.Free; inherited Destroy; end; procedure TUniDBLookupComboBoxObject.DoSetRemoteValue(AIndex: Integer; Value: string); begin inherited; if (VarIsNull(Self.KeyValue)) and (Assigned(Self.FDataSet)) then Self.FDataSet.EntityFieldByName(String(Self.DataField)).AsObject := nil; end; procedure TUniDBLookupComboBoxObject.ExecuteSearch; begin with TuniFormSearch.Create(UniApplication) do begin try ConfigureSearch(Self.FSearch); ShowModal; if ModalResult = mrOk then begin if Assigned(Selected) then begin Self.FListSource.Close; Self.FListSource.SetSourceObject(Selected); Self.FListSource.Open; if Assigned(Self.FDataSet) then Self.FDataSet.EntityFieldByName(String(Self.DataField)).AsObject := Selected; if Assigned(Self.OnSelect) then Self.OnSelect(Self); end; end; finally Free; end; Self.SetFocus; end; end; procedure TUniDBLookupComboBoxObject.LoadCompleted; begin if Self.Required then Self.ClientEvents.UniEvents.Values['beforeInit'] := 'function beforeInit(sender, config){Ext.apply(sender,{allowBlank:false,msgTarget : ''side''});}'; if Self.Triggers.Count = 0 then begin with Self.Triggers.Add do begin IconCls := 'x-form-search-trigger'; HandleClicks := True; Visible := True; end; end else begin Self.Triggers[0].IconCls := 'x-form-search-trigger'; Self.Triggers[0].HandleClicks := True; Self.Triggers[0].Visible := True; end; Self.FOldUniTriggerEvent := Self.OnTriggerEvent; OnTriggerEvent := Self.MyTriggerEvent; if Self.RemoteQuery then begin FListValues := TStringList.Create; Self.OnRemoteQuery := Self._RemoteQuery; Self.OnGetKeyValue := Self._GetKeyValue; end; inherited; end; procedure TUniDBLookupComboBoxObject.MyTriggerEvent(Sender: TUniCustomComboBox; AButtonId: Integer); begin if AButtonId = 0 then Self.ExecuteSearch; if Assigned(Self.FOldUniTriggerEvent) then Self.FOldUniTriggerEvent(Sender, AButtonId); end; procedure TUniDBLookupComboBoxObject._GetKeyValue(const Value: string; var KeyValue: Variant); var lObj: TObject; lIndex : Integer; begin KeyValue := Null; lObj := nil; if not Value.IsEmpty and not Self.FListSource.IsEmpty then begin if FListValues.Count = 0 then lObj := Self.FListSource.InternalList.Item(0) else begin lIndex := FListValues.IndexOf(Value); if lIndex <> -1 then lObj := Self.FListSource.InternalList.Item(lIndex); end; if Assigned(lObj) then KeyValue := Integer(lObj); end; end; procedure TUniDBLookupComboBoxObject._RemoteQuery(const QueryString: string; Result: TStrings); var lListFields: TStringList; i: Integer; lCriterion: TLinqExpression; lCustomCriteria: TCriteria; lStrListValue: String; begin if (Self.FCriteriaListSource <> nil) and (Trim(Self.Text) <> Trim(QueryString)) then begin lListFields := nil; try lListFields := TStringList.Create; lListFields.Text := Self.ListField.Replace(';', sLineBreak); lCustomCriteria := Self.FCriteriaListSource.Clone; lCriterion := Linq[lListFields[0]].Upper.Like(UpperCase(VarToStr(QueryString)) + '%'); lListFields.Delete(0); for i := 0 to lListFields.Count - 1 do if Self.FListSource.FieldByName(lListFields).Tag = 0 then lCriterion := lCriterion or (Linq[lListFields].Upper.Like('%' + UpperCase(VarToStr(QueryString)) + '%')); lCustomCriteria.Where(lCriterion); Self.FListSource.Close; Self.FListSource.SetSourceCriteria(lCustomCriteria, 25); Self.FListSource.Open; lListFields.Text := Self.ListField.Replace(';', sLineBreak); Self.FListValues.Clear; while not Self.FListSource.Eof do begin lStrListValue := EmptyStr; for i := 0 to lListFields.Count - 1 do begin if i = 0 then begin if Self.FListSource.FieldByName(lListFields).AsString <> '' then lStrListValue := Self.FListSource.FieldByName(lListFields).AsString end else begin if Self.FListSource.FieldByName(lListFields).AsString <> '' then lStrListValue := lStrListValue + ' - ' + Self.FListSource.FieldByName(lListFields).AsString; end; end; if not lStrListValue.IsEmpty then begin Result.Add(lStrListValue); Self.FListValues.Add(lStrListValue); end; Self.FListSource.Next; end; finally lListFields.Free; lCriterion := nil; end; end; end; procedure TUniDBLookupComboBoxObject.SetSearch(Search: TSearch); var lObject: TObject; begin Self.FSearch := Search; Self.FListSource := TAureliusDataset(Self.ListSource.Dataset); Self.FDataSet := TAureliusDataset(Self.DataSource.Dataset); Self.FCriteriaListSource := Search.Criteria.Clone; lObject := Self.FDataSet.EntityFieldByName(String(Self.DataField)).AsObject; if Assigned(lObject) then begin Self.FListSource.Close; Self.FListSource.SetSourceObject(lObject); Self.FListSource.Open; Self.KeyValue := Integer(lObject); Self.UpdateText; end; end; end.
  19. 1 point
    Hi Delphi Developer, Thank you for your quick response. Your solution, as always perfect - works OK. Best regards
  20. 1 point
    I am writing a guide book for that, I will publish it in the forum when it is ready, stay tuned :-)
  21. 1 point
  22. 1 point
    Hello everyone, I am sharing my version of Ribbon Menu (such as Office) and created from various internet examples with ExtJS 4. I have received several requests over time and I apologize for not having found the time to build something that could be easily understood (my first version was in ExtJS 3 and created from a complex code, out of uniGUI) . I hope you enjoy, and be involved in the evolution of this example. (This sample was made with Delphi XE7 and uniGUI Pro RibbonMenu.zip
  23. 1 point
    In reply to this post Question Report Builder by Knopix .. Simple demo ReportBuilder exporting to PDF, HTML and Excel. Regards. Eduardo Belo UniGUI_ReportBuilder.rar
  24. 1 point
    Thank's can you show full example? or sample demo with database thank;s advance
  25. 1 point
    Hi Farshad, Please, could you consider the implementation of: a "markInvalid" procedure in those components that allow it a "QuickTipsInit" property on a form Now, we use JavaScript to do that, but there are problems mixing SendResponse (for markInvalid) and changing controls properties (i.e. SetFocus)... TIA