Jump to content

mierlp

uniGUI Subscriber
  • Posts

    572
  • Joined

  • Last visited

  • Days Won

    35

Everything posted by mierlp

  1. Hi When i delete a pages from a uniPageControl i got this error, see attachment. THis only occurs using uniGui, not in vcl application I even created a new form, copied the uniPageControl to it, deleted page and again the same error I use : - Delphi RIO 10.3.3 (also appears in 10.3.3) - uniGui 1.90.0.1511 but also happends in 1.90.0.1514 Did compleet reinstall from uniGui, cleaned files/registry Any suggestions ?
  2. Is there already a solution for it ?
  3. Hi Dominique certainly has a good point and describes what is currently happening and what he, -and I certainly think others here on the forum, experience. New functionalities is nice, but more important is a stable platform and where bug fixing should receive attention. Several signals have already been issued on the forum about the long stay-out of fixes, up-to-date documentation and a roadmap, - the last update is from February I think. In any case, I don't know what Farshad's ambition is with uniGui because he responds fairly rarely to this type of message. A shame because it is a signal that is being delivered by its users of the product and I think you should do something with it. I am uniGui user from the first hour and I still think it is a very nice product and a great achievement that Farshad has achieved, we all agree with that. We have all developed one or more applications in uniGui and maybe even sold them. That would not have been possible without uniGui. But it does not stop there and the developments in the market, the demand of the users continues. Today's applications must be multi-device if you like it or not. The application must have the same look and feel on both mobile and desktop / tablet ... responsive But just like Dominique I am increasingly worried about the future / continuity of uniGui .. why ... because there is insufficient communication, bug fixing is too slow, you have to use work-arounds to realize things that you do not like structural solution. Finally my biggest concern is that I think Farshad is still the only developer. Points that have already been mentioned in previous post but have not provided clarity. A framework such as uniGui has a lot of potential, but then more development capacity must become available, bug fixing must go faster and communication must be improved. It is not about which framework is better, that everyone must determine for themselves and another cannot do for you. Also not with examples of what the one framework can or cannot do. Every framework has its own specific characteristics and use, and also everyone uses it in its own way and for its own application. What you do see is that there are new frameworks that will certainly develop faster and meet the current needs of our customers, yes they are still in their infancy, but are quickly moving to a higher level with a growing number of users. Regards Peter
  4. Official the mainstream support for 2012 R2 is ended in 2018. The extended support is extended to 2023 so for that you can still use 2012 R2 So i would always take the latest version, there are also a lot of improvements in 2016 https://www.microsoft.com/en-us/cloud-platform/windows-server-comparison
  5. Hi, I used it on Win32 applications which was running on a vps server. We stored the report which are created with Fastreport in the database so everyone could use them. One of the issues is the grow of you're database. When the use images in a report and don't limit the size of the image than a report becomes large and also the database. When they use a image which is 4 MB, then you're database is also growin with 4 MB. And with lot's of records...it grows hard. Then you also have to load the database records...which also cost performanance. Now with uniGui i also save uploaded records on disk..it's cheap and fast..the same way Mohammed describes. But..if you would like to store files in a database...this is what i used. Store files in a database requires a blob field. When you use MySQL then use a LargeBlob field. The code below is used for the FastReport i used if dmDocument.Doc.State in [dsBrowse] then begin dmDocument.Doc.Edit; end; try MemStream := TMemoryStream.Create; Stream := dmDocument.Doc.CreateBlobStream(dmDocument.Doc.FieldByName('Report'), bmReadWrite); frxReport.SaveToStream(MemStream); MemStream.Position := 0; Stream.CopyFrom(MemStream, MemStream.Size); if dmDocument.Doc.State in [dsInsert,dsEdit] then begin dmDocument.Doc.Post; end; finally MemStream.Free; Stream.Free; end; A old example using a Win32 application with a DBISAM database. I save the file into a blob field and don;t forget to save the file+extension also in the database: procedure TFormMain.FileLoad; var fileInfo: _WIN32_FILE_ATTRIBUTE_DATA; TotalSize: int64; begin FormMain.OpenDialog.Title:='Select file'; if FormMain.OpenDialog.Execute then begin GetFileAttributesEx(PChar(FormMain.OpenDialog.FileName), GetFileExInfoStandard, @fileInfo); TotalSize := fileInfo.nFileSizeHigh shl 32 or fileInfo.nFileSizeLow; if TotalSize>6000000 then begin Application.MessageBox('This file can't be saved into the database it's larger then 6MB.', 'Warning', MB_OK+MB_ICONASTERISK+MB_DEFBUTTON1+MB_APPLMODAL); Abort; end; if TotalSize<6000000 then begin if dmDocument.Doc.State in [dsBrowse] then begin dmDocument.Doc.Edit; end; Bstream := dmDocument.Doc.CreateBlobStream(dmTables.Document.FieldByName('FileContent'),bmWrite); try Bstream.Seek(0, soFromBeginning); Fstream := TFileStream.Create(FormMain.OpenDialog.FileName, fmOpenRead or fmShareDenyWrite); try Bstream.CopyFrom(Fstream, Fstream.Size) finally Fstream.Free end; finally Bstream.Free end; dmDocument.Doc.FieldByName('FileContent').Value:=ExtractFileName(FormMain.OpenDialog.FileName); end; end; Saving the file to disk if dmDocument.Doc.FieldByName('FileContent').Value='' then begin Application.MessageBox('There's no file available!.', 'Message', MB_OK+MB_ICONEXCLAMATION+MB_DEFBUTTON1+MB_APPLMODAL); Abort; end; if dmDocument.Doc.FieldByName('FileContent').Value<>'' then begin FormMain.SaveDialog.Title:='Save file'; sFile:=dmDocument.Doc.FieldByName('FileName').AsString; SaveDialog.FileName:=cBestand; if FormMain.SaveDialog.Execute then begin Bstream := dmDocument.Doc.CreateBlobStream(dmDocument.Doc.FieldByName('FileContent'), bmRead); try Bstream.Seek(0, soFromBeginning); with TFileStream.Create(SaveDialog.FileName,fmCreate) do try CopyFrom(Bstream,Bstream.Size) finally Free end; finally Bstream.Free; end; end; end;
  6. http://docwiki.embarcadero.com/RADStudio/Rio/en/10.3_Rio_-_Release_3
  7. i Would be nice if this could be implemented as standard properties after 4 years: http://forums.unigui.com/index.php?/topic/6727-pagecontrol-properties/&tab=comments#comment-34202 additional properties : tabAlginment TabHeight TabMargin TabPosition (top, left, right, bottom) TabSpace (space between tabs) TabWidth (set width of tabs) Nice to have : Hottrack Hottrack Color HotTrackStyle (tab, tekst or current tab where the 'tab draws a nice colored line at the top of the tab)
  8. Hi I don't think you can use my example because I save the designed reports in a database. When a label or wristband is printed, the report is looked up in the database and loaded and then printed. Printing is then done in the same way as you normally do when it is loaded from disk. The printer on which this report should be printed is also stored in the database because I often use 9 printers at the same time, each with its own color wristband. // Set options FormMain.frxReport.PrintOptions.ShowDialog: = False; FormMain.frxReport.PrintOptions.Copies: = 0; // Set correct printer FormMain.frxReport.PrintOptions.Printer: = dmMain.Scan.FieldByName ('showConfigIDPrinterName'). AsString; // Prepaire report FormMain.frxReport.PrepareReport; // Print report FormMain.frxReport.print;
  9. Hi, If you have installed the windows drivers for this printer you can just print like you normally do on a laserprinter with A4 paper. Just create you label design with fastreport (which i use) and you can print. I print on several therminal TSC label printers wristbands, labels or tickets. All based on a design with in fastreport. Regards Peter
  10. Hi I found a solution...what did i do : the field color contains the correct color for the bullet i created a calculated field called 'bullet' in the onCalcFields i added this code : dmStatus.StatusBooking.FieldByName('Bullet').value := '='; i added the field 'bullet' as a extra column to the uniDBgrid change the font.name for this column to 'webdings' <== important because now you got a nice big bullet change the font.size for this column to 20 <== then you got a nice big button uniDBgrid.OnDrawColumnCell i added this code : if ACol=1 then begin Attribs.Font.Color := uniDBgrid.Datasource.Dataset.FieldByName('Color').value; end;
  11. Hi Sherzod Thank you for the examples but I prefer not to work with images. You should also always include this with the installation and you have to make translation for the selected color and which image it it. Is there no other way. I am thinking, for example, of the use of ALT codes. Every new record receives this ALT code, which then has a standard white color. In the dbgrid the font size and color are adjusted to the value in the 'Color' field But no idea if that's possible and i solution Or is there a solution to based on a separate table which contains colored images / color code from the bullets and showing them in a dblookupcombobox...which is not possible i think? Regards Peter
  12. hi I have a table called 'Status' with the following rows: - StatusID (autoinc) - Name (var) - Color (var) The user has to select a color for a certain status. Let say the follow status : - In progress = yellow - Done = green The selected color is saved in the field 'Color' and contains the color colde like '$0000B9FF' Now i would like to show in a DBgrid, see attachment: - the name - a big dot with the corresponding color from the field 'Color' How can i do this ?
  13. hi Did you use the file-based solutions or with the server.exe ? Make sure you have enought rights to create dbisam.lck files regards Peter
  14. mierlp

    Hosting

    Hi You need a Windows VPS server for you database and uniGui runtime + application. https://www.bluehost.com/hosting/vps https://www.bluehost.com/hosting/vps https://www.strato.nl/server/vps-windows/ There are some difference between the vps hosting companies regarding CPU, Memory, Harddisk and BandWidth/Traffic BlueHost offers 1 TB bandwidth and others are unlimeted Also see this thread http://forums.unigui.com/index.php?/forum/12-hosting/
  15. Hi I use mysql server with devart component. Easy to host and built mirroring. I have a out 30 customers using the application and every customers has own database environment. Every database environment has via own database backup/restore possibility which we manage. Using a SQL script it is easy to update or change tables. Yes hou have to do it several times but thats easy to automate. But restoring database for one customer can be tricky when eveything is in 1 environments. See also https://digitalguardian.com/blog/saas-single-tenant-vs-multi-tenant-whats-difference
  16. Hi Dominique I had the same situation in a vcl desktop situation years ago. I started with different modules and functionality in .dlls. Based on the subscription the user get extra functionality. After a year a build all functionality in one .exe because sometimes functionality of a .DLL or a part was needed in a other part of the software. Not in the beginnen because the design was completed but after a year new functionality was needed. Sure it can be done but you have to design you program in small pièces. Now i put procedures or functions in datamodules so i can call them when needed and linked to the forms or modules where user can have subsriptions for. This is the way i build my unigui programs. I m also interestet how other members deal with this and learn from it.. so i hope more members will share there experiance Regards peter
  17. Hi The example from drBob is very old..try my example where i use also a sms provider bulksms and messagebird You have to use the provided api link from you provider. I didn't try it using it as a .dll http://forums.unigui.com/index.php?/topic/11892-here-an-example-for-sending-sms/
  18. Yes Edit2 and Edit3 have to be next to each other, not below
  19. Hi Dominique I don't know if your Listsource contains only 1 field or 2 fields where the 2nd is unique. You could then show 2 fields instead of 1 field in your dblookupcombobox. You can enter multiple fields with your Listfield, separated by a ; Another alternative could be to create a calculated field and display it in your Listfield
  20. When you set LayoutConfig.width and a % that works, see attachement But what's not working is the fields next to each other and will be placed below each other. Maybe it's not possibel to put them next to each other ?
  21. Hi A very simple testcase attached. In the menu click 'Show frame2'. You see 2 uniFieldcontainers, both are resizing when the form is resized The next step is that the Edit fields also resizes in width, so they must be a percentage compared to the uniFieldContainer2 uniEdit2 and 3 must be stay next to each other Regards Peter TestCase.zip
  22. See the mockup for illustration for what i need. See attachment when I make the following adjustments: - set uniFieldContainer2.Layout = fit - place a uniFieldSet on unFieldContainder2 with the fields - Result = they will be resized BUT edit2 and edit3 will be below each other instead of side by side
  23. Hi First use the myConnection component. For testing click the right button and choose for CONNECTION EDITOR. Now set server, port, username, password, database and click DIRECT. I put the myConnection on the MainModule. Then you can use a datamodules with TQuery components and set tMyQuery.Connection to the TMyConnection component. In code it's about the same: myConnection.Server :=''you're ip address''|; myConnection.port= 3306; myConnection.Username := 'username'; myConnection.Password := 'password'; myConnection.Database :='databasename'; myConnection.Connect;
  24. Hi Like Abaksoft i use many barcode readers without any problem. The Ctrl-J i think is a barcode reader setting. Reset you're barcode reader or set it to the correct country code. A simple test, enter manual the number in the edit field and hit the enter key to see what happens. If searching is going well, than it's a setting in you're barcode reader. Typing the value is the same as what you do with scanning without the extra characters If it has the same behavior maybe you have some code in the onkeydown or something else
×
×
  • Create New...