-
Content Count
2636 -
Joined
-
Last visited
-
Days Won
91
Everything posted by dummzeuch
-
Care share your modifications, so I don't have to do them myself?
-
Yes, I know. I downloaded Delphi 11 yesterday late in the evening and installed it. Then I spent about half an hour creating the GExperts project for it and adapting some include files, but never finished it. Today won't fare any better. Maybe on the weekend.
-
It's there all right. I must have been very tired yesterday evening.
-
In older IDEs, there used to be a simple slider in the status bar where you could adjust the font size. I couldn't find that in Delphi 11. Or was that some plug-in?
-
What everyhing else do you put under source control, apart from Delphi projects?
dummzeuch replied to Mike Torrettinni's topic in General Help
For me the biggest headache in that scenario is e-mail. It's stored on a server and in a backup, but since nobody but me apparently ever bothers to delete or at least archive old stuff, every server crash that kills the email means restoring many gigabytes of email before new emails can be received. On my work PC, all I really need is the OS + the email client + Delphi and TortoiseSVN. The most work would be to install all necessary components in the IDE. That's mostly automated though, but there are always glitches. Everything else is on the server (and backed up) or is test data that can be easily replaced (usually data from the server copied locally for performance reasons). -
What everyhing else do you put under source control, apart from Delphi projects?
dummzeuch replied to Mike Torrettinni's topic in General Help
For a while I put Word/LibreOfficeWriter and Excel/LibreOfficeCalc documents in subversion, but since they are binary it's pretty pointless, because one cannot easily find what changed. I put some configuration files (linux) there and of course source code of all kinds, including third party sources (and use these via svn:external). -
Anybody changing FileVersion directly in dproj file?
dummzeuch replied to Mike Torrettinni's topic in General Help
I think you overestimate the complexity of an automated build: Have a release configuration in the IDE Build from command line. That's it. You can always add more to the automation but the command line build is a good starting gpoint. -
I never heard that term either, but I'm not American. I heard of Fintech though, not sure what it means other than just another buzzword about making money with other people's money.
-
Is this the plain IDE or do you use some plugins?
-
Hm, but you are not @Quarks, so your reasons don't count in this context.
-
Why not using the Windows API CopyFileEx? As far as I know it has no size limitation. It also allows a callback for showing the progress and possibly cancelling the copy. If you need an example, have a look at TFileSystem.CopyFileWithProgress in my dzlib. Or am I misunderstanding your requirements?
-
Buffered file stream will get you no performance improvement in this case. It only has an advantage for reading and writing (many) small parts of a file, but you are using a buffer of 512 KBytes already.
-
10.4.1+ Custom Managed Records usable?
dummzeuch replied to Darian Miller's topic in RTL and Delphi Object Pascal
a := muldiv(b,c,d); Of course, this is a function, not a ternary operator, but ... a := b * c div d; ... is not really *one* operator tut two, but neither is ... a = b?c:d; ... so does it qualify? -
TCustomInifile.ReadSubSections in older Delphi versions
dummzeuch posted a topic in RTL and Delphi Object Pascal
I just implemented some functionality using TCustomIniFile.ReadSubSections which depending on the type passed to it, either calls the TMemIniFile or the TRegistryIniFile method. Something like: procedure doSomething(_Ini: TCustomIniFile); var sl: TStringList; begin sl := TStringList.Create; try _Ini.ReadSubSections(sl) for i := 0 to sl.Count - 1 do begin doSomethingWith(sl[i]); end; finally FreeAndNil(sl) end; end; This works fine in Delphi 10.2 but not in Delphi 7 because TCustomIniFile.ReadSubSections didn't exist back then. I need that functionality for older Delphi versions, so I somehow must implement ReadSubSections there. Unfortunately the implementations differ greatly for TMemIniFile and TRegistryIniFile. I'd have to check which class is passed in and call the respective implementation. if _Ini is TMemIniFile then HandleMemIniFile(_Ini) else if _Ini is TRegistryIniFile then HandleRegistryIniFile(_Ini) else raise Exception.Create('Only TMemIniFile or TRegistryIniFile supported'); But this just feels very clunky. Is there any better way? (Just in case somebody wants to suggest them: Class helpers didn't exist in Delphi 7 either.) -
TCustomInifile.ReadSubSections in older Delphi versions
dummzeuch replied to dummzeuch's topic in RTL and Delphi Object Pascal
Yes, but how could they help here? -
TCustomInifile.ReadSubSections in older Delphi versions
dummzeuch replied to dummzeuch's topic in RTL and Delphi Object Pascal
Yes, but I would still have to use similar code as above to typecast to the correct class. -
TCustomInifile.ReadSubSections in older Delphi versions
dummzeuch replied to dummzeuch's topic in RTL and Delphi Object Pascal
(I must be CompilerVersion < 14 because the method was introduced in Delphi 2010.) Unfortunately subclassing TMemIniFile and TRegistryIniFile wouldn't allow me to pass TCustomIniFile. -
10.4.1+ Custom Managed Records usable?
dummzeuch replied to Darian Miller's topic in RTL and Delphi Object Pascal
Actually that was how I understood the original question: But maybe I was wrong, happened before. -
Actually, it might cause an enum to not have RTTI: "Enumerated constants with a specific value [...] do not have RTTI. (from http://docwiki.embarcadero.com/RADStudio/Sydney/en/Simple_Types_(Delphi)#Enumerated_Types_with_Explicitly_Assigned_Ordinality ) (I didn't check this.)
-
10.4.1+ Custom Managed Records usable?
dummzeuch replied to Darian Miller's topic in RTL and Delphi Object Pascal
Exactly. Changing working code just because it can now be written differently, is not a good reason in itself. I wouldn't refactor code only to now use inline variable declarations either. But if I have to refactor it for other reasons, I might consider it (same for custom managed records, but I'm not yet sure I trust the implementation). -
Delphi Daily WTF / Antipattern / Stupid code thread
dummzeuch replied to Tommi Prami's topic in RTL and Delphi Object Pascal
We could probably improve this with a try ... finally and exceptions. 😉 (I actually have some code that does this because a coworker complained loudly about the gotos I was originally using.) Let's create a new thread with worse "improvements" ("Verschlimmbesserung") for this code. -
Delphi Daily WTF / Antipattern / Stupid code thread
dummzeuch replied to Tommi Prami's topic in RTL and Delphi Object Pascal
+1 for goto! 😉 -
10.4.1+ Custom Managed Records usable?
dummzeuch replied to Darian Miller's topic in RTL and Delphi Object Pascal
Why should I? Existing code just works as it is and unless there is a good reason to change it, I won't touch it. -
Note though that this kind of enums has only limited support in RTTI. btw: This has been available since Delphi 6, so you are rather late to the party. 😉
-
Delphi Daily WTF / Antipattern / Stupid code thread
dummzeuch replied to Tommi Prami's topic in RTL and Delphi Object Pascal
My all time favorite: if SomeErrorCondition then Exception.Create('Errormessage goes here'); (raise is missing, just in case you didn't notice.) Or alternatively: raise exception('SomeErrorMessage'); (create is missing) Makes for a "nice" Access Violation in the exception handler. Both were in my own code, but the first one was also in some older RTL and JVCL and Indy code (all fixed now). I blogged about this a while ago. (OMG, back then we still hat Google+ !)