Текущий архив: 2006.04.09;
Скачать: CL | DM;
Вниз????? Найти похожие ветки
← →
Alex7 (2006-03-24 20:39) [0]Уважаемые мастера ! Прошу прощения за свой вопрос, но
может быть Вы что-то подскажите.
Есть форма с несколькими компонентами
"DBEdit" , Навигаторм и переменной "Actt_Old".
Есть также Модуль "Р", где я собираю свои процедуры,
к которым обращаюсь из различных форм и модулей.
Схема работы такая:
----В форме-----
procedure TForm1.FormCreate(Sender: TObject);
begin
UP.InForm(Form1);
end;
-----далее в модуле "P"---------
Type TMyForm = Class(TForm)
Public Actt_Old: TControl;
end;
implementation
Var UkForm: TForm;
Procedure InForm(Sender: TForm);
Begin
UkForm := Tform(Sender); // Фиксируем текущую форму
End;
procedure Df (Sender: TObject);
begin
// TMyForm(UkForm).Act_Old := TDBLookUpComboBox(Sender); ......(1)
Form1.Act_Old := TDBLookUpComboBox(Sender); // ......................(2)
end;
Вопрос такой: В варианте (2) все работает, а если (для обобщения)
заменить (2) на (1), то все формируется правильно, но при обращении
к навигатору (не имеющему отношения к процессу) выясняется, что он
разрушен ("access violation at address ...и т.д.)
Понимаю, что вопрос нечеткий. Но хотя бы в каком направлении
искать ошибку. Спасибо.
← →
tesseract © (2006-03-24 20:45) [1]
> TMyForm(UkForm)
уверен что форма существует?
> к навигатору (не имеющему отношения к процессу)
Он имеет отношение к созданным таблица и форме - возможно что-то не досоздано. F8 рулит.
← →
Alex7 (2006-03-24 20:57) [2]Все существует и создано . Ведь в вар-те (2) все работает.
← →
tesseract © (2006-03-24 21:00) [3]в варианте (2) Form1
в вариате (1) typecasting из некоей (UKform). Причём в
procedure TForm1.FormCreate(Sender: TObject);
begin
UP.InForm(Form1);
end;
что-то не вижу inherited
возможно он
← →
Гаврила © (2006-03-24 21:48) [4]Во первых
>procedure TForm1.FormCreate(Sender: TObject);
>begin
> UP.InForm(Form1);
> end;
Сильно подозреваю, что, несмотря на то, что форма уже создана, указатель на нее
(переменная Form1) еще не инициализирован.
В любом случае заменить на
UP.InForm(Self);
> TMyForm(UkForm).Act_Old := TDBLookUpComboBox(Sender);
> ......(1)
проверь
какого класса все участники этого шаманства:
if UkForm <> nil then
ShowMessage(UkForm.ClassName);
if Sender <> nil then
ShowMessage(Sender.ClassName);
← →
Alex7 (2006-03-24 22:04) [5]>что-то не вижу inherited
Тут я что-то не понял.
Где должен быть inherited ?
А UkForm фиксируется в
процедуре InForm(Sender: TForm)
сразу после создания Form1.
> Сильно подозреваю
Все проверю
← →
Плохиш © (2006-03-25 01:31) [6]
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> UP.InForm(Form1);
> end;
Дальше даже читать не буду, можешь уже идти убивать себя об стену. Передаёт какой-то мусор и плачет, что не работает.
Страницы: 1 вся ветка
Текущий архив: 2006.04.09;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.011 c