(Gast)
n/a Beiträge
|
Re: Zeiger auf TlistItem wird nil
15. Dez 2004, 16:24
na gut
Delphi-Quellcode:
type
TUser = record
name: string;
ip: string;
status: integer;
lvp: ^TListItem;
end;
users: array of TUser;
procedure TForm1.AddUser(user: TUser);
var
a: TListItem;
i: integer;
begin
if IndexByIP(user.ip) <> -1 then
begin
UpdateUser(IndexByIp(user.ip),user);
exit;
end;
if IndexByName(user. name) <> -1 then
begin
i := 1;
while IndexByName(user. name + ' (' + inttostr(i) + ' )') <> -1 do
inc(i);
user. name := user. name + ' (' + inttostr(i) + ' )';
end;
a := userlv.Items.Add;
a.Caption := user. name;
user.lvp := @a; // hier wird die adresse zugewiesen
setLength(users,length(users)+1);
users[high(users)] := user;
if users[high(users)].lvp = nil then // hier nur zum testen. da gehts noch
showmessage(' nil');
if user.status = stat_away then
a.ImageIndex := 1
else
a.ImageIndex := 0;
end;
procedure TForm1.UpdateUser( index: integer; user: TUser);
begin
users[ index] := user;
showmessage(users[ index]. name); // user wird richtig erkannt
// users[index].lv^.Caption := user.name; geht nich
if users[ index].lvp = nil then // gibt true, also der wert is weg
showmessage(' nil');
end;
|
|
Zitat
|