

Gary
-
Content Count
139 -
Joined
-
Last visited
Posts posted by Gary
-
-
Hello all,
I am going to do a clean install of Delphi but don't want to install all the old components that I no longer use. I still need them to support legacy apps, so want to try loading up a VM with those components.
What are you using for VM, and what settings work best?
My current Machine:
11th Gen Intel(R) Core(TM) i7
32 GB Ram
1 TB SSD
Windows 11
Delphi 11.2
I would also like to run it on an older laptop
10th Gen i7
16 GB Ram
1 TB SSD
Or is there a better way to support old apps that use components who's license has expired?
-
@Programmer..
I think I will take this opportunity to do a clean install. This is a secondary machine(Laptop) that has a lot of old components I keep on it to support Legacy apps. I have been wanting to move them to a VM, so this will give me a chance to experiment with that.
I'll open a new topic for VM suggestions, the latest discussion I could find was from 2019
Thanks for the help[
-
@Programmer...
It happened after Delphi offered to correct my path to allow run time packages. Foolishly clicked OK
-
@limelect
All my styles are in C:\Users\Public\Documents\Embarcadero\Studio\22.0\Styles
-
BDSCOMMONDIR c:\program files (x86)\embarcadero\studio\22.0\bin\22.0
That seems to be the problem, the last \22.0
How do I change it?
-
It's not just the project, the styles are not in the IDE. Project/Options/Appearance all styles are empty including default Windows style. Delphi IDE Style directory is wrong. I don't know where to redirect to the correct location
-
Hello all,
My styles have disappeared from the IDE, and now projects will not compile. I get an intermediate .vrc file with the error cannot find file on this line:
IcebergClassico VCLSTYLE "c:\\program files (x86)\\embarcadero\\studio\\22.0\\bin\\22.0\\Styles\\IcebergClassico.vsf"
The files are where they are supposed to be in : C:\Users\Public\Documents\Embarcadero\Studio\22.0\Styles not the above.
This happened after Delphi asked to update my path for run time packages (I'm not currently using run time packages). How do I point the IDE to the correct location.
Thanks
-
Thanks Anders
-
Agreed, however this is a small company with 4 users in 2 offices next to each other over a LAN connection. Leaving for lunch has happened 🙂. When they return their co-worker looks across the desk and says "Quit doing that". Handled!
Seriously though I also read posts about "Ghost" locks, not sure what they are, but sounds as if a problem occurs while the record is locked it could leave the lock in place indefinably.
Recently they did a price increase, several times they ended up editing the same record in Quickbooks (much bigger program than mine). When they would try to post the record they would immediately get a message telling them to try again. They have asked me to do the same. Simply checking if the record is being edited by someone else, either before editing or posting seems like an easy fix, until you try to implement it.
-
More correctly the DataSet could have other record locks, but the BeforeEdit would know the record in question. If not then instead of is DataSet.locked it would be if CurrRecord.Locked or the substance of.
-
Unlike Firebird/Interbase there is no Commit in MySQL(MariaDB), I think?
I just tried editing a memo, then tried with a second connection - Time out started - then quickly canceled first edit and lock released - second edit good to go.
Is it just not possible to do the following:
procedure TdmPoolDetails.tblPoolsBeforeEdit(DataSet: TDataSet);
beginif DataSet.Locked then
begin
Post record locked Message;
Abort;
end;
end;
-
Thank You for your response.
More info: I am not using transactions. The Uni example uses the Connection level lock and edits/Posts in code. That post had the same problems of waiting for a time out. They tried setting the lock type (lrimmedialty or IrDelayed) and still had problems. I would like to handle this at the DataSet level.
I'm using data aware components, so for example (the real life big one) one user starts to edit a DBMemo component(They use this to log call conversations and service calls), another user try's to edit the same customer's memo. I want to notify the second user the record is locked for editing, not wait until they have added conversation notes and try to post the edit.
-
Hello all<
I didn't realize this was such a difficult problem.
I am using Devart UniDac and MariaDB (MySQL). I simply want to check in the OnBeforeEdit event of a dataset if the record is locked and display a message to my users. The UniTable has LockMode set to lmPessimistic. I have scoured Google for hours and there is no direct answer.
What I have tried is to add an OnEditError handler to deal with it, however it just hangs with a SQL cursor and finally gives the timeout error.
Expecting users to wait for a timeout error is not acceptable. How can I check if the record is locked in the BeforeEdit event handler??
Thanks in advance
Gary
-
Hello all,
Where is the best place to discuss Spring4D? the Google groups has been down for some time
-
I had the same problem a few years age, and now consider Delphi ransomware. When it happened, I was just going to go back to D7 but that license (CodeGear) would not work either. I ended up buying a new license (Pro version). I was contacted by a new Embarcadero rep when the renewal came due and found that the majority of the renewal price was premium support $500.00 I think, so now I just pay the $400.00 ransom each year.
Shame on you Embarcadero!
-
1
-
-
You iterate over the items, check if it's checked if it is, save it to your table
for var i := 0 to (FileListBox1.Items.Count - 1) do begin if FileListBox1.Selected[i] then begin // save item to table FileListBox1.Items[i] end;
-
Use the TCheckListBox.Selected Property
Here is an example from the documentation:
https://docwiki.embarcadero.com/CodeExamples/Alexandria/en/FileListBox_(Delphi)
-
I sent email to them and they added it. Don't know why they advertise it as already installed if you have to request it.
-
Hello all,
Looking forward to the upcoming Bootcamp, so I thought I'd finally set up Mac OS. I have an older IMac 2012 Catalina that was given to me, no go. XCode requires Monterey.
I opened a trial account at MacInCloud their support page says all plans Managed and Pay-As-You-Go come with PaServer installed. I am a total newbie with Mac, still search as I may, I cannot find it on the machine.
Can anyone using MacInCloud instruct me in how to start PaServer.
Thank You,
Gary
-
Your book couldn't have come out at a better time for me! As a hobbyist I wrote my first commercial application for a friend about 3 years ago the old RAD way. I have been adding features and fixing bugs since then. As expected, I now have a big ball of mud. I had just started refactoring when the book was published. Every Delphi book I have purchased has paid for itself with even 1 tip, this was no different. I have found many useful suggestions in particular section 13.6.6 Arrays vs Cases. I had to laugh at myself reading 2.3.1 "the developed application looks as though the developers never saw a component they didn't like." CHECK
-
1
-
-
DEVART UniDac components have TVirtualTable, Dataset that stores data in memory and TVirtualQuery Dataset that allows to use SQL statements to retrieve data from in-memory datasets or simultaneously from several different RDBMS'es.
I haven't used them in a production project, but I do use them constantly to simulate DataSets in tests. I used to use TClientDataSet but TVirtualTable has an AutoInc field that TClientDataSet does not and most of my tables do.
-
You can also add popup menu's to the data module and they will be visible in the form as well. I use David's suggestion with global data module and popup connected to action list for my data grids, then assign the grids popup property at runtime depending on the grid shown. If I want to change or add functionality it's done in a single place.
-
1
-
-
From Delphi Twain - scan documents with Delphi (kluug.net)
Windows 10, Delphi 11
Hello all,
When I run the sample vcl1 in the debugger I get a EZCompressionError here.
if Assigned(FTwain.SelectedSource) then begin try // Load source, select transference method and enable FTwain.SelectedSource.Loaded := TRUE; // display interface FTwain.SelectedSource.ShowUI := TRUE; // Scan FTwain.SelectedSource.Enabled := TRUE; except on E: EZCompressionError do { TODO : Nothing, does not effect. Investigate, caused by FTwain.SelectedSource.Loaded & FTwain.SelectedSource.Enabled } end; end;
Anyone else get this? Any fix?
Also I need to get the scanner resolution used. I tried this:
var lReturn : Extended; var lValues : TTwainResolution; var lResult : TCapabilityRet := FTwain.SelectedSource.GetIYResolution(lReturn, lValues);
but the return value is crUnsupported on a newer Canon Color Image Class laser printer.
Is there another way to get the selected resolution?
Thanks,
Gary
-
More info..
Seems VPN not the problem. It is only blocked if I run from IDE. So app is fine running outside of Delphi, good enough for me.
Newly released book: Delphi Legacy Projects
in Tips / Blogs / Tutorials / Videos
Posted
There is an interview with the author on Embarcadero's YouTube channel you may be interested in
Upgrading and Maintaining Delphi Legacy Projects