Главная страница
    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.46 MB
Время: 0.011 c
15-1142588143
LordOfRock
2006-03-17 12:35
2006.04.09
Учебник по Firebird


15-1142578347
Ega23
2006-03-17 09:52
2006.04.09
С Днём рождения! 17 марта


6-1135720867
Гость13
2005-12-28 01:01
2006.04.09
Пишем почтовый ЧЕРВЬ на дельфи


15-1142434699
Alarm
2006-03-15 17:58
2006.04.09
Документация на Windows Server 2003


10-1116500704
mazter
2005-05-19 15:05
2006.04.09
Word-doc в OLE Contaner





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