Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ошибка связанная с добавлением процедуры [D7]


-=snoop=- ©   (2005-06-29 10:13:00) 

привет всем, странная ошибка
добавляю процедуру procedure MYPrp;
[code]
type
 TForm2 = class(TForm)
   procedure FormActivate(Sender: TObject);
   procedure MYPrp;
[/code]
при компиляции валится в ошибку

[Error] workWithGrupp.pas(12): Unsatisfied forward or external declaration: 'TForm2.DBGridDrawColumnCell'
форму пересоздавал - не помогает
что за хрень! не понимаю, до этого сколько раз делал и все нормал!
я до этого ставил ExpressQuantumGrid компонент, потом его бахнул и пошли глюки.


kot andrei   (2005-06-29 12:13:00) [1]

Это просто жопа :
еще раз говорю почитай это:
ЮЮ ©   (29.06.05 10:17) [1]


Плохиш   (2005-06-29 12:02:00) [2]


> -=snoop=- ©   (29.06.05 11:31) [10]

Чукча - не читатель, чукча - писатель.
Читай ответы начиная с [1] до полного прояснения, а ещё не мешало бы до практического программирования почитать какую-нибуть книжку.


Alexander Panov   (2005-06-29 12:01:00) [3]

-=snoop=- ©   (29.06.05 12:00) [12]
что если ее закоментировать ругаться будет на строку

procedure zzz


А по коду не видно, что zzz где-то реализована.


-=snoop=-   (2005-06-29 12:00:00) [4]

lBaseGRD = TDBGrid объект
OnDrawColumnCell := DBGridDrawColumnCell перегружаю процедуру отрисовки на свою DBGridDrawColumnCell, она у меня будет дальше описана.
Но дело-то в том , что если ее закоментировать ругаться будет на строку

procedure zzz


Alexander Panov   (2005-06-29 11:45:00) [5]

lBaseGRD.OnDrawColumnCell := DBGridDrawColumnCell ;

Это что такое?


-=snoop=-   (2005-06-29 11:31:00) [6]


unit workWithGrupp;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ADODB, DBGrids, Grids, DB, StdCtrls;

type
 TForm2 = class(TForm)
   procedure FormActivate(Sender: TObject);
   procedure zzz;

 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form2: TForm2;

implementation

uses main;
{$R *.dfm}

procedure TForm2.FormActivate(Sender: TObject);
 var
   gADOq : TADOQuery ;
   lBaseGRD : TDBGrid ;
   lPerdepr : TDatasource ;
   lpredprEnabl : TCheckBox ;
begin
 form2.Caption := 'Ïðîñìîòð è ðåäàêòèðîâàíèå ãðóïïû  '+gGruppName ;
// ïîäêëþ÷åíèå ê áàçå label.pro
     gADOq := TADOQuery.Create(form2) ;
     gADOq.Name := 'gADO' ;
     gADOq.CursorLocation := clUseClient ;
     gADOq.CursorType := ctStatic ;
     gADOq.ConnectionString :=
       'Provider= VFPOLEDB.1;'+
       'Data Source='+gPthVl+'\pro\label.pro;'+
       'Password="";Collating Sequence=MACHINE' ;
     gADOq.SQL.Clear ;
     gADOq.SQL.Add('select lbl_name ,lbl_path from label.pro ') ;
     gADOq.Active := true ;
//Äàòà ñîóðñ äëÿ ïðåäïðèÿòèé
 lPerdepr := TDatasource.Create(form2) ;
 lPerdepr.Name := 'lPerdepr' ;
 lPerdepr.DataSet := gADOq ;
 lPerdepr.Enabled := true ;
// çàãðóçêà ãðèäà
{ñïèñîê ïðåäïðèÿòèé-------------------}
 lBaseGRD := TDBGrid.Create(Form2) ;
 lBaseGRD.Parent := Form2 ;
 lBaseGRD.Left := 5   ;
 lBaseGRD.Top := 10    ;
 lBaseGRD.Width := 350  ;
 lBaseGRD.Height := 100  ;
 lBaseGRD.Name := 'lBaseGRD' ;
// ñîáûòèÿ
     lBaseGRD.OnDrawColumnCell := DBGridDrawColumnCell ;
 lBaseGRD.DataSource := lPerdepr;
 lBaseGRD.ReadOnly := true ;
 lBaseGRD.Options := [dgTitles, dgIndicator, dgColumnResize,
          dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete,
          dgCancelOnExit];
 lBaseGRD.Columns.Clear() ;
// íóëåâîå ïîëå
   lBaseGRD.Columns.Add() ;
   lBaseGRD.Columns[0].Title.caption := 'Äîñòóï' ;
   lBaseGRD.Columns[0].Expanded := true ;
// ïåðâîå ïîëå
   lBaseGRD.Columns.Add() ;
   lBaseGRD.Columns[1].FieldName := 'lbl_name' ;
   lBaseGRD.Columns[1].Title.caption := 'Íàçâ.ïðåäïð.' ;
   lBaseGRD.Columns[1].Expanded := true ;
// âòîðîå ïîëå
   lBaseGRD.Columns.Add() ;
   lBaseGRD.Columns[2].FieldName := 'lbl_path' ;
   lBaseGRD.Columns[2].Title.caption := 'Ïóòü äî áàç' ;
   lBaseGRD.Columns[2].Expanded := true ;
end;

//---------------------------------------------------------
//              ìîè ïðîöåäóðû
//---------------------------------------------------------
end.


-=XP=-   (2005-06-29 11:23:00) [7]

ругается так на любую процедуру

Даже в новом проекте?
Давайте-ка сюда полныйтекст Вашего горе-модуля. Без правок.


kot andrei   (2005-06-29 11:22:00) [8]

да ну посмотришь ты сюда
>>ЮЮ ©   (29.06.05 10:17) [1]


-=snoop=-   (2005-06-29 11:16:00) [9]

ругается так на любую процедуру, не зависимо от названия, допустим, делаю процедуру выхода из формы с названием
procedure lpQuit
все одно орет


Anatoly Podgoretsky   (2005-06-29 10:48:00) [10]

-=XP=- ©   (29.06.05 10:43) [5]
Второй путь не поможет, будет еще одна ошибка.


-=XP=-   (2005-06-29 10:43:00) [11]

Скорее всего, удалил "руками" метод, сгенерированный Delphi.
Да криво удалил. Вот Delphi его и ищет.
Решения, как всегда, два:
- найти, где он прописан еще, и удалить там;
- воссоздать его (метод) обратно (в пустом виде) и дать Delphi удалить метод автоматически.


Anatoly Podgoretsky   (2005-06-29 10:27:00) [12]

ЮЮ ©   (29.06.05 10:24) [2]
Тут хуже, она не вообще не объявлена.


Digitman   (2005-06-29 10:26:00) [13]


> -=snoop=- ©   (29.06.05 10:13)  


см. [1]

кр. того заимей себе привычку объявлять собственные методы (не имеющие прямого отношения к обработке событий) в секциях private или protected или public


ЮЮ   (2005-06-29 10:24:00) [14]

Unsatisfied forward or external declaration: 'TForm2. DBGridDrawColumnCell'

Не обратил внимание на выделенное.
в TForm2.DBGridDrawColumnCell название параметров не менял? Если менял, то надо и в обоих местах изменять


ЮЮ   (2005-06-29 10:17:00) [15]

Это не процедура, а метод класса TForm2 .
Будучи объявленным в описании класса, должен быть ещё и код в imlementation

procedure TForm2.MYPrp;
begin

end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо