Ошибка в statusbar

Прога должна связываться с бд и выводить инфу оттуда. В строке TStatusBar.Panels[1].Text := IntToStr(dstBrigades.RecordCount); пишет ошибку при запуске [DCC Error] main030.pas(49): E2233 Property 'Panels' inaccessible here. По идее в этой строке вместо TStatusBar должно быть написано StatusBar1, но когда так пишу то он подчеркивает эту строку и пишет ошибку "Неопределенный идентификатор".
Как это исправить? Пишу на Delphi7

unit main030;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DM, Grids, DBGrids, StdCtrls, Menus, ComCtrls, ExtCtrls, ActnList;

type
  TfmMain = class(TForm)
    Panel1: TPanel;
    MainMenu1: TMainMenu;
    mFile: TMenuItem;
    mRefresh: TMenuItem;
    mExit: TMenuItem;
    buRefresh: TButton;
    buExit: TButton;
    DBGrid1: TDBGrid;
    StatusBar1: TStatusBar;
   // procedure mFileClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  end;

var
  fmMain: TfmMain;

implementation

{$R *.dfm}

       procedure FormShow(Sender: TObject);
         begin
  //Открыть базу данных
  with DM.Datamodule1 do
  begin
    //Устанавливаем связь с базой данных
    dbBrigades.Connected := True;
    //Активизируем запрос
    dstBrigades.Active := True;
    //Выводим количество записей в таблице
       TStatusBar.Panels[1].Text := IntToStr(dstBrigades.RecordCount);
  end;
end;

procedure FormClose(Sender: TObject; var Action: TCloseAction);
begin
  with DM.Datamodule1 do
  begin
    //Запрос закрывается.
    dstBrigades.Active := False;
    //Закрываем связь с базой данных
    dbBrigades.Connected := False;
  end;
end;
end.

Ответы (2 шт):

Автор решения: MBo

Уберите из кода все рукописные артефакты (если наворотили слишком много, то лучше начать новый проект), в частности:

procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
...

     procedure FormShow(Sender: TObject);
         begin
  //Открыть базу данных
  with DM.Datamodule1 do
  begin
    //Устанавливаем связь с базой данных
    dbBrigades.Connected := True;
    //Активизируем запрос
    dstBrigades.Active := True;
    //Выводим количество записей в таблице
       TStatusBar.Panels[1].Text := IntToStr(dstBrigades.RecordCount);
  end;
end;

procedure FormClose(Sender: TObject; var Action: TCloseAction);
begin
  with DM.Datamodule1 do
  begin
    //Запрос закрывается.
    dstBrigades.Active := False;
    //Закрываем связь с базой данных
    dbBrigades.Connected := False;
  end;
end;

Выберите форму в дизайнере, слева в инспекторе объектов перейдите на вкладку Events, щёлкните даблкликом на OnShow и OnClose - создадутся заготовки методов

Впишите нужный код

→ Ссылка
Автор решения: Герман Борисов

В секции implementation вместо

procedure FormShow(Sender: TObject);

должно быть

procedure TfmMain.FormShow(Sender: TObject);

Это метод класса TfmMain, а не процедура.

Тогда и ошибка "Неопределенный идентификатор" пропадет, т.к. StatusBar1 - член класса TfmMain и доступен из всех его методов.

→ Ссылка