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

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

получить ListView.Data ? [D7, XP, 2003]


psa247 ©   (2008-01-28 09:08:00) 

Подскажите, как быть :)

создаю экземпляр класса, допустим FF
записываю указатель ListView.Data := @FF

а как обратиться к нему потом через

ListView.Data ??


ketmar   (2008-01-28 10:02:00) [1]

>[9] psa247(28.01.08 10:00)
ну, тогда уже сделай класс как полагается — со свойствами. вдруг потом что поменять захочешь? %-)


psa247   (2008-01-28 10:00:00) [2]

класс нужен для расширения функциональности на будущее

дошло наконец-то ))))


ketmar   (2008-01-28 09:57:00) [3]

кстати, зачем тебе тут класс? разве записи не достаточно? работать с указателем на запись, при помощи New() и Dispose().


ketmar   (2008-01-28 09:56:00) [4]

а с чего ты решил, что TKontragent и pTKontragent — одно и то же? первое является указателем на экземпляр, второе — указателем на указатель на экземпляр.


psa247   (2008-01-28 09:54:00) [5]

type
 TKontragent = class
   F: string;
   I: string;
   O: string;
   Passport: string;
   INNKPP: string;
   OGRN: string;
   Address: string;
   Info: string;
   Firm: boolean;
   Inostr: boolean;
 end;

type pTKontragent = ^TKontragent;

var
 Kontrs : array of TKontragent;

идет:
SetLength(Kontrs, IBQuery.RecordCount);
 with ListView do begin
    в цикле    
     Item := Items.Add;
     Kontrs[i] := TKontragent.Create;
     Item.Data := Kontrs[i];
 end;

в итоге:

обработчик OnSelectItem
var K: pTKontragent;

 K := Item.Data;
 if K=nil then exit;
 FEdit.Text := K.F; <- не доступно


ketmar   (2008-01-28 09:50:00) [6]

17-я строка, как обычно.


psa247   (2008-01-28 09:48:00) [7]

все равно ошибку выдает


ketmar   (2008-01-28 09:31:00) [8]

и опять ты не то прочитал.

хинт: результат вызова конструктора уже является указателем. достаточно привести его к типу Pointer.


psa247   (2008-01-28 09:25:00) [9]

Вдумчиво почитал хелп :)
выходит надо так делать ?
type
  TFF = class
   
     end;

type
 pFF = ^TFF;

f : pFF;

f := Item.Data;


ketmar   (2008-01-28 09:14:00) [10]

а зачем тебе указатель на указатель на экземпляр?


Наверх

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