|
Maybe I'm missing something but your requirements description sounds like a TabControl solution to me, but if you are for some reason required to make things far more difficult than neccassary for both developer and user then go right ahead and use three dialogs.
led mike
|
|
|
|
|
Even though the 3 dialogs display a spreadsheet, the data and logic behind each is unique. Months of development activity has gone into each of these dialogs, so a TabControl approach isn't really an option at this point. The dialogs are part of a back office procurrement system. One is for Purchase Orders, the 2nd for Invoices, and the 3rd is the Variance dialog(to display differences between the PO and corresponding Invoice).
|
|
|
|
|
follow on question..... Why would it work consistently in the debug environment, and have problems in the EXE?
|
|
|
|
|
littleGreenDude wrote: follow on question..... Why would it work consistently in the debug environment, and have problems in the EXE?
The obvious answer based on what you indicated in reply to most post is that the developers lack fundamental skills. In my experience developers that don't have basic skills in best practices for analysis, requirements, and design create hard to use, buggy, sluggish, expensive software. Keeping things simple is a fundamental Best Practice, what has been developed in your case violates that principle. Not fixing it by changing, whatever the cost, to using a tabcontrol, continues to violate that principle and will continue to be costly in terms of maintenance and quality. You might want to get this book[^] and read it.
Also this interview with Beck[^] is interesting
led mike
|
|
|
|
|
I appreciate what you are saying, and I will definitely pick-up a copy of the book. However, managment wants 3 individual dialogs, and they are looking for a 1 to 2 day fix. Unfortunately, a re-write with a tab control approach isn't an option.
Thank you for the response/advice.
|
|
|
|
|
littleGreenDude wrote: However, managment wants
How it's supposed to work is, you are responsible for ensuring you are qualified as a "Professional" developer before you end up in a situation where you have "managers" that are paying you to develop software.
"Actually this book is build on a rather fragile premise: that good code matters…..
In the end, then, this is a book about responsibility. As a programmer you have been given time, talent, money, and opportunity. What will you do to make responsible use of these gifts?" - Kent Beck in Implementation Patterns
led mike
|
|
|
|
|
When did this become a personal attach on me?
The company existed 12 years before I walked through the door. Some of the code I inherited dates back to the 90's. And all of a sudden, you are making me responsible for something written years before me.
I was looking for some positive/helpful advice, creative ideas.
|
|
|
|
|
littleGreenDude wrote: And all of a sudden, you are making me responsible for something written years before me.
No you are responsible for taking the job with 12 year old code and for what you do now.
littleGreenDude wrote: I was looking for some positive/helpful advice, creative ideas.
I try to avoid providing people with lousy solutions. The solution I suggested is preferable to some hack that will just degenerate the situation even more.
led mike
|
|
|
|
|
Are you saying you are in the habit of denying management requests?
Also, out of curiousity what makes somebody a qualified professional?
28 years of programming experience? -got it
Computer Science degree from one of the top engineering universities in the country? -got it
Technical Training from Microsoft? -got it
Published in a Technical Journal? -got it
|
|
|
|
|
littleGreenDude wrote: Are you saying you are in the habit of denying management requests?
I am in the habit of helping them understand that when they think they can't afford to do it right it is at least partially because they don't know how much it's going to cost them to do it wrong.
littleGreenDude wrote: 28 years of programming experience? -got it
Computer Science degree from one of the top engineering universities in the country? -got it
Technical Training from Microsoft? -got it
Published in a Technical Journal? -got it
So are you comparing yourself to Kent Beck? -got it?
Also their is no way I would have guessed you have that background based on your original post
littleGreenDude wrote: (and I guess if the answer is the dialogs shouldn't be modal, I'll accept it, but not necessarily like it).
and the fact that you need help with this problem to begin with. I have worked with people with far less credentials than you claim to have who would have refactored that nightmare into a tab control solution in two to three days. Meanwhile here you are four days later still whining about it.
led mike
|
|
|
|
|
They don't want a tab control.
When it comes to software development, 98% of what we do is mundane and common. Every once in a while you come across something where you would like to know if there is some out of the ordinary solution/creative idea. I never said the problem wasn't resolved, I just was curious about other ideas/solutions. Isn't that what a forum is for?
Just to recap- you've insulted my career choice, called me a liar, and accused me of whining. Maybe you should check the parking lot to make sure I haven't stolen your car.
Man, what is your problem? Didn't your mother hug you enough as a child?
|
|
|
|
|
littleGreenDude wrote: called me a liar
That's not true, just because I cited other people I worked with having far less than you claim to have doesn't mean I think you are lying. I work with people now that have 2/3 the time in the industry as you with degrees that couldn't program their way out of a wet paper bag. It's not really possible to conclude anything about a developers expertise only from the credentials you listed off.
littleGreenDude wrote: you've insulted my career choice
That one I'm not following
littleGreenDude wrote: and accused me of whining
I'll stick by that one
For the record I don't have a clue what your expertise as a developer is. Your posts so far have not really provided information that could be used to gauge that. Due to that, many of my observations about developers were intentionally not aimed at you in any way. My last reply is just explaining, why, from your posted qualifications my inclination is to believe you would be perfectly capable of refactoring to tab controls in several days.
I did understand you were working with legacy code that you may not have written. None of that however changes my opinion about what a minimum quality solution to the problem might be, which is what I gave you.
My normal posting style tends to be sarcastic. That coupled with my disdain and normally direct refusal to hack software solutions has falsely given you the impression that I have been attacking you. I apologize for that but my stand on your development problem has not changed.
led mike
|
|
|
|
|
hi there,
Could anybody please help me in this:
I need to check the current time in my application after each message that my application receives and whenever it is midnight I reset a counter inside my program.
I appreciate any ideas
Thanks,
Nahitan
|
|
|
|
|
In your window's message procedure, do something like:
time_t t;
time(&t);
tm *now;
now = localtime(&t);
if (now->tm_hour ...)
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Thank you very much for your help. When I added your code in my application and when I compile it I get:
time_t mt; time(&mt); tm *now; now = localtime(&mt);
LogError("ClassA","IClass","jjjjjjjhour=%tm", now->tm_hour);
Error executing c:\windows\system32\cmd.exe.
Class.dll - 1 error(s), 0 warning(s)
Thanks,
|
|
|
|
|
So which of the three staments is in error?
What does %tm do?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
You confused the poor compiler somewhere. Set a few breakpoints, and find out what's happening.
Work with Asserted Values, Run Trivial Examples, Write a Dedicated App to take just this step (Can be a Dialog based App,Call your code in OnInitApp() ). This is called 'Debugging'. The above are the steps I would take, and in that following order. I bet that Step One will lead you to the solution.
It may be slow and tedious, but that's what writing software is about.
Let me know how you're getting on.
Bram van Kampen
|
|
|
|
|
I can't figure out what to do. I changed the code to:
time_t mt; time(&mt);
tm *now;
now = localtime(&mt);
if (now->tm_hour==16){LogError("AClass","BProcess","Hour is 4 pm");}
I still get the same error message
Without these 5 lines of code, I do not get any error. I even took out the if statement and I still get the error!
|
|
|
|
|
time_t mt;
time(&mt);
// I would use mt =time(NULL);
struct tm *now;
now = localtime(&mt);
tm is part of the tag Name Space. Not part of cpp as such, but still there
// Works in MSVS 5.00
Bram van Kampen
|
|
|
|
|
Thanks a lot, worked perfectly!
Thanks thanks thanks,
|
|
|
|
|
Thinking a bit further.
struct tm is part of the C-Runtime, not CPP. That's why you need to qualify tm as a structure tag. In other words, struct tm was declared as a structure tag under 'C' it has therefore no typedef value under cpp.
Regards
Bram van Kampen
|
|
|
|
|
<br />
#include < windows.h ><br />
#include < stdio.h ><br />
<br />
void main(){<br />
<br />
SYSTEMTIME sysTime;<br />
GetLocalTime(&sysTime);<br />
printf("\nHour = %d",sysTime.wHour);<br />
<br />
}<br />
modified 20-Oct-19 21:02pm.
|
|
|
|
|
Hi,
How does the listbox part of combobox appear beyond the parent's client area without being clipped whereas a hand made listbox,when moved near the edge of the parent's client area get clipped?
I mean, suppose the parent's client area is 300x300. If I move a combobox to 100,250 with dropdown height as 100 and click on it, it opens up. Now suppose I move a listbox of size 100x200 to 100,250. It is clipped.
What's the trick ? I guessed the combo's listbox is sibling of the combo's parent and has higher Z order....
I need this to work. F1.
Koder.
|
|
|
|
|
I would guess the combo box's list window is a child of the desktop window.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Mark Salsbery wrote: I would guess the combo box's list window is a child of the desktop window.
Well you can't actually get Spy++ on the drop down window ( at least I can't figure out how ) but putting on one that has the list displayed statically or on a rolled-up combobox does not show the desktop as an owner of the any of combobox windows.
led mike
|
|
|
|