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

Вниз

метод show для форм   Найти похожие ветки 

 
andre_nik   (2002-10-29 16:29) [0]

подскаждите, пожалуйста, каким образом можно реализовать сей факт:
есть база данных где описаны имена форм и описалово к ним,и в зависимости от того какая запись выбрана-открывается соотвествующая форма. Формы генерятся при запуске программы
Если можно с исходными примерами
Заранее благодарен


 
TTCustomDelphiMaster   (2002-10-29 16:52) [1]


> и описалово к ним


Всмысле информация о том какие компоненты раположены на форме или просто написано зачем эта форма нужна?


 
Bis   (2002-10-29 16:58) [2]

Если правильно понимаю, речь идет о сохранении шаблонов, по которым можно построить визуальные формы для ввода информации


 
Andre_nik   (2002-10-30 06:00) [3]

пример
база
поле1......поле2
form11 форма картотеки
form_22 форма платежного поручения
ggg_yyy форма еще чего нить

по поле2 делается скрол бар.и в зависимости от того какой итем выбрали, должна открыться соответствующая форма
к примеру выбрали поле "форма картотеки" должна показаться форма "form1". Оператор Case не подходит - слишком уж много записей в базе



 
Mike_Goblin   (2002-10-30 10:56) [4]

Создавать класс формы через CreateNew, а не Create, использовать для загрузки и хранения формы мехнизм загрузки/сохранения в dfm


 
----   (2002-10-30 11:43) [5]

Можешь сохранять эти формы в потоки и хранить их (потоки) в блоб полях.
Приблизительно это будет выглядеть так:

сохраняем форму в файл
VAR
fs: TFileStream;
BEGIN
fs:=TFileStream.Create(Filename,какие-то параметры..смотри хелп);
fs.WriteComponent(Form1);
fs.Free;
END;

Потом ты этот файл с формой записываешь в BLOB-поле и при необходимости считываешь. Форма сохраняется со всей своей функциональностью.
Считываешь форму так:
var
my_form: TForm;
begin
//считываем файл из базы в поток
TBlobField(table1.FieldByName("pole3")).SaveToStream(fs);
//считываем форму из потока
TComponent(my_form):=fs.ReadComponent(nil);

//дальше можно работать с твоей формой....
end;


 
----   (2002-10-30 11:55) [6]

А есть еще один способ...наверное он тебе больше понравится, т.к. не нужно хранить ничего в БД кроме имен классов...

{ /* Создание формы по имени класса*/}
var
f: TForm;
AClassName: String;
begin
AClassName:="TForm1";
RegisterClass(TForm1);
f:= TForm( TControlClass(GetClass(AClassName)).Create(nil) );
end;



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

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

Наверх





Память: 0.45 MB
Время: 0.006 c
1-21651
BofA
2002-10-27 18:32
2002.11.07
В TStringGrid все символы


3-21366
Ренат
2002-10-17 12:16
2002.11.07
Две базы в одном запросе


4-21850
progger
2002-09-24 16:21
2002.11.07
Как отослать другому приложению сочетание клавиш?


1-21614
Пиноккио
2002-10-23 22:31
2002.11.07
Использование Canvas.PainTo


3-21413
vitnt2000
2002-10-18 08:55
2002.11.07
Как добавить к таблице новое поле и не убить данные?





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