Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.12.2009, 09:13
empty empty вне форума
Прохожий
 
Регистрация: 23.12.2009
Сообщения: 2
Репутация: 10
По умолчанию Доступ к компонентам родительского класса из дочерних и наоборот

IDE Borland Delphi 6.
Постараюсь описать проблему на простом примере:
Есть форма, на которой размещается компонент ADOConnection и кнопка, которая открывают внутри формы фрейм.
На фрейме располагается компонент ADOQuery и прочие компоненты для работы с базой данных.
Проблема состоит в том, что для компонента ADOQuery не виден компонент ADOConnection, как, впрочем, и другие объекты основной формы, например, кнопка.
Каким образом можно добиться видимости из дочерних классов? Или, возможно, я изначально делаю что-то неправильно?
Примерный код:
Код:
unit Unit1;
~
type
  TForm1 = class(TForm)
    Frame1: TFrame;
    ADOConnection1: TADOConnection;
    Button1: TButton;
    procedure Button1Click (Sender: TObject);
    private
    public
~
procedure Button1Click (Sender: TObject);
begin
Frame1.Show;
end;
end.

unit Unit2;
~
type
  TFrame1 = class(TFrame)
    ADOQuery1: TADOQuery;
~
    private
    public
~
При такой реализации невозможно, например, использование ADOQuery (Фрейм) с помощью Button (Форма). Или, наоборот, как я говорил изначально, невозможно подключиться к БД компоненту ADOQuery (Фрейм) при помощи ADOConnection (Форма).
Возможно, стоит использовать для описания процедур директиву public? И каким образом?
Заранее спасибо.
Ответить с цитированием
  #2  
Старый 23.12.2009, 09:35
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Я так понимаю что фрейм вы поместили на форму в дизайнере.
Так вот, не на отдельном фрейме а на размещенном в дезайнере формы выделите ADOQuery и посмотрите в выпадающем списке его свойства Connection, там должен быть виден ADOConnection1
Ответить с цитированием
  #3  
Старый 23.12.2009, 10:00
empty empty вне форума
Прохожий
 
Регистрация: 23.12.2009
Сообщения: 2
Репутация: 10
По умолчанию

s0Creator,
Благодарю за совет. Не думал, что все настолько просто.
Проблема с видимость тоже решилась, точнее никакой проблемы и не было, поскольку при объявлении процедуры указывается сначала заголовок класса, затем объект. А все от незнания синтаксиса.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025