Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Указатель на объект..


Автор: seer 29.4.2006, 17:30
Где-то в исходнике жил был клас TForm1, с ним также проживала сожительница процедуркина, которая была очень жадной и все заносила в свой объект-блокнотик - БД.
Где-то в этом же исходнике жил был класс FormCorr, и он прослышал про этот замечательный блокнотик БД , и захотел в него чего-нибудь пописать, почитать ну и в общем поковыряться с ним. Но тетя указатель на БД не захотела ему в этом помочь.
Помогите разобраться с тетей-указателем!

Код

procedure TForm1.NAddKorrClick(Sender: TObject);
var
    FormCorr: TFormCorr;
begin
    Application.CreateForm(TFormCorr, FormCorr); //Окошко
    FormCorr.PADOQuery := Pointer(ADOQuery1);
    FormCorr.Show;
end;
...

type
  TFormCorr = class(TForm)
...
  public
    PADOQuery: ^TADOQuery;
...
end;

procedure TFormCorr.SpeedButtonAddClick(Sender: TObject);
var
  strAdd: AnsiString;
begin
  PADOQuery^.SQL.Clear; //Тута тетя очень сильно ругается!!!
//  PADOQuery^.SQL.Add('SELECT COUNT(*) FROM TableName');
//  PADOQuery^.ExecSQL;
  

Автор: Демо 29.4.2006, 17:48
ADOQuery и так ссылка на объект:

Код

procedure TForm1.NAddKorrClick(Sender: TObject);    
var    
    FormCorr: TFormCorr;    
begin    
    Application.CreateForm(TFormCorr, FormCorr); //Окошко    
    FormCorr.ADOQuery := ADOQuery1;    
    FormCorr.Show;    
end;    
...    
type    
  TFormCorr = class(TForm)    
...    
  public    
    ADOQuery: TADOQuery;    
...    
end;    

procedure TFormCorr.SpeedButtonAddClick(Sender: TObject);    
var    
  strAdd: AnsiString;    
begin    
  ADOQuery.SQL.Clear;
 

Автор: seer 29.4.2006, 18:11
unit ADODB
{ TADOQuery }

  TADOQuery = class(TCustomADODataSet) //указатель?
  private
    FSQL: TStrings; 

Автор: Демо 29.4.2006, 18:11
Цитата(seer @  29.4.2006,  18:11 Найти цитируемый пост)
//указатель?


Да. 

Вернее ссылка.

Добавлено @ 18:14 
Причем, если необходимо, ты можешь привести ссылку к Pointer, а затем обратно. 

Автор: seer 29.4.2006, 18:17
Цитата(Демо @  29.4.2006,  18:11 Найти цитируемый пост)
Причем, если необходимо, ты можешь привести ссылку к Pointer, а затем обратно. 

так я так и сделал... не работало...:/
Чем указатель от ссылки отличается? 

Автор: Vit 30.4.2006, 03:47
Код

  public
    PADOQuery: ^TADOQuery;
...


Указатель на указатель? Оригинально... что-то в этом коде совсем не так... Скорее всего так вообще быть не должно. А как должно? А х.з. не ясно что вообще надо получить... Во всяком случае постановка задачи мне не ясна, как и не может быть ясна ни одному программисту:


Цитата(seer @  29.4.2006,  08:30 Найти цитируемый пост)
с ним также проживала сожительница процедуркина, которая была очень жадной и все заносила в свой объект-блокнотик - БД.


Я в этой фразе понял только предлоги:

"с ним также проживала" - это как находилась в одном модуле? Или была методом класса? Или методом предка/потомка? Или классовым методом?

 "процедуркина" - имеется ввиду метод? Процедура? Процедурная переменная?

"которая была очень жадной " - первый раз такое понятие в программировании слышу за 20 лет работы...

" все заносила в свой объект-блокнотик" - чтио значит свой? Блокнот был объектом процедуры? Это бред! Объект может иметь владельца какой-то другой объект или родителя другой объект, процедурная переменная типа блокнот может быть локально объявлена в процедуре или быть полем другого объекта, но никак не бывает чтобы владелец блокнота была процедура. Теоретически конечно можно взять ссылку на процедуру преобразовать её к типу TComponent и засандалить в хозяина блокнота, но это имхо - бред полный!

Извольте выражаться понятно чтоб можно было хоть что-то понять.  

Автор: Yanis 30.4.2006, 08:02
Цитата(Vit @  30.4.2006,  03:47 Найти цитируемый пост)
"которая была очень жадной " - первый раз такое понятие в программировании слышу за 20 лет работы...

Если уж говорить о термине "жадный" в программировании, то извещаю вас о существовании "жадных" алгоритмов, которые я например проходил на 1 курсе своего обучения. 

Автор: Quadr0 30.4.2006, 11:42
...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)