Link to home
Start Free TrialLog in
Avatar of aikimark
aikimarkFlag for United States of America

asked on

Delphi Experts Discussion Thread -- Part 1

This thread is for the top Delphi Experts to discuss Delphi-specific topics.

This is NOT a lounge, so maintain professional conduct.

Since this is a discussion thread, you might want to add an email filter to place alters in a different folder.

There is a separate Delphi thread for the process of alerts (the Bat Signal thread):
https://www.experts-exchange.com/questions/27256199/Delphi-Experts-Bat-Signal-Part-1.html

Thanks,
aikimark -- zone advisor
Avatar of aikimark
aikimark
Flag of United States of America image

ASKER

To join the discussion, please click the Monitor link above.
Is this comment a valid solution to the question?
http:/Q_27192359.html#a36173396

One of the contributing Delphi experts has objected to the closure of this abandoned question.  The moderators want some input from other Delphi experts whether the LLMH code should be accepted.  What do you think?
fwiw, opening a second question like this one, is a little over
there is already the excellent cleanup volunteer mlmcc

after 3 attempts of trying to become a cleanup volunteer, i have given up
and now i don't have the time any more ... so please don't ask

ciuly (albeit has attitude) together with ziolko were excellent at this too
Avatar of Mike McCracken
Mike McCracken

Thanks Geert.  I try to provide an unbiased look at the questions left open.

Aikimark is trying to use this thread to be able to alert all Delphi experts of questions that need help.  When  question is tagged in cleanup only the experts who participated or chose to monitor get notified.  Since there was an objection, Aikimark as a Zone Advisor is seeking help in determining if the objection is valid.  I don't have a Delphi or Pascal environment to test code in and I also would be cautious in trying some of the code since it may cause other issues.

In this particular case, I don't know enough about programming at that low level to really make a judgement.  I want to accept comments only when I m convinced the comment is the answer or at least would lead easily to the answer.

mlmcc
CV
mlmcc,
you may not have a delphi or pascal environment but ...
from what i have seen from you, you certainly have delphi skills :)



@Geert

I'm sorry you had trouble enrolling in the CV group.  Had I known, I would have aided your quest.

I'm trying to help mlmcc.  A moderator asked for some Delphi help with the objection to the closure.  I did some research about mouse hooks but still can't tell whether the VahaC comment is an answer to the question.  Since this isn't a bat signal type of request, I use this discussion thread.

Although both mlmcc and I are familiar with Delphi, this question requires a subject matter expert (SME).

Thank you for your consideration
I taught Pascal many years ago and used it for several large projects.  However I never got down to using things like this question requires.

I am an active VB programmer and did my Master's on programming languages and compiler development.

mlmcc
Well, i think Vahac has actually pointed in the right direction.

But actually, i think it is completely silly to use a mouse click for your app
Taking away functionality from a highly used device like the mouse is just simply hijacking it

i'd say, do not use the mouse for that, but the keyboard
but then again, getting through to someone can prove more difficult
That is the life of an expert... I was once paid to teach a course on VB programming (back when it had like 12 controls and there were very few add on controls).  One thing they said they wanted was to know how to make their own buttons (for style).  I showed them how to use a paint box style control to perfectly emulate a button with whatever graphics they wanted.  

They got upset that I was not going to just show them how to install custom controls they buy...
I am considering doing a couple of articles on using the controls that are already in Delphi to do things they were not, necessarily, intended for.  I just finished making an elegant editable calendar out of a TString grid with an embedded TEdt, for example.
I tested VahaC code, and it works.
At a first sight, it contains some minor mistakes, but the approach is correct and there is enough good material for others to learn - even if the Q does not offer the best usage example of such a technique.
My opinion is that VahaC should be awarded points --
- Lorenzo -
@Lorenzo

Thanks.
The XE2 road show stopped at my user group meeting last week.  I sure am impressed with FireMonkey.

What are your thoughts on XE2?
A big effort, dot. I wonder if they're going to support this new platform in the long run... or if it's going to die quickly.
Starting at OWL and ending at Delphi for Net, there is a whole graveyard of Borland/Embarcadero's dead projects.
The only library that has survived and still has a huge codebase is VCL.
I'm not going to invest a single line of code on FireMonkey, unless it's still alive in Delphi 2015 (anyone bet?).
I'd like to hear if anyone has used Monkey Groomer to migrate a VCL form/project to FireMonkey.
I am very excited by the possibilities in FireMonkey.  During the beta it was NOT working well though.
I will be FAR more interested when it allows you to cross compile to Linux.  I only know 2 people who use a Mac and one of those is so old it would not work anyway.
One of the cross platform Mac demonstrations that was presented at the user group ported an application to the Mac by way of Free Pascal compiling on the Mac.

If XE2 is a commercial success, we might see a Linux port.  You can create Linux apps via Prism, but they won't be native apps, since you'd have to run them in a Mono environment.
I was most excited by the fact that we finally have a means of doing 2D, 3D, and a mix of 2D and 3D apps based on OpenGL as well as the fact that the foundation allows for portability that MS will not want to try to mimic.  The uses in business applications are staggering.  I can easily envision a program allowing corporate salesmen to really wow people in sales meetings with a 3D based slideshow that follows the hand gestures of the presenter.  It would make power point look like an easel and some colored markers.
Embarcadero made the assumption that ALL computers have a GPU.  I hope there is a way to disable the code that is based on that assumption.  Some low end processors and some non-Intel chips do not have a GPU.

I wish people would bring code with them to meetings.  One of my guys does fluid dynamics and could have given XE2 a good stress test for drawing ~3M lines.
 There have always been programs that require a GPU to run.  Now we have the opportunity to introduce the business world to the possibilities (which could make the percentage of computers with GPUs go up).  Not to mention... A game engine based on FireMonkey would mean the games could be distributed on any computer platform, theoretically with just a recompile (same source code).

  There are some negatives like, the one you mentioned, not working on older (or weaker) PCs.  The positives, in my mind, far outweigh the negatives.  Imagine being able to have your business software run on all platforms for just requiring a decent video card.

  As I understand it a GPU is required but, if you could drop it back to code to handle replacing the GPU, it would likely run so painfully slow that it would not be worth doing... I mean why would you want to embarrass your own product, and by association, you?
I'm thinking along the lines of some video formats that automatically adjust the resolution to the bit rate.
The number of uses is amazing... I know new uses will keep coming to mind...
Don't forget that CodeRage6 is going on all this week.
Thanks for the reminder, I still need to register...
this topic would have been far more usefull if it were "sticky" to the top
now it's almost useless
@Geert

I have used the Save link to add such questions to my knowledgebase.  I've been asking for a sticky feature for some time.  Let's see what the new release has in store.
For what it's worth, I also tried to enrol for the CV group but didn't get a peep. Not even a courtesy reply to say "yup I got your email".

I don't know about customs and cultures worldwide, but where I live, that borders on rude.

That and some issue with the EE office team; them moved me to other pastures.
@aikimark
http:/Q_27736858.html
instead of asking a question you could have provided alternatives
frankly i find it very annoying and lazy of you when you create a hint to a solution directed at expert and not at the asker and let that expert do all the work

again, if you want info, ask your own question or provide the complete alternative

according to EE:
Topic Advisors are proven experts in specific technologies who assist members in getting answers, provide guidance to new users, ensure the accuracy of answers and contribute to the newsletter. If you need assistance with a specific question on the site, the Topic Advisors are your first stop.

Are you a proven Delphi Expert ?
Your contributions do the delphi zone are rather limited compared to your area of expertise: Access , VB, VBA, Excel, ...
If i'd have to suggest a topic advisor for Delphi, then you wouldn't be on my list
rather: rlibby, ziolko, meikl, ciuly, epaqsuier, ewangoya
the main problem is, most of them aren't posting anymore (or can't)
i'm not going to advise myself, i'm too harsh in discussions and not a good moderator

i would put you in the list of challengers, you do a good job at challenging
but the downside is that this has caused a flame war or 2

======
edited by aikimark (ZA) to correct the question link
Compared to those distinguished Delphi experts, then no, I'm not in the same league.  My language expertise is the VB family with a strong database resume.  I took the Delphi zone under my wing for the same reason that I started the RTP Delphi Interest Group back in the 90s -- Delphi is a good thing that should be nurtured.

If another expert is going to get the points, then any comment I might make should result in a better answer than if I had not commented.  (think about BASF.  they make things better)
i didn't know you could decide for yourself to be a zone advisor for delphi
i thought there was a selection process
There was a void, so I filled it.  mlmcc has been a more active expert and Zone Advisor in the Delphi topic area for about a year now, so I'm not as alone as I once was.  I created these two persistent Delphi questions (the other being the Bat Signal) for the purpose of alerting the really experienced Delphi experts to neglected questions an to discuss Delphi topics, like FireMonkey.

I added my name to the list of Designated Experts, so I get alerts for questions in a LOT of topic areas.  Most of my ZA duties involve rezoning questions so that the most appropriate subject matter experts will see them.

I also ask similar questions of participating experts in other topic areas.  You are the first expert to take offense.
i don't take offense, it's simply annoying
you could have investigated your own suggestion yourself ...
I did investigate when there were no comments in the thread.  When I came back with Min(Min()) in mind and saw your code, I thought it better to ask you about your solution and why you might have rejected my one-liner.  It can be considered lazy or efficient.  The system I'm sitting at doesn't have Delphi installed, so I would have to move over to a different computer to do a performance test.
in the future, if you ask question for further elaboration directed directly at me in other peoples questions,
you will only get a response to open your own question
i see it as hijacking someone elses question

if you don't have access to delphi, i think you shouldn't act like a zone advisor in the delphi topic area
Poking my head in here.  If this were a system like say, another site where people collaborate and edit answers, then I may support aikimark in prodding for the best from the experts.

For the case in point, I tend to side with Geert.

People pay here so that they can ask direct questions and get quick answers.  No other reason, otherwise they would research themselves.  Experts are not paid and get little satisfaction from token points, so they do what they can as volunteers.  For one volunteer to elicit more work from another is quite frankly over the top.  By all means offer something more/else, but don't point and prod lazily increasing the burden of others.

If you truly honestly want to know more about the difference, ask another question. The subject of the would-be prodding may be more than happy to answer your additional question, or someone else may pipe in with even more info.  You can always point a link to the new question for more information when the dust has settled.
If responses were quick enough to help inside an existing open question, I would agree.  However, my experience has been that is not the case.

If I remark that a particular comment is missing the point of the question/problem, I'm not hijacking the question, rather getting it back on track.

If I remark that a comment is dangerous, I'm not impugning the expert that posted it, rather warning the member (and future readers) that such code may have unintended consequences.

If I remark that a posted solution's underlying algorithm performs badly with larger data sets, I'm not trashing the comment, rather putting the code into perspective for the OP and future readers.

If I question a solution, it might reveal some important bit of information, such as a prior related question that the expert worked on.  I can then edit the question text and add the prior question link.

==========
@Geert

Not having Delphi on my primary system is not the same as not having Delphi at all.  If you think that I poached points from you in a question, please click the request attention link and ask for a better question resolution.  A zone advisor (ZA) does a lot of things that don't involve answering questions.  A designated expert (DE) gets neglected question alerts.  If you aren't a DE, I suggest you sign up to receive the Delphi NQ emails.  

There are many instances where I (as a ZA) rezone a question into the Delphi zone or add zones to gather related topic experts.  There are times when I submit solution comments to questions that I have also rezoned.

========
@cyberkiwi
Did you view the question thread related to this topic of discussion?
http:/Q_27736858.html

Paying members expect quality solutions as well as quick responses.  The logically fastest code solution would have been a earliestdate := Min(Min()) statement configuration.  Asking an expert why that solution wasn't supplied isn't an over-the-top inquiry or an additional burden of work.

The fact is, we do collaborate on solutions.  In fact, there are many instances of collaborative solutions in the PAQ repository.  Also, there are many instances where I have worked with a member to hone/refine a question before issuing the NQ alert.

========
In all cases, I strive to comment in as polite and constructive manner as possible.  I'm not going to stop this behavior when it might benefit the user.  I expect your responses to my comments to be as polite and professional as your comments to the member asking the question.  I'm not competing with you for points.  I'm trying to get optimal answers for the members.
@aikimark
I had read it and Min doesn't apply to nulls/nils. What makes you think I hadn't?
For example
Min(field1.value, field2.value) => error

"I'm trying to get optimal answers for the members."
Not holding water. I can go into any question and ask for references, performance statistics, context, full code (where partial is given) etc - each will increase the value of the answer. But all will burden the volunteer. Shall I do that with each of your answers in the future? Should I expect an article worthy of publishing with every answer you give and prod you when it is lacking anything?

"I'm not going to stop this behavior when it might benefit the user."
That's what worries me. In your view, "it might". But you're not an "expert" in the field. Also, you admit yourself "either lazy or efficient" - I'm sure you're making a tongue in cheek comment that you think yourself efficient in getting more out of experts, but you're just annoying in this case.  Just being blunt.
@cyberkiwi

>>What makes you think I hadn't?
The question link was broken in Geert's earlier comment, until I fixed it.

If I had posted a Min(Min()) solution, I would have expected Geert to remark that it wouldn't handle Null values properly.  If I post a bad solution, please comment.  I'm doing my best, but realize that there are others with much more experience that can give better comments...if they would only participate in the question threads.  In lieu of the really awesome Delphi experts, many members only have me because no one else is trying to answer their question -- a sad state of affairs to be sure.

It amazes me that I have garnered so many points in the Delphi topic area.  I see that I'm currently number six for the year.  And yet, I'm not in the same league as the "experts" like you and Geert.  How can this be?!?  

I apologize for any annoyance, past or future, that I might cause you.
aikimark, cyberkiwi has actually summed it up very nicely
(even if a link is broken, i believe cyberkiwi is clever enough to look into activity history to find the question, you seem to think he is not)
besides this bat single (or this q) has no further relevance anymore with the current way questions are displayed (there is no sorting by latest activity)

in the q mentioned you cause extra work on a volunteer by asking why 1 possible solution out of possibly 100 wasn't commented on
did you expect me to dig in to the 99 other ones too ?

you are being stubborn in not recognising that you are being arrogant and annoying and abusing your role as TA in this q (and some others)

it is in the end up to the user who decides where the benefit is

in this Q i still suspect other reasons for performance
@Geert

I think modus_operandi (one of the EE moderators) probably summed it best in his response to cyber_kiwi's question about inter-expert communication in a question thread
http:/Q_27566030.html#a38038257

You do not have to respond to other expert's questions/comments, unless they are posted as administrative questions.  If you only share your knowledge in exchange for points, your response to my question is understandable. However, I find non-sharing behavior to be rare among industry leaders, especially Delphi, given its Turbo Pascal roots.  In the past, you have gone beyond the minimum contribution when you wrote your Delphi articles, which is commendable.

If you think I'm abusing my power as a ZA, please pass your complaints to Community Support.  However, when I asked you a question about a solution, it was not in my capacity as a ZA, rather as that of a too-highly-ranked-for-my-experience-level expert.  So, you'll need to rephrase your 'abusing my role' complaint.

This thread is different than the Bat Signal thread.  That one is to alert monitoring Delphi experts about questions that need their attention.  So, if Delphi experts aren't on the DE list, they may receive Bat Signal alerts when a question is particularly difficult.  Also, if I've been working with a member with English language trouble, I use the Bat Signal to let the Delphi Experts know that the question is finally ready for answering -- clearly formed question with sufficient uploaded code snippets and files.

Thank you for participating in the Designated Experts program.
you just admitted you really shouldn't be a Delphi Advisor:
too-highly-ranked-for-my-experience-level expert
I don't think you understand what a zone advisor does.  It is different than an expert.  It is unrelated to the Designated Experts program.
>> it's more Topic Area Advisor
https://www.experts-exchange.com/help/viewHelpPage.jsp?helpPageID=66
"act as their technical advisors."
technical is by my thinking someone who has indept knowledge of the topic

if you can't investigate Min(Min()) yourself, would you really still think you are technical advisor  ?
i already indicated you were going to lead this to a flame war
it's a pity i am right
@Geert

I could have investigated Min(Min()) performance relative to the If Else If code you posted. However, the question's criteria weren't entirely clear (what did the OP mean by "fast" and where was the data coming from).  I thought my question might shed some light on your thinking process relative to mine.  I had no idea that you would be so upset about being asked a question about different approaches to a solution we were both working to solve for the OP.

I do have in-depth knowledge about a lot of subjects, having been in the IT business for 37 years and CompSci classes before that.  Sometimes, I surprise myself when I supply a solution that I thought in which I did NOT have much experience.  Last week, I answered a FireMonkey question.  I was shocked when my comment was accepted. I didn't see the problem documented very widely/prominently on the Internet, so I passed the solution on to David I. and Anders Ohlsson -- so the greater Delphi developer community might benefit.

Just because I don't make a living cranking out Delphi code, doesn't mean that I don't understand it enough to help others.

However, I encourage you to complain about me not being enough of a Delphi expert to the Community Support folks.  Telling me that I'm not as good as you (or the rest of the Top 5 Delphi experts above me) is 'preaching to the choir.'  I already know I'm not as experienced as the Top 5.  But that doesn't stop me from trying and learning in the process of participation.
I don't think aikimark really want to ask the "Min" problem.
With regard to the first comment, Min(Min()) looks graceful, so just a suggestion using another word.

I'd like pass the complaints to Community Support if I think the ZA abusing his role.
I don't think this discussion has devolved into a 'flame war'.  I agree with your (and mine) evaluation of my relative Delphi expertise compared to the Top 5.  I encourage you to complain about my lack of expertise in light of my participation in the Delphi zone as both a ZA and expert.  And neither of us are throwing insults at each other (I would have asked a ZA or mod to step in if that had happened after posting an Admin comment to cool down).

It's 3:20 and I need to get some sleep.  I'll return later in the day.
i thought it was getting a little late in nc
you are by all means an expert but i have my doubts about the Delphi Advisor
Think more generalized "Zone", where I patrol those topic areas (Zones) where I can speak the lingo, have some familiarity with the technology, and can settle disputes between members and experts or between experts.

I wish kretzmar (sp?) was still active.  He was the Delphi page editor for many years and I thought he did a wonderful job and brought that Delphi experience that you desire in a technical advisory role.  Several years ago, I accepted the responsibilities of ZA and took the Delphi topic area under my wings as it had no one to nurture it -- much for the same reasons I started a local Delphi user group.

The role of ZA has changed over the years, morphing from a uber technicial (level 3 support) to one of etiquette policeman, Terms-Of-Use guardian, and safety net resource for the non-native English speaking members (the uber n00bs).  One of my primary goals as ZA is to see that questions get answered with the best quality comments (technically correct, polite/professional language, no plagiarism, etc.).  With the limitations of the question wizard, that means I have to rezone a lot of questions. When you encounter an administrative comment from me about zone changes, it was for the purpose of exposing that question to the most appropriate subject matter experts, like you guys in the Top 5.  If there were some way to pin such questions to the top of the open question list, I'd do that too.
ASKER CERTIFIED SOLUTION
Avatar of Mike McCracken
Mike McCracken

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
At this point, I agree.
maybe we can move such discussions here (EE groups):
http://www.experts-exchange.com/groups/Delphi-useful-tips-ideas.html
it is more suitable I think.