![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 19.04.2009
Сообщений: 7
|
![]()
Если свойства MaxValue и MinValue компонента SpinEdit равны между собой, то этот компонент теряет свое самое важное качество – ограничение значения (Value) снизу и сверху.
Например, надо сделать много стоящих подряд компонентов с непересекающимися интервалами. Как этот момент обойти аккуратно и красиво? Я, например, пока сделал так: (MaxValue <> MinValue) Событие от любого SpinEdit SpinEdit12. MinValue:=SpinEdit11.Value; SpinEdit12. MaxValue:=SpinEdit13.Value; SpinEdit13. MinValue:= SpinEdit12.Value; SpinEdit13. MaxValue:=SpinEdit14.Value; Событие от SpinEdit12.Value: if SpinEdit12.Value=SpinEdit11.Value thenSpinEdit12.Value:=SpinEdit12.Va lue+1; if SpinEdit12.Value=SpinEdit13.Value thenSpinEdit12.Value:=SpinEdit12.Va lue-1; Событие от SpinEdit13.Value: if SpinEdit13.Value=SpinEdit12.Value then SpinEdit13.Value:=SpinEdit13.Value+ 1; if SpinEdit13.Value=SpinEdit14.Value then SpinEdit13.Value:=SpinEdit13.Value-1; И так, для каждой пары. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
так если у одного компонента они равны то да....
а если у разных совпадают то все норм... что сделать то надо? можно пример(без тысяч спинов) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 19.04.2009
Сообщений: 7
|
![]()
Надо, что бы пользователь мог задать интервалы произвольной ширины, но смежные. Например, первый заканч. на 5 а второй инт. начинается с обязательно 6.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
интервал задается двумя величинами (начало , длина)
интервалы смежные т.е. начало определяется однозначно по предыдущему следовательно его начало ПОЛЬЗОВАТЕЛЮ задавать НЕ НАДО (сделать недоступным для изменения пользователем ENABLE) а задавать только длину
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 19.04.2009
Сообщений: 7
|
![]()
Вот кусочек кода из файла 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 - не было бы проблем. Я новичек и подвоха не вижу. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
f (FMaxValue <> FMinValue) then
если границы равны то считаем что их нет. это так и есть...так что следите что границы одного спина не были равны Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#7 |
Регистрация: 19.04.2009
Сообщений: 7
|
![]()
Наверное, надо было им сделать свойство которое вкл или выкл. эту условную проверку. В программировании иногда логика отличается от математической.
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
вообще у компонента есть событие OnChange там делайе любые проверки.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SpinEdit и CBuilder | Gromsky | Общие вопросы C/C++ | 0 | 14.05.2009 20:47 |
Обработка Ctrl+V и Shift+Ins в SpinEdit | ZeLiK | Общие вопросы Delphi | 9 | 26.02.2008 02:22 |
Свойство Decimal у SpinEdit | Ko$tello | Компоненты Delphi | 3 | 18.11.2006 17:53 |