Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Помогите советом ... (про многооконный интерфейс)   Найти похожие ветки 

 
Liona   (2004-04-10 14:53) [0]

Вот что вы можете мне посоветовать для многооконного интерфейса?

Необходимо создать программу с многооконным (более 10 окон) интерфейсом как MDI (все окна в одном, но грузятся по мере надобности). Но MDI сама неподходит так как "дочернии" окна генерируючтся динамически, а надо что бы все окна были индивидуальны. (Или я что то не так поняла про MDI?)
Причитала про Frames - могут ли они мне чемнибуть помочь?

Второе что меня смущает - это при создании многооконного интерфейса все формы разом загружаются - неужели мне надо забивать ими память (делая Visible:= false), что бы использовать поодиночке по мере надобности?

З.Ы. напоминаю что я с первого курса, и знаю не намного более того что там преподают, по этому если можно то неслишком заумно, а лучше присылайте DEMO версии (исходники) на forums@maksients.lv или на liona@tsi.lv

Зарание всем благодарна за льбую оказанную помощь!


 
Sphinx ©   (2004-04-10 15:08) [1]

> Второе что меня смущает - это при создании многооконного
> интерфейса все формы разом загружаются - неужели мне надо
> забивать ими память

А это как же тогда сочетается с таким кодом:
if not Assigned(Form2) then
 Form2:=TForm2.Create;
 Form2.ShowModal;
 FreeAndNil(Form2);

при условии что Form2 перенгесена из создающихся автоматически?

Создавай хоть 110 форм в памяти они висеть не будут.


 
Liona   (2004-04-10 15:50) [2]


>  это как же тогда сочетается с таким кодом:
> if not Assigned(Form2) then
>  Form2:=TForm2.Create;
>  Form2.ShowModal;
>  FreeAndNil(Form2);
>
> при условии что Form2 перенгесена из создающихся автоматически?
>
> Создавай хоть 110 форм в памяти они висеть не будут.


прошу прощения, но я так и непоняла куда этот кед вписывать и какие при этом параметры в начале надо ставить  для Form2?


 
TUser ©   (2004-04-10 15:52) [3]

В MDI приложениях дочерние формы можно генерить динамически. Вот эта фраза
неподходит так как "дочернии" окна генерируючтся динамически, а надо что бы все окна были индивидуальны.
требует некоторых пояснений.

А для незабивания памяти - [1] или убрать формы из списка автоматически генерируемых. Сам я обычно по привычке делаю [1]. Только в исходнике проекта надо прибить CreateForm.


 
Liona   (2004-04-10 16:08) [4]


> В MDI приложениях дочерние формы можно генерить динамически.
> Вот эта фраза
> неподходит так как "дочернии" окна генерируючтся динамически,
> а надо что бы все окна были индивидуальны.
> требует некоторых пояснений.


Дело в том что мне надо сделать административную базу данных банка. Тоесть там администратор в 1-ой программе должен в различных окнах вводить новые банки, клиентов, кредитки; просматривать данные по каждой проводке, по каждому клиенту, по проводкам банка в день,... и много много другово.
Так вот я хочу что бы это все выглядело как MDI.

Как мне это сделать? пришлите демку если несложно, а то код кусками я непонимаю.


 
Sphinx ©   (2004-04-10 16:47) [5]

> прошу прощения, но я так и непоняла куда этот кед вписывать
> и какие при этом параметры в начале надо ставить  для Form2?

Поясняю:
1. На вкладке свойств проекта Project->Options перемести все не основные формы из Auto-create forms в Avalible forms (В примере это Form2).
2. далее где надо вызвать Form2 пишешь:
> if not Assigned(Form2) then  //ЕСЛИ НЕ существует (назначена) Form2
>  Form2:=TForm2.Create;  //ТО создаем её
>  Form2.ShowModal;       //показываем модально
>  FreeAndNil(Form2);     //Удаляем вмессте со ссылкой на форму
Если делать Form2.Free то при следующей попытке создать вызвать форму Form2 получим Access violent.... потому что Assigned не сработает (ссылка на форму есть), а сама форма уничтожена.

Вопрос: Почему именно MDI?


 
Liona   (2004-04-10 17:42) [6]


> Вопрос: Почему именно MDI?


Не именно MDI, а как MDI. Просто хочется что бы программа смотрелась как единое целое, а не каждая форма сама по себе хаосом по монитору.

Поэтому я и спрашиваю - что посоветуете для многооконого интерфейса как MDI?


 
Sphinx ©   (2004-04-10 18:02) [7]

> каждая форма сама по себе хаосом по монитору.

:) и в бардаке был порядок.

Если хочется порядка попробуй именно MDI или как вариант (не самый лучший) контролировать в формах их положение, то есть если она вышла за определенные границы - возвращать назад.

Но все равно если форм действительно много то все равно будет непорядок в их размещении.

> сделать административную базу данных банка.

хм...а глупость можно? Одним Access-ом не ограничиться, или чем похожим?


 
Liona   (2004-04-10 18:41) [8]


> хм...а глупость можно? Одним Access-ом не ограничиться,
> или чем похожим?


Дело в том что я делаю курсовую по Pascal. Поэтому выбоа особого нет.


 
Liona   (2004-04-10 19:11) [9]

Sphinx - прошу, пришли мне пример по мылу. Я так поняла что ты предлагаешь сделать MDI, но сделала всй как то написал, а при вызове Form2 он вадает ошибку.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.031 c
7-1077469102
Vlad25
2004-02-22 19:58
2004.04.25
Как получить буквы cd-приводов?


3-1080648670
ЁПРСТ
2004-03-30 16:11
2004.04.25
ADOQuery пропускает первую запись запроса


14-1080742976
Nick-from
2004-03-31 18:22
2004.04.25
Dll


1-1081341459
Questioner
2004-04-07 16:37
2004.04.25
Изменение стиля окна TWebBrowser..


14-1081164946
Info
2004-04-05 15:35
2004.04.25
В CVS на firebird.sf.net появился FireBird 1.5.1





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский