![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
получить 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]а зачем тебе указатель на указатель на экземпляр?