Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как динамически создавать однотипные формы? [D5, WinXP]


Страницы:   1 2

Новая ©   (2005-03-02 11:22:00) 

Нужно по нажатию юзера на определенной записи при работе программы создавать форму, поля которой заполняются данными этой записи. Записей много, соответственно можно открыть одновременно много таких форм. Поля в них одинаковы, кнопки тоже. Кто-нибудь может направить на правильное решение?


Новая   (2005-03-02 12:49:00) [1]

спасибо


begin...end   (2005-03-02 12:49:00) [2]

> Vlad ©   (02.03.05 12:23) [19]

Ой, да - в [18] я какую-то чушь понёс. Извиняюсь. Меньше курить надо, однозначно.


Vlad   (2005-03-02 12:34:00) [3]


> Новая ©   (02.03.05 12:30) [20]

Тогда читайте
http://www.ibase.ru/
там есть FAQ, много статей и другой полезной информации.
Или ищите книгу в электронном виде.


Новая   (2005-03-02 12:30:00) [4]

Книгу Мир IB я заказала еще год назад, спасибо хоть наложенным платежом. Мне приходили всякие там письма о подтверждении заказа, я его, естественно, подтверждала. И все - ни книги, ни писем. Она так и не пришла. А у меня в городе в свободной продаже ее нет. Вот потому и куча вопросов.


Vlad   (2005-03-02 12:23:00) [5]


> begin...end ©   (02.03.05 12:22) [18]


> Вот именно. Методы формы должны работать с полями, а не
> с глобальными или локальными переменными.

Почему это метод формы не должен работать с локальными переменными? Другое дело, что в данном случае, это практически бессмысленно.


begin...end   (2005-03-02 12:22:00) [6]

> ЮЮ ©   (02.03.05 12:09) [13]

> Методы формы должны раблтать тольк со своими полями, а
> никак не с глобальными переменными.

Вот именно. Методы формы должны работать с полями, а не с глобальными или локальными переменными.


Vlad   (2005-03-02 12:21:00) [7]


> Новая ©   (02.03.05 12:15) [15]


> В каких случаях используется ТDataSource? У меня он пока
> нигде не используется, а все работает, например, много-много
> запросов TIBQuery.

Вобще-то книжку бы неплохо почитать.
TDataSource нужен например для связи вашего IBQuery с DB-контролами (которые вы видимо не используете, а зря)

> Если приложение должно работать на нескольких машинах, как-то
> надо транзакции контролировать?

Надо. Советую почитать по поводу транзакций книгу "Мир Interbase" Востриков, Ковязин.


> На клиентской машине обращение идет напрямую к базе данных
> на сервер, или создается локальная копия базы? СУБД - Interbase.

Локальной копии базыне создается. Создается локальная копия таблицыиз вашей БД, в памяти клиентского компьютера. Это, собственно, и есть IBQuery


begin...end   (2005-03-02 12:16:00) [8]

> ЮЮ ©   (02.03.05 12:09) [13]

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


Новая   (2005-03-02 12:15:00) [9]

Есть еще непонятные моменты:
В каких случаях используется ТDataSource? У меня он пока нигде не используется, а все работает, например, много-много запросов TIBQuery.
Если приложение должно работать на нескольких машинах, как-то надо транзакции контролировать? То есть у меня пока только один компонент TTransaction, привязанный к базе данных.
На клиентской машине обращение идет напрямую к базе данных на сервер, или создается локальная копия базы? СУБД - Interbase.


Юрий Зотов   (2005-03-02 12:12:00) [10]

> ЮЮ ©   (02.03.05 12:09) [13]

> если создается несколько экземпляров формы, то глобальная
> переменная бессмыслена и вредна...

... а локальная просто не нужна.
:о)


Юрий Зотов   (2005-03-02 12:09:00) [11]

> Новая ©   (02.03.05 11:43) [7]

> номер каждый раз нужен другой, а сколько их всего м.б. -
> неизвестно.

Активная запись в датасете одна - по которой кликнули в гриде. И создавайте по этим кликам хоть сто форм - каждая получит свои данные, из активной записи.

> Vlad ©   (02.03.05 11:47) [8]

> Для представления списка газетных объявлений TDBGrid врядли
> сгодится.

Смотря, в каком виде они сидят в базе. Если все объявление сидит, как единое текстовое поле - то, наверное, да. А если данные из объявления уже разложены по полям - то в самый раз.


ЮЮ   (2005-03-02 12:09:00) [12]

>В каком смысле "локальная"?

В том смысле, что если создается несколько экземпляров формы, то глобальная переменная бессмыслена и вредна. Посмотри MDIChild форму в MDI Application, её там нет. Методы формы должны раблтать тольк со своими полями, а никак не с глобальными переменными.


DesWind   (2005-03-02 12:05:00) [13]

Я бы исспользовал массив TMyForm, а у TMyFrom сделал бы поле UnID, куда писал уникальный идентификатор записи в БД


begin...end   (2005-03-02 11:53:00) [14]

> ЮЮ ©   (02.03.05 11:51) [9]
> myFrm: TMyfrm; //локальная переменная

В каком смысле "локальная"?


ЮЮ   (2005-03-02 11:51:00) [15]

var
 myFrm: TMyfrm; //локальная переменная
begin
 myFrm := TMyfrm.Create(...)
 ...
end;


Vlad   (2005-03-02 11:47:00) [16]

Для представления списка газетных объявлений TDBGrid врядли сгодится.
Думаю, более оптимальным вариантом будет использование TDBCtrlGrid с размещенным на нем TDBMemo


Новая   (2005-03-02 11:43:00) [17]

а если можно держать открытыми, скажем 10, форм, то как задать Myfrm[1] := TMyfrm.Create - номер каждый раз нужен другой, а сколько их всего м.б. - неизвестно. Может быть использовать номер записи в базе?


Erik1   (2005-03-02 11:38:00) [18]

With TMyForm.Create do
begin
 MyEdit1.Text := ....
 MyDbEdit.DataSource := ....
 ...... все что угодно
 Show;
end;
На OnClose поставить освобождение формы
DoClose(var Action: TCloseAction)
Action := caFree;


atruhin   (2005-03-02 11:37:00) [19]

Ну в чем проблема? По нажатию кнопки создавай форму Myfrm[1] := TMyfrm.Create(IDRec); в форму передаешь ID записи, в OnCreate формы читаешь эту запись


ЮЮ   (2005-03-02 11:37:00) [20]

>В каком виде выводить список записей - тоже не знаю
>Запись из базы данных

А про DBGrid слышала?

А про MDI формы?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо