| 
| 
 | Вопрос # 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]:Наверное, надо было им сделать свойство которое вкл или выкл. эту условную проверку. В программировании иногда логика отличается от математической. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |