Въпрос # 3142 ... ksperty! Ако свойствата MAXVALUE и MINVALUE компонент spinedit еднакво ... (работещи с

Здравейте, скъпи експерти!

Ако свойствата и MAXVALUE MINVALUE SpinEdit компонент равни помежду си, този компонент губи своята най-важното качество - ограничение стойност (Value) от по-горе и по-долу.
Например, необходимо е да се направи много стои в един ред на компоненти с несвързани интервала.

Как да се получи около тази точка спретнато и красиво?
Например, аз го направих така, докато: (MAXVALUE <> MINVALUE)

И така, за всяка двойка.

  1. SpinEdit12. MINVALUE: = SpinEdit11.Value;
  2. SpinEdit12. MAXVALUE: = SpinEdit13.Value;
  3. SpinEdit13. MINVALUE: = SpinEdit12.Value;
  4. SpinEdit13. MAXVALUE: = SpinEdit14.Value;
  5. ако SpinEdit12.Value = SpinEdit11.Value thenSpinEdit12.Value: = SpinEdit12.Value + 1;
  6. ако SpinEdit12.Value = SpinEdit13.Value thenSpinEdit12.Value: = SpinEdit12.Value-1;
  7. ако SpinEdit13.Value = SpinEdit12.Value след SpinEdit13.Value: = SpinEdit13.Value + 1;
  8. ако SpinEdit13.Value = SpinEdit14.Value след SpinEdit13.Value: = SpinEdit13.Value-1;

издадат мини-форум

OnChange е възможно да се гарантира, че
ако MAXVALUE> MINVALUE
след това.
друго. ;

Като цяло, един странен подход. Бях го проектирани, както в Partition Magic, например. Какво е необходимо? Може би има друго решение?

Аз правя лаборатории и kursachi на Delphi и Turbo Pascal. За бирата! Напиши в лично, и по-добре в ICQ. И още по-добре - обадете се на Skype!

Partition Magic е в D7, ако има, къде? Просто погледнете за никой.

Partition Magic - е програма, по този начин.
И може би, когато една и съща граница, само за да го недостъпен?

Tick ​​"прочете потвърждение" - универсален зло.

Колко? Можете да намалите обема на кода, ако ги бутнете в TList или TObjectList.
Съгласен съм за "Направи го недостъпна" или може би по-добре го сложи ReadOnly: = вярно;

Ето една част от код от Spin.pas на файлове:

функционира TSpinEdit.CheckValue (NEWVALUE: LongInt): LongInt;
започвам
Резултат: = NEWVALUE;
ако (FMaxValue <> FMinValue) след това
започвам
ако NEWVALUE Резултат: = FMinValue
иначе, ако NEWVALUE> FMaxValue след това
Резултат: = FMaxValue;
приключи;
приключи;

Защо Borland добавя условен израз: ако (FMaxValue <> FMinValue), след това - няма да има никакви проблеми. Аз съм начинаещ и не виждате работа.

Заплаха Partition Magic сигурност прог)))) още не остана твърде дълго

Вероятно, че е необходимо да ги правят на имота е включен или изключен. това условие проверка. Логиката за програмиране понякога е различен от математическата.