Форум: "Потрепаться";
Текущий архив: 2003.08.28;
Скачать: [xml.tar.bz2];
ВнизМеня очень интересует такой вопрос. Можно ли написать программу.. Найти похожие ветки
← →
Maxja (2003-08-08 11:32) [0]... Можно ли написать программу которая будет строить форму и всё, что в ней содержится исходя из конфигурационного файла. Так же, хотелось бы узнать можно ли таким же образом организовать обработку событий, если создавать библиотеки во время загрузки преложения.
← →
Anatoly Podgoretsky (2003-08-08 11:37) [1]Не уже ли есть сомнение?
← →
Palladin (2003-08-08 11:37) [2]:)))
← →
sts (2003-08-08 11:38) [3]так все и происходит:
формы строятся на основе dfm ( это такие конфигурационные файлы которые хранятся прямо в exe-файле приложения :)
← →
Anatoly Podgoretsky (2003-08-08 11:42) [4]Ну он хочет свои собственные конфигурационные файлы, естественно никаких проблем, нужны только руки, голова и еще раз руки.
← →
MsGuns (2003-08-08 11:53) [5]>Anatoly Podgoretsky © (08.08.03 11:42)
>Ну он хочет свои собственные конфигурационные файлы, естественно никаких проблем, нужны только руки, голова и еще раз руки.
Две пары рук и одна голова ?
← →
Fredericco (2003-08-08 11:58) [6]2 MsGuns © (08.08.03 11:53)
:-)))))
← →
Плохиш_ (2003-08-08 11:58) [7]Одна голова, пара рук и пара ног, чтобы в магазин сначала за книжками, потом за пивом бегать ;-)
← →
JohnJ (2003-08-08 12:20) [8]Одна голова хорошо, а всё тело - лучше! :)
← →
Maxja (2003-08-08 12:24) [9]Издевайтесь издевайтесь )))) нигодяи ))
Короче говоря конкретизирую
на сервере в базе хронятся конфиги для каждого отдельно взятого пользователя, соответственно при удачном логоне на сервак ему передаются спецификации форм и библиотек процедур разрешенных ему.
Дк вот в какую сторону копать, RTTI и IDE?
← →
Скорбящий без Шуток (2003-08-08 12:56) [10]Руки, ноги... главное - Хвост!
← →
PVOzerski (2003-08-08 13:25) [11]Как показал мой скромный опыт :^), можно и на основе RTTI. Можно и проще, IMHO. Типы-шаблоны хранить, а вот изначальных CreateForm перед Application.Run не делать.
← →
Maxja (2003-08-08 13:48) [12]В таком случае, подскажите пожалуйста что почитать, и где посмотреть примерчики можно. Буду примного благодарен. ))
← →
Пешеход (2003-08-09 11:14) [13]Вот хороший пример загрузки и сохранения компонента(формы), валялся здесь полгода назад.
const
FileName = "MainForm.txt";
procedure TMainForm.FormCreate(Sender: TObject);
var
i: integer;
begin
RegisterClass(TFormClass(ClassType));
for i := 0 to ComponentCount - 1 do
RegisterClass(TComponentClass(Components[i].ClassType))
end;
procedure TMainForm.SaveButtonClick(Sender: TObject);
var
MemStream: TMemoryStream;
FileStream: TFileStream;
begin
MemStream := TMemoryStream.Create;
try
MemStream.WriteComponent(Self);
MemStream.Position := 0;
FileStream := TFileStream.Create(FileName, fmCreate or fmShareExclusive);
try
ObjectBinaryToText(MemStream, FileStream);
finally
FileStream.Free
end;
finally
MemStream.Free
end;
end;
procedure TMainForm.LoadButtonClick(Sender: TObject);
var
FileStream: TFileStream;
MemStream: TMemoryStream;
Clone: TMainForm;
begin
FileStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
MemStream := TMemoryStream.Create;
try
ObjectTextToBinary(FileStream, MemStream);
MemStream.Position := 0;
Clone := TMainForm.CreateNew( nil);//
try
MemStream.ReadComponent(Clone);
with Clone do
begin
Hide;
Name := "Clone";
Caption := Name;
SetBounds(Left + 10, Top + 10, Width + 50, Height + 50);
ShowModal
end
finally
Clone.Free
end
finally
MemStream.Free
end
finally
FileStream.Free
end
end;
← →
Anatoly Podgoretsky (2003-08-09 11:41) [14]MsGuns © (08.08.03 11:53)
Обезьяна что ли?
← →
DiamondShark (2003-08-09 14:17) [15]
> В таком случае, подскажите пожалуйста что почитать, и где
> посмотреть примерчики можно. Буду примного благодарен. ))
Исходники ВЦЛ читать.
← →
Глазунья и Болтунья (2003-08-09 14:52) [16]Да, Толя, он обезьяна, все ищет повода тебя подковырнуть. Он недостойный.
← →
nikkie (2003-08-09 15:07) [17]Как-то вы все усложняете... Вполне вероятно, что хватит обычного динамического создания контролей.
>Maxja
На всякий случай, если не знаешь, как это делается:
AEdit := TEdit.Create(AForm);
AEdit.Parent := AForm;
>Так же, хотелось бы узнать можно ли таким же образом организовать обработку событий
С событиями сложнее - каким образом написать обработчик события в "конфигурационном файле"? Если требуется минимальная обработка типа "щелкнул на чекбокс - запротектировалось/распротектировалось поле", то можно сделать это с помощью какого-нибудь скриптового движка. А чтобы иметь дельфийский обработчик, надо иметь откомпилированный код. Например, в виде package или dll. Только в таком случае логично поместить туда же и форму, зачем мучаться с конфигурационным файлом?
если создавать библиотеки во время загрузки преложения.
Тут я совсем перестал понимать... Ты собираешься "создавать библиотеки во время загрузки преложения"???
← →
Anatoly Podgoretsky (2003-08-09 15:10) [18]Глазунья и Болтунья (09.08.03 14:52)
Да по описаню - одна голова и четыре руки, это же обезьяна, у нее как раз такое, у других животных или четыре ноги или две руки и две ноги. Это на тот случай если шутку не понял.
← →
Глазунья и Болтунья (2003-08-09 15:17) [19]У обезьяны четыре руки???
Сейчас пойду смотреть "В мире животных"
← →
Anatoly Podgoretsky (2003-08-09 15:36) [20]Ну так пропробуй дать толкование слову рука. :-)
← →
Глазунья и Болтунья (2003-08-09 18:54) [21]Толя, переведи.
← →
Anatoly Podgoretsky (2003-08-09 19:00) [22]Рука это хвататльное, видел как обезьяны лазят по деревьям, едет бананы? Так что если четыре руки и дело проихсодит на планете земля, то это обезьяна.
← →
Ketmar (2003-08-09 23:34) [23]хм. а не проще ли не заморачиваться, а просто читать те же .dfm? заодно и конструктор интерфейса появиться -- Delphi IDE зовут. удобный, и писать не надо %-)
← →
DrPass (2003-08-09 23:40) [24]
> на сервере в базе хронятся конфиги для каждого отдельно
> взятого пользователя, соответственно при удачном логоне
> на сервак ему передаются спецификации форм и библиотек процедур
> разрешенных ему.
А к чему это извращение? Не проще ли создать n разных форм и сохранить их в n разных файлах/записях/еще где, чем создать n шаблонов, сохранить в n файлах/записях/еще где, и каждый раз динамически создавать форму?
← →
Marser (2003-08-09 23:41) [25]
> Ketmar ©
Давненько ты тут не появлялся, да и там чаще появляешься. Что, в родные пенаты вернулся, али в Киеве удача улыбнулась?
← →
app (2003-08-09 23:52) [26]В отдельную ветку "Возращение Кетмара", без офтопика.
← →
Ketmar (2003-08-10 00:42) [27]>DrPass © (09.08.03 23:40)
не понял. вы что, предлагаете зафигачить сразу все формы в софт? а потом вдруг раз -- и новый пользователь появился. и перекомпилируй. так что идея хороша.
2Maxja © (08.08.03 12:24)
но! как идея разграничения доступа она плоха аж на всю голову. разграничение доступа должно происходить НА СЕРВЕРЕ, а не на клиентской машине. иначе грош цена такой защите. почему, надеюсь, объяснять не надо?
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.08.28;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.005 c