Собственно задача следующая есть Грид как то заполненный,надо ответить на 2 вопроса. Первый, упорядочена ли Итая строка,второй, найти максимальную разность между элементами первой и последней строк.(имееться в виду макс разность между элементами только в 1 столбце,тобиш не полный перебор, а а11 с аN1 ,а21 с N2 и тд и вывести максимальную. Какие проблемы возникли ,первое изначльно окошло должно быть весьма маленьким,но когда я запускаю дебаг оно на пол экрана вылегает,в других проектах такого не замечалось,как исправить не знаю.Затем,когда пытаюсь свернуть окошно оно не исчезает, а сворачиваеться в край главного окна,а так же наотрез октазываются работать окно выбора задания,когда я вызываю его из меню или уже из окна самого решения задачи.(Собственно я понимаю,что та функция, что я вызываю, делает совсем не то что надо,но какая нужна, не знаю.И последнее я не совсем понимаю как по дефолту сделать так,чтобы оба chekboxa были включены,даже,если окно с выбиром не было вызвано. Прикрепляю сей ужос,по другому не назову.
Затем,когда пытаюсь свернуть окошно оно не исчезает, а сворачиваеться в край главного окна
Welcome to MDI Это стандартное поведение MDI-интерфейса...
Цитата
первое изначльно окошло должно быть весьма маленьким,но когда я запускаю дебаг оно на пол экрана вылегает,в других проектах такого не замечалось,как исправить не знаю.
Залезь в его свойства (в Object Inspector-е, я имею в виду) и поменяй Position на poDefaultPosOnly... Тогда при старте значениями CW_USEDEFAULT будет инициализироваться только позиция окна, а его размеры возьмутся из Designer-а.
Насчет
Цитата
наотрез октазываются работать окно выбора задания,когда я вызываю его из меню или уже из окна самого решения задачи
- не понял, последовательность действий озвучь... Кстати, при вызове "Еще - Выбор задачи" прямо сразу после запуска - программа вообще рушится... Это так надо?
P.S. Чего это TfrmInputOutput - не fsMDIChild? Ты уж реши для себя, у тебя MDI-интерфейс, или нет. Если да - то ВСЕ формы должны быть fsMDIChild, кроме главной (которая fsMDIForm). Не надо перемешивать MDI/SDI...
Автор: Krjuger 27.10.2011 0:01
Да просто задание было сделать SDI,что получилось на ура,а потом переделать в MDI,вот и полезли косяки.Эх щас пойду дальше переосмысливать,но чето MDI мне уже начинает ненравится.Пойду воевать)
Автор: Krjuger 27.10.2011 0:55
Так, если я правильно понимаю,то мне надо все мои классы запихнуть в один fsMDIChild, или можно сделать их всех наследуемыми от fsMDIChild? Просто как сделать так,чтобы было MDI,и все окна сразу я представляю,но мне так не хочеться,я бы хотел,чтобы при нажатии на выбор задачи появлялось окно выбира,при нажитии на решение появлялось окно решения.Ну Аbout трогать не стану,пусть так висит.Но как это сделать?
Автор: IUnknown 27.10.2011 2:20
Неправильно понимаешь. Тебе надо у твоей формы, которая сейчас никакая, изменить стиль на fsMDIChild, чтобы она тоже была дочерним MDI-окном. Окно About можешь оставить обычным, оно и в стандартном примере - обычное.
На самом деле - не совсем понятно, какая цель преследовалась теми, кто дал это задание. Просто чтоб помучить? Чтоб поняли, что в MDI то, что создано - то видимо, а невидимых окон быть не может? Зачем это всё?
Цитата
Просто как сделать так,чтобы было MDI,и все окна сразу я представляю,но мне так не хочеться,я бы хотел,чтобы при нажатии на выбор задачи появлялось окно выбира,при нажитии на решение появлялось окно решения
Просто такой закон MDI: скрыть форму нельзя. Зато можно ее удалить, и при необходимости - создать заново. Но это - бред
Автор: Krjuger 27.10.2011 20:33
Ну в общем вторая ревизия сей гадости.Поскольку окна дестрояться,надо как то сохратить текущие значения.Моя попытка делать это в классе окна решения потерпела фейл))Где лучше всего их глобально обьявить? Еще есть вопрос,как ограничить формы,чтобы они за пределы главного окна не выезжали.Ну и окна дестрояться только при нажатии закрытия,а при нажатии на Ок при выборе задачи не получилось чето)))
Ну и окна дестрояться только при нажатии закрытия,а при нажатии на Ок при выборе задачи не получилось чето)))
Что там может не получиться? У тебя ж есть меню, которое вызывает создание и открытие frmInputOutput? Есть. Вот и пользуйся этим...
procedure TMDIChild.btnOkClick(Sender: TObject); begin {} MainForm.N1Click(Sender); // Открываем новое окно Close; // Закрываем текущее end;
Цитата
Поскольку окна дестрояться,надо как то сохратить текущие значения.Моя попытка делать это в классе окна решения потерпела фейл))Где лучше всего их глобально обьявить?
Лучше всего - в классе TMainForm. Чего там тебе сохранять в frmType? Два чекбокса? Можешь добавить 2 переменные типа Boolean, в которые будешь сохранять хранить значения чекбоксов перед закрытием формы. А вот с frmInputOutput все гораздо серьезнее Там сохранять надо больше, я бы вообще при закрытии этой формы сбрасывал всё нужное в TMemoryStream (опять же, описанный в главной форме), и при открытии - читал бы из него назад в форму... В том же порядке, в котором оно и записывалось.
Автор: Krjuger 27.10.2011 22:19
Цитата
А вот с frmInputOutput все гораздо серьезнее Там сохранять надо больше, я бы вообще при закрытии этой формы сбрасывал всё нужное в TMemoryStream (опять же, описанный в главной форме), и при открытии - читал бы из него назад в форму... В том же порядке, в котором оно и записывалось.
Не это уж фиг,не та задача,чтобы так выкареживаться. Принципи даже то,что уже есть я могу сдать,но есть один момент.Если его не сложно исправить,то буду рад.В общем мне не нравиться,что можно понаделать десятки одних и других окошек,хотелось бы ,чтобы,если есть окно задачи,то новое не создавать,а работать со старым,если оно свернуло или на заднем плане,то разворачивать и делать активным.То есть в скинутой тобой процедуре нао сделать проверку на существование данного окна....Но я порывшись че то не нашел.
Автор: IUnknown 29.10.2011 12:26
Цитата
В общем мне не нравиться,что можно понаделать десятки одних и других окошек,хотелось бы ,чтобы,если есть окно задачи,то новое не создавать,а работать со старым,если оно свернуло или на заднем плане,то разворачивать и делать активным.
Это противоречит принципам MDI. Дело твое, ковыряйся, может, чего и найдешь, и оно даже иногда будет работать так, как тебе хочется. Но это без меня. Я не занимаюсь вопросами "прилепить пятую ногу зайцу, чтобы была". В этой задаче MDI вообще на фиг не нужен.
Кстати, объясни мне один момент: у тебя в Main.pas есть строки
Цитата
var MainForm: TMainForm; frmType: TMdiChild; frmInPutOutPut: TfrmInputOutput; implementation
. И подключаются модули "... ImgList, ufrmType, Unit1;" Но в этих двух модулях есть глобальные переменные с теми же именами, frmType и frmInPutOutPut. Внимание, вопрос: это чтоб усложнить отладку, специально сделано так? При малейшем чихе (попытке внести изменения в код Unit1) вылезают сообщения, что меток PresChekBox1 и PresChekBox2 там отродясь не было, а ты с ними работаешь каким-то образом В общем,
Цитата
Принципи даже то,что уже есть я могу сдать
- пока рановато... Программа требует доработки...
Автор: Krjuger 29.10.2011 18:14
Цитата
Это противоречит принципам MDI. Дело твое, ковыряйся, может, чего и найдешь, и оно даже иногда будет работать так, как тебе хочется. Но это без меня. Я не занимаюсь вопросами "прилепить пятую ногу зайцу, чтобы была". В этой задаче MDI вообще на фиг не нужен.
Я начинаю в MDI разочаровываться все больше и больше(((
Цитата
Кстати, объясни мне один момент: у тебя в Main.pas есть строки
Чесно....не помню,видимо поначалу хотел как то по другому все сделать,но они не мешали и не пораждали ошибок и я про них забыл, косяк блин(
Ну и на данным момент последняя версия,вроде весьма стабильная.