Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.28;
Скачать: CL | DM;

Вниз

Меня очень интересует такой вопрос. Можно ли написать программу..   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.017 c
6-92158
Hogo
2003-06-03 12:17
2003.08.28
Объект на основе TIdConnectionIntercept


14-92201
qwwqwq
2003-08-11 17:12
2003.08.28
Need help


7-92284
_Stas_
2003-06-12 13:22
2003.08.28
Вытащить иконку


14-92176
Zhenka
2003-08-11 12:30
2003.08.28
Соитие файлов


3-92063
syte_ser78
2003-08-02 12:17
2003.08.28
связь treeview и таблицы