powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / forms vs frames
12 сообщений из 37, страница 2 из 2
forms vs frames
    #32168921
Fakas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да tygra ведь пишет, что нафиг не нужны фреймы потому как функциональность фреймов как контейнеров контролов можно повторитьиспользуя ManualDock. Вооот :). Мне такое решение не нравится, но это уж мое личное дело :). И вот тут я и говорю, что докинг докингом, но он ведь жрет -- и лишний экземпляр довольно немаленького класса создается и контролы рекреатятся (мы с этим воевали помнится. Ой....)
...
Рейтинг: 0 / 0
forms vs frames
    #32168936
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Gold

Я ни чего ни кому не пытался доказывать. Это не я увел тему от того, что было в начале. И про докинг в первом постинге ничего не было. Был впопрос, нужны фрэймы или нет. То есть какую технологию использовать. А ты говоришь цирк. Похоже, что цирк давно уехал, а клоуны остались.
...
Рейтинг: 0 / 0
forms vs frames
    #32168965
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 pkarklin

Ну так всё же ведь давно (ещё в начале ветки) как раз и свели к ManualDock против Frames. Небыло бы ManualDock - небыло бы и альтернативы фреймам.
...
Рейтинг: 0 / 0
forms vs frames
    #32169001
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и лишний экземпляр довольно немаленького класса

Если кто-то еще бы и доказал, что этот немаленький класс действительно составляет немало. А то ведь о чем говорим? О паре килобайт?

А про рекриэйт - что-то не помню, чтобы это мешало - если конечно оно есть, не замечал.
...
Рейтинг: 0 / 0
forms vs frames
    #32169180
kylix_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, на счет того, что цирк давно уехал - это вы зря. Слежу с интересом за разгорающимися баталиями ;*))). Вот, кашу заварил ...

Народ, одно уточнение, работа ведется в Kylix (под Linux). Так я там никакого ManualDock не нашел...

to Fakas
Мне не очень понравилась одна вещь - если использовать кучу фреймов в одной главной форме, то приходится много писать Visible=False/True и все обработчики событий, когда нужно поменять фрейм (то есть один скрыть, а другой показать), сваливаются в главную форму. Это нормально? Или это неправильно?
...
Рейтинг: 0 / 0
forms vs frames
    #32169208
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это

А формы модальные, чтобы не дай бог тетя из отдела кадров не запуталась в окнах (откуда, собственно, и родилась идея о фреймах в одном главном окне).

и это

Мне не очень понравилась одна вещь - если использовать кучу фреймов в одной главной форме, то приходится много писать Visible=False/True и все обработчики событий, когда нужно поменять фрейм (то есть один скрыть, а другой показать), сваливаются в главную форму. Это нормально? Или это неправильно?

Мой совет такой. Делай нормальный MDI интерфейс. Не надо считать пользователя заранее глупым, что он в окнах запутается. А модальными должны быть тока формы выбора из справочников. И без фрэймов. Используй наследование форм.
...
Рейтинг: 0 / 0
forms vs frames
    #32169329
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это точно!

Иначе получится как раз слишком тупым - программист

Никто до сих пор в 1с не запутался. А там MDI.
...
Рейтинг: 0 / 0
forms vs frames
    #32169386
LG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Никто до сих пор в 1с не запутался. А там MDI.
Позволю себе встрять.
Сравним для примера 1с и стандартный Explorer ...
2 разные технологии 2 разные реализации ...
Если с 1с все понятно, то Explorer это НавБар(слева) и фрейм(ы) справа... По моему нариканий у пользователей ни к 1с ни к Explorer не было, все пользуются и радуются...
ИМХО: учитывать нужно и немаловажный фактор - дружественность интерфейса . В Explorer-е запутаться куда сложнее чем в 1с. Если твой выбор пал на MDI интерфейс, то тебе прямая дорога к наследованию форм, если а-ля MS Explorer(OutGluk, etc ...) то делай на фреймах, не ошибешься ...
...
Рейтинг: 0 / 0
forms vs frames
    #32169410
Fakas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To kylix_dev
Не надо мучаться с visibile. Я просто уношу и создаю нужный фрейм. Вот так

procedure TWizardFrame.SetWorkFrame(Value: TClassWorkFrame);
begin
// Освобождаю старый экземпляр
SafeFreeObj(FWorkFrame); // Это наша хитрая убивалка объектов.
FWorkFrame := Value.Create(Self); // вот эти 2 строчки собственно и суть
FWorkFrame.Parent := Workpage;
FWorkFrame.Align := alClient; // Align естественно выставляешь как хочешь.
// Ля-ля тополя по иницалилизации прочих потрохов.
.........
end;

Преимущество -- экономится память -- лишние фреймы в ней не сидят. В эту процедуру передается class reference -- вставляется любой мой фрейм с вирртуальным коснтруктором. В твоем же случае ты просто повторяешь функциональность TPageControl.
Фреймы BTW создаются с помощью визуального наследования (это для pranclin :) ).

To tygra
Use the source Luk ! ((c) Borland ) :). Просто возьми и сравни исходники 2-х классов TForm и TFrame.
По поводу recreate. Нам он сильно мешал. Контролы переинициализируются. А когда был TListView не виртуализированный то этот чертов док вообще втыкал.
...
Рейтинг: 0 / 0
forms vs frames
    #32170222
Dikobrazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делал так: на главной форме создавал панель, и внутрь этой панели помещал (Form2.Parent:=Panel1) другие формы без заголовков и по размеру этой панели, и без всяких фреймов и доков...
...
Рейтинг: 0 / 0
forms vs frames
    #32170547
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dikobrazz
Ну про формы с фреймами ещё можно спорить. А у панелей то какие преимущества? Пенели же нельзя в отдельном модуле конструировать. Причём тут они. С таким же успехом можно вобще отказаться от дизайнера форм и фреймов и всё писать на WinApi. Проги меньше 100 КБ будут. Только вот сколько лет на это уйдёт ...
А то, что ты советуеш, склоняет к статическому созданию ненужнеых экземпляров форм. По моему это совершенно непреемлемо.
...
Рейтинг: 0 / 0
forms vs frames
    #32171349
Dikobrazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold: Да не, ты не понял...
Панель пустая, просто в ран-тайме в нее помещаются другие формы (которые, конечно же, конструируются отдельно).
Ничего необычного в этом нет, любой WinControl может быть помещен внутрь другого WinControl'а.
Выглядело это примерно так (того кода под рукой нет, привожу по памяти)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
procedure TMainForm.PutForm(SFrmClass: string)
var
  FrmCls: TFormClass;
  Frm: TForm;
begin
  if PanelForm<>nil then FreeAndNil(PanelForm); //хотя там прежняя форма как-то посложнее освобождалась
  FrmCls:=TFormClass(FindClass(SFrmClass));
  Frm:=FrmCls.Create(self);
  PanelForm:=Frm;
  Frm.BorderStyle:=bsNone;
  Frm.Top:= 0 ;
  Frm.Left:= 0 ;
  Frm.Width:=Panel1.Width;
  Frm.Height:=Panel1.Height;
  Frm.Parent:=Panel1;
  Frm.Show;
end;

Формы создавались по имени класса, соответственно, их надо было заранее зарегистрировать через RegisterClasses.
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / forms vs frames
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]