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

Вниз

Как создать несколько экземпляров немодальных форм?   Найти похожие ветки 

 
Z-Yuri   (2002-10-28 17:55) [0]

Есть форма для просмотра таблиц БД. Так, как в базе данных много похожих таблиц (справочников) то просматриваются они одной фоpмой через процедуру:

Procedure ShowTable(Dataset: TDataset, ACaption:String);
Begin
if not assigned(form1) then form1:=TForm1.Create(Application);
with form1 do
begin
if Caption<>ACaption then // Если нужная форма создана то только покажем
begin
Datasource1.Dataset:=Dataset;
Datasource1.Dataset.Open;
end;
Show;
end;
End;

Все работало отлично, пока не понадобилось отобразить одновременно два (три...) справочника. Писать процедуру на каждый справочник и обьявить соотв. кол-во переменных класса ТForm1? Мне это не очень нравится.
Как правильно это сделать?


 
Anatoly Podgoretsky   (2002-10-28 18:01) [1]

Переменные совсем не нужны, запускай по Show, уничтожай в OnClose


 
Андрей Прокофьев   (2002-10-28 18:04) [2]

Что-то в этом роде
Procedure ShowTable(Dataset: TDataset, ACaption:String);
var
xF : TForm1;
i : Integer;
Begin
for i := 0 to Screen.FormCount - 1 do
if Screen.Forms[i].Caption = ACaption then
begin
Screen.Forms[i].Show;
Exit;
end;
xF := TForm1.Create(Application);
xF.Caption := ACaption;
xF.Datasource1.Dataset:=Dataset;
xF.Datasource1.Dataset.Open;
xF.Show;
end;




 
Z-Yuri   (2002-10-28 18:24) [3]

>Андрей Прокофьев ©. Спасибо, я не додумался до перебора форм.
А что мне тогда делать с
form1:=nil в обработчике OnDestory.
Или оставить только Action:=cafree в onclose?


 
Андрей Прокофьев   (2002-10-28 18:31) [4]

оставить только Action:=cafree в onclose;

А переменная Form1 Вам вообще не нужна,
уберите ее из объявлений Unit (var Form1 : TForm);
и все ссылки на нее тоже. и из списка автозагружаемых форм.
(Надеюсь, Form1 - не главная форма :) )



 
Z-Yuri   (2002-10-28 19:02) [5]

Спасибо, попробую!



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

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

Наверх





Память: 0.45 MB
Время: 0.009 c
1-21535
Maksim_
2002-10-29 13:12
2002.11.07
Kak ne nazimaja Mainmenu pokazatj ego soderzimoe?


1-21491
Z-Yuri
2002-10-28 17:55
2002.11.07
Как создать несколько экземпляров немодальных форм?


6-21713
alexsandri
2002-09-10 14:14
2002.11.07
мужики подкиньте если есть исходник локального чата


1-21683
stany
2002-10-28 11:22
2002.11.07
Сортировка


1-21461
Luke
2002-10-24 20:41
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский