Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.03 c
15-1142440059
kilonet
2006-03-15 19:27
2006.04.09
Delphi vs TurboPascal


2-1143130737
VAZMan
2006-03-23 19:18
2006.04.09
вывод записи в стринггрид


4-1137749947
not_dev
2006-01-20 12:39
2006.04.09
Контроль компонентов


3-1139579835
VadimSpb
2006-02-10 16:57
2006.04.09
Проверка соединения с сервером


3-1139574941
John_Doe
2006-02-10 15:35
2006.04.09
Как взять св-ва из грида,а не из TTable?