-
Posts
572 -
Joined
-
Last visited
-
Days Won
35
Content Type
Profiles
Forums
Events
Posts posted by mierlp
-
-
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 ... responsiveBut 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
-
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 R2So 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
-
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 usedif 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;
- 1
-
-
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)
- 1
-
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; -
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
-
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;
-
if ACol=1 then begin
-
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' fieldBut 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
-
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 = greenThe 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 ?
-
hi
Did you use the file-based solutions or with the server.exe ?
Make sure you have enought rights to create dbisam.lck filesregards Peter
-
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/
-
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
-
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
-
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 .dllhttp://forums.unigui.com/index.php?/topic/11892-here-an-example-for-sending-sms/
- 1
-
Yes
-
Yes
Edit2 and Edit3 have to be next to each other, not below -
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 -
-
Hi
A very simple testcase attached. In the menu click 'Show frame2'.
You see 2 uniFieldcontainers, both are resizing when the form is resizedThe 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 otherRegards Peter
-
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 -
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;- 1
-
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 -
Yes a major improvement
- 1
How to remove this border ?
in General
Posted
Is there already a solution for it ?