Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.006 c
4-92320
nester
2003-06-26 19:17
2003.08.28
Как выгрузить чужую dll-ну? shdoclc.dll


3-92083
Sedunov Vitaly
2003-08-01 13:39
2003.08.28
ADODataSet и eoAsyncFetchNonBlocking


3-91987
M126
2003-07-31 10:05
2003.08.28
Ошибка при программном создании базы


3-92039
Антон Ю.
2003-08-01 14:38
2003.08.28
Fetch All для запросов в FastReport автономных отчетах


14-92219
McSimm
2003-08-01 17:21
2003.08.28
Стоит ли объединить Media / Игры?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский