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

Вниз

Заполнение данных формы из справочника   Найти похожие ветки 

 
TAN_K   (2004-11-18 11:31) [0]

Господа , здравствуйте !
Есть форма - например , личная карточка работника . Данные : место рождения , перемещения , место работы , профессия и т. д. эаполняем из соответствующих справочников .
1 форма - список работников .
Например , надо внести перемещения работника .
2 форма - перемещения . Данные ввожу , редактирую , удаляю с помощью модальной формы (диалога) - форма 3 .
В форме 3 есть поля :
- подразделение (поле 1)
- профессия и т.д. (поле2 , 3 , 4 ...)
Значения полей получаю из справочникка - форма 4 .
Форма 4 одна для нескольких справочников (динамическое описание Grida и Query).
Когда вызываю справочник в поле 1 , форма 4 закрывается успешно - Form4.Close .
Когда вызываю справочник в поле 2 , форма 4 не закрывается , возникает ошибка на операторе Form4.Close :
Acces violation at adress  0000....4 . Write of adres  00E7b410 .
В чем причина - не могу понять .
Может быть кто-то поможет  советом .
Всем спасибо .


 
ЮЮ ©   (2004-11-18 11:43) [1]

Тебе спасибо! У тебя проект и IDE, а у нас только строчка Form4.Close;
:)

Form4 открывается модально? В юните какой формы стоит этот чудо оператор? Покажи оператор создания Form4


 
YurikGL ©   (2004-11-18 11:49) [2]

>Покажи оператор создания Form4

Лучше уж Form4.onClose..


 
sniknik ©   (2004-11-18 12:04) [3]

> Тебе спасибо! У тебя проект и IDE, а у нас только строчка Form4.Close;
должен понять! инфы на ответ достаточно. ;о))

ошибка в 17й строке!

кстати с точным адресом практически > at adress  0000....4
осталось сделать Find Error и узнаеш причину, может быть.


 
TAN_K   (2004-11-18 12:06) [4]

Form3 - модальная форма диалога (OkBottomDialog) , вызывается из Form2 - список перемещений - стандартная форма .
Еdit1 (поле 1) - кликаю клавишей F4 - вызов справочника - Form4.ShowModal . Form4 - стандартная форма , создается проектом , в данном случае вызывается в модальном режиме.
Form3 - код в Edit1 - KeyPress :
if (Key = VK_F4) then begin
   PER  := 77;
   Form4.ShowModal;
   Edit1.Text := naimp;
end;

В Form4 - кнопка выбора или клик мышью на записи :
case PER of
....
77:NAIMP := IBQuery1["NAIM"];
...
 end;
 try
 finally
   IBQuery1.Close;
   IBQuery1.UnPrepare;
   IBTransaction1.Active := False;
   IBTransaction2.Active := false;
   OKBottomDlg3.Free; - форма редактирования записей справочника , создается при открытии (Create) Form4 - Application(...)
   Form4.Close;
end;


 
sniknik ©   (2004-11-18 12:14) [5]

> создается при открытии (Create)
владелец указан? ну там Create(self) или Create(nil) стоит? если поевое то освобождение не нужно.
и кстати Close тоже не нужно раз по ShowModal вызывается.


 
ЮЮ ©   (2004-11-18 12:15) [6]

вылетает на самом деле на
 OKBottomDlg3.Free;
т.к. создается один раз (при создании Form4), а пытается уничтожить много раз (при каждом закрытии Form4)


 
TAN_K   (2004-11-18 13:42) [7]

ЮЮ - спасибо большое , я уже думала (потеряла несколько дней), что-то с FREE , но хотела освободить память , т.к. приложение большое , форм много , а с фреймами работать еще не научилась .
Сделала , создание модальных диалоговых форм автоматически при создании проекта , удалила  OKBottomDlg3.Free; и все получилось .


 
ЮЮ ©   (2004-11-19 04:07) [8]

>Сделала , создание модальных диалоговых форм автоматически при создании проекта , удалила  OKBottomDlg3.Free; и все получилось .

Надо было наоборот, убрать Form4 из списка автоматически создаваемых, а создвать его перед показом.
OKBottomDlg3.Free, естественно, тоже должно стоять в месте вызова диалога, например:

dlgFrm := TDlgFrm.Create(nil);
try
 dlgFrm.ModalShow;
 Case dlgFrm.ModalResult of
 mrOk: ...
 else
   ...
 end;
finally
 dlgFrm.Free;
 dlgFrm := nil;
end;



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

Форум: "Базы";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.035 c
1-1102428966
гость
2004-12-07 17:16
2004.12.19
запись в файл


14-1101557346
gn
2004-11-27 15:09
2004.12.19
Китайское правительство ограничит использование заграничного ПО


1-1102362140
AlexHawk
2004-12-06 22:42
2004.12.19
просто Application и CLX Application ???


3-1100751112
Julia
2004-11-18 07:11
2004.12.19
Передача данных по модему


3-1101128143
Dobriy
2004-11-22 15:55
2004.12.19
Порты сервера firebird и его клиента





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