Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2010, 17:11   #1
GRIPH
 
Регистрация: 14.05.2010
Сообщений: 3
По умолчанию

Пишу компонент, не могу понять как в свойство отгрузить список всех баз данных зарегистрированных в системе (BDE Administrator). Когда делаю свойство TStrings, при добавлении компонента на форму, вылетает эксесс виолейшн. 3 дня уже мучаюсь, подскажите пожалуйста, как это реализовать.
Свойство должно быть как Database Name у TTable или как AliasName у TDatabase.

Совсем замучался. Вот что в итоге накидал, но все равно работать не хочет.

Код:

unit StatusLabel;

interface

uses
  SysUtils, Classes, Controls, ExtCtrls, StdCtrls, DB, DBTables;

type
  TMyStrings = class(TStrings);
  TMyStringList = class(TStringList);
  TStatusLabel = class(TPanel)
  private
    { Private declarations }
    MyTable:TTable;
    MyDS:TDataSource;
    MyLabel:TLabel;
    MyDB:TDatabase;
    FDatabaseName: TStrings;
    procedure SetDatabaseName(const Value: TStrings);
  protected
    { Protected declarations }
  public
    { Public declarations }
   constructor Create(AOwner:TComponent);override;
  published
    { Published declarations }
    property DBName: TStrings read FDatabaseName write SetDatabaseName;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Standard', [TStatusLabel]);
end;

{ TStatusLabel }

constructor TStatusLabel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Height:=60;
  Width:=300;
  Caption:='';

  // Лэйбл
  MyLabel:=TLabel.Create(self);
  MyLabel.Parent:=self;
  MyLabel.Top:=5;
  MyLabel.Left:=30;
  MyLabel.Width:= 240;
  MyLabel.Height:=50;


  // Невидимки, таблица и DataSource
  MyTable:=TTable.Create(Self);
  MyDS:=TDataSource.Create(self);
  MyDB:=TDatabase.Create(self);
  FDatabaseName.Create;
//  MyDB.Session.Active:=TRUE;
  MyDb.Session.GetDatabaseNames(FDatabaseName);
  MyDB.Assign(FDatabaseName);
//  MyDB.Session.Active:=TRUE;
end;


procedure TStatusLabel.SetDatabaseName(const Value: TStrings);
begin
  FDatabaseName := Value;
end;

end.

Может кто поправит, или подскажет как сделать правильно...

Последний раз редактировалось mihali4; 15.05.2010 в 23:39.
GRIPH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отследить правельность выполнения names.add tae1980 Microsoft Office Excel 3 28.03.2010 15:13
Получение списка файлов кроссплатформа kin63camapa Общие вопросы C/C++ 2 13.02.2010 00:24
Получение списка файлов Костян Пират Общие вопросы Delphi 11 16.02.2009 09:58
получение 1 списка из 2-х Neznau Помощь студентам 0 10.12.2008 22:16
ошибка VBA при попытке использовать свойство или метод chanchikela Microsoft Office Access 0 26.03.2008 23:17