|
Вопрос # 3 142/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Если свойства MaxValue и MinValue компонента SpinEdit равны между собой, то этот компонент теряет свое самое важное качество – ограничение значения (Value) снизу и сверху.
Например, надо сделать много стоящих подряд компонентов с непересекающимися интервалами.
Как этот момент обойти аккуратно и красиво?
Я, например, пока сделал так: (MaxValue <> MinValue)
(приложение)
И так, для каждой пары.
Приложение: Переключить в обычный режим-
- SpinEdit12. MinValue:=SpinEdit11.Value;
- SpinEdit12. MaxValue:=SpinEdit13.Value;
- SpinEdit13. MinValue:= SpinEdit12.Value;
- SpinEdit13. MaxValue:=SpinEdit14.Value;
-
-
- if SpinEdit12.Value=SpinEdit11.Value thenSpinEdit12.Value:=SpinEdit12.Value+1;
- if SpinEdit12.Value=SpinEdit13.Value thenSpinEdit12.Value:=SpinEdit12.Value-1;
-
-
- if SpinEdit13.Value=SpinEdit12.Value then SpinEdit13.Value:=SpinEdit13.Value+1;
- if SpinEdit13.Value=SpinEdit14.Value then SpinEdit13.Value:=SpinEdit13.Value-1;
 |
Вопрос задал: Junior (статус: Посетитель)
Вопрос отправлен: 1 сентября 2009, 20:39
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 2 сентября 2009, 22:35; участников в обсуждении: 4.
|
min@y™ (статус: Доктор наук), 1 сентября 2009, 21:02 [#1]:
Можно на OnChange следить, чтобы
if MaxValue > MinValue
then ...
else ... ;
Вообще, странный подход. Я бы это оформил, как в Partition Magic, например. Для чего такое надо? Может, есть более другое решение?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Junior (статус: Посетитель), 1 сентября 2009, 23:21 [#2]:
Partition Magic есть в Д7, если есть то где? Просто искать времени нет.
|
|
Вадим К (статус: Академик), 1 сентября 2009, 23:29 [#3]:
Partition Magic - это программа такая.
А может быть, когда совпадают границы, просто делать его недоступным?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Amidamaru (статус: 4-ый класс), 2 сентября 2009, 15:48 [#4]:
Насколько много? Можно уменьшить количество кода, если запихнуть их всех в TList или TObjectList.
Согласен насчет "делать его недоступным" или лучше наверно ставить ему ReadOnly:=true;
|
|
Junior (статус: Посетитель), 2 сентября 2009, 20:38 [#5]:
Вот кусочек кода из файла Spin.pas:
function TSpinEdit.CheckValue (NewValue: LongInt): LongInt;
begin
Result := NewValue;
if (FMaxValue <> FMinValue) then
begin
if NewValue < FMinValue then
Result := FMinValue
else if NewValue > FMaxValue then
Result := FMaxValue;
end;
end;
Зачем Борланд добавила условный оператор: if (FMaxValue <> FMinValue) then - не было бы проблем. Я новичек и подвоха не вижу.
ЗЫ Partition Magic конечно же прога )))) совсем уже засиделся
|
|
Junior (статус: Посетитель), 2 сентября 2009, 22:35 [#6]:
Наверное, надо было им сделать свойство которое вкл или выкл. эту условную проверку. В программировании иногда логика отличается от математической.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|