Home » U++ Library support » LineEdit, EditFields, DocEdit » EditMinMax ctrl implementation
EditMinMax ctrl implementation [message #1032] |
Wed, 15 February 2006 20:52  |
pivica
Messages: 57 Registered: November 2005 Location: Belgrade, Serbia
|
Member |
|
|
I have next problem. I'm using EditDouble ctrl with min and max limits. Current implementation of checking min/max boundaries isn't good for me. For example, boundary checking is done when window with EditDouble ctrl is closing. It would be much better to check limits when EditDouble ctrl lost its focus.
Well after couple of hours trying to implement some good solution in CtrlLib\EditField.cpp I give up. Problem is that I couldn't effectivly implement LostFocus() in EditValue class because EditString is inherit from it, too. In the end, here is something I've manage to implement:
template <class DataType, class Cv>
class EditMinMax : public EditValue<DataType, Cv> {
public:
virtual void LostFocus();
// rest of class EditMinMax...
};
template <class DataType, class Cv>
void EditMinMax<DataType, Cv>::LostFocus()
{
DataType dt;
if (!EditMinMax<DataType, Cv>::text.IsEmpty() && IsNumber(dt)) { // Checking int and double.
String s = EditMinMax<DataType, Cv>::text.ToString();
CParser p(s);
if (p.IsDouble())
dt = p.ReadDouble(); // gcc warning: converting to `int' from `double'?
else if (p.IsInt()) // Not doing well for doubles - returns true in 602b version?
dt = p.ReadInt();
if (dt < Cv::GetMin())
s = AsString(Cv::GetMin());
else if (dt > Cv::GetMax())
s = AsString(Cv::GetMax());
WString text1(s);
EditMinMax<DataType, Cv>::text = text1;
}
EditField::LostFocus();
}
Anyway I don't like how EditMinMax ctrls are working. My opinion is that it would be much better to check limits when EditMinMax lost its focus. But if this can't be done in U++ level, I guess I will have to implement my own EditMinMax ctrl.
|
|
|
 |
|
EditMinMax ctrl implementation
By: pivica on Wed, 15 February 2006 20:52
|
 |
|
Re: EditMinMax ctrl implementation
By: mirek on Wed, 15 February 2006 21:19
|
 |
|
Re: EditMinMax ctrl implementation
By: pivica on Wed, 15 February 2006 21:46
|
 |
|
Re: EditMinMax ctrl implementation
By: mirek on Wed, 15 February 2006 22:12
|
 |
|
Re: EditMinMax ctrl implementation
By: pivica on Thu, 16 February 2006 07:44
|
 |
|
Re: EditMinMax ctrl implementation
By: mirek on Thu, 16 February 2006 17:17
|
 |
|
Re: EditMinMax ctrl implementation
By: mirek on Thu, 16 February 2006 17:19
|
 |
|
Re: EditMinMax ctrl implementation
By: pivica on Thu, 16 February 2006 17:40
|
 |
|
Re: EditMinMax ctrl implementation
By: hojtsy on Sat, 18 February 2006 23:36
|
 |
|
Re: EditMinMax ctrl implementation
By: mirek on Sat, 18 February 2006 23:53
|
 |
|
Re: EditMinMax ctrl implementation
By: mirek on Sat, 18 February 2006 23:54
|
 |
|
Re: EditMinMax ctrl implementation
By: hojtsy on Sun, 19 February 2006 00:15
|
 |
|
Re: EditMinMax ctrl implementation
By: mirek on Sun, 19 February 2006 07:11
|
 |
|
Re: EditMinMax ctrl implementation
By: pivica on Sun, 19 February 2006 19:46
|
 |
|
Re: EditMinMax ctrl implementation
By: mirek on Sun, 19 February 2006 22:56
|
Goto Forum:
Current Time: Tue Apr 29 11:10:23 CEST 2025
Total time taken to generate the page: 0.00492 seconds
|