Ничего не приходит в голову как можно организовать выполнение программы с изменяющимся количеством исходных данных. В качестве примера привожу схему рассчета объема помещения. Загвоздка в том, что помещений участвующих в расчете может изменяться при разных расчетах. В приведенном мной примере взято два помещения. Для следующего расчета их может быть три, четыре или сто. Каким образом все это можно реализовать?
code_1764.txt
Этот топик читают: Гость
Ответов: 1397
Рейтинг: 50
|
|||
карма: 0 |
| ||
файлы: 1 | code_1764.txt [22.5KB] [321] |
Ответов: 899
Рейтинг: 43
|
|||
В плане комнат так
code_1765.txt Использован нестандартный компонент TabControlEx (Delphi) а с вычислением подумать надо [size=-2]------ Добавлено в 23:41 Блин, а с математикой TabControlEx не дружит, постоянно такая муть выпрыгивает [size=-2]------ Добавлено в 00:13 А вот и расчет code_1766.txt |
|||
карма: 0 |
| ||
файлы: 3 | code_1765.txt [1.8KB] [181], Access.JPG [17.8KB] [311], code_1766.txt [2.4KB] [171] |
Ответов: 1397
Рейтинг: 50
|
|||
unalex, спасибо! То шо надо.
|
|||
карма: 0 |
|
Ответов: 262
Рейтинг: 6
|
|||
unalex писал(а): Блин, а с математикой TabControlEx не дружит, постоянно такая муть выпрыгиваета можно поподробнее? Схему, описание ошибки-глюка или действий к нему приведших. Пока не пойму при чем здесь математика. Но все можно исправить. |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Chesh писал(а): Но все можно исправитьТогда начинай с того, что менять парента мимо KOL - неправильно, и рано или поздно крякнет. [size=-2]------ Добавлено в 09:42 Впрочем, и через KOL - тоже никто сладкой жизни не обещал... |
|||
карма: 9 |
|
Ответов: 899
Рейтинг: 43
|
|||
Chesh писал(а): а можно поподробнее? Схему, описание ошибки-глюка или действий к нему приведшихПроще некуда: кинь на форму TabControlEx и Math/MathParse HiAsm 3.64b164, Delphi
|
|||
карма: 0 |
|
Ответов: 1397
Рейтинг: 50
|
|||
При попытке компилировать TabControlEx и Math/MathParse выскакивала ошибка.
Компилирование TabControlEx1_2 и Math/MathParse происходит удачно, но при закрытии программы опять ошибка как уunalex, :? |
|||
карма: 0 |
|
Ответов: 262
Рейтинг: 6
|
|||
Подтверждаю. Ошибка есть. Рождается она в destructor-e THIWin.Destroy в win.pas.
Возможно поможет кто то из старших. Galkov? [size=-2]------ Добавлено в 08:15 Пока выяснил, что виноват HiMathParse. HiMath просто использует две функции из него ArcTan2 и LogN. Убираем uses HiMathParse, копируем эти функции ручками и ошибки нет. --- Далее ... в hiMathParse.pas, в начале пишем {$define F_P}. т.е. делаем сборку под freepascal. замечаем, что ошибка исчезла. как вывод напрашивается вопрос
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
в err.dcu ошибку ничто не вызывает. Он содержит код по отлову исключений, вызываемых в программе.
|
|||
карма: 27 |
|
Ответов: 262
Рейтинг: 6
|
|||
Dilma, но ведь приведенная выше схема не содержит ни одной связи. т.е. код с исключениями не выполняется.
|
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Chesh, ну я же тебе говорил:
Galkov писал(а): рано или поздно крякнетТы изменил данные о родительстве через winApi. Данные в контролах об этом ничего не знают - они имеют у себя другое дерево взаимоподчиненности. Которое используют при уничтожении. Вполне возможно, что при каком-то стечении обстоятельств виндячий объект пытается уничтожиться дважды: сначала его винда уничтожила как реального детишку при уничтожении родителя, а потом KOL, пытаясь уничтожить контрол. Как в реальности, и в какой последовательности это происходит, исследовать - настроения аж никакого. Просто не надо дурить самого себя, не придется заниматься героическим преодолением трудностей. Это философия такая: никогда не планируй себе трудностей "на потом". "На потом" их будет и без твоего планирования - выше крыши. Реально, вместо winApi надо делать TControl.SetParent. Но даже при этом возможны проблемы: если конструктор контрола приаттачил обработчик своих нотификаций к паренту. Панели такого, правда, не делают... А код с исключениями выполняется-то всегда. У компилятора, любимое занятие - это устроить try-finally блок при использовании "своих" динамических объектов (string) в качестве локальных переменных. Не зависимо от подключения err.pas Мне просто думается, что err.pas просто малёхо изменил какие-то системные обработчики Стал ходить чуть-чуть по другому - бомба и взорвалась. А заложил-то ее - ты |
|||
карма: 9 |
|
11