![]() |
|
|
#1
|
|||
|
|||
|
Уважаемые, имеется ли у итемов копоненты TListBox что-нибудь вроде параметра Data как у итемов TListView?
|
|
#2
|
||||
|
||||
|
Цитата:
Код:
ListBox1.Items.Objects[ItemIndex]:=... |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Кодер (19.08.2012)
| ||
|
#3
|
|||
|
|||
|
Благодарствую
|
|
#4
|
|||
|
|||
|
Загружаю из интернета аватары пользователей. Соответственно каждая картинка должна быть привязана к некому userid. После чего с этими изображениями нужно работать.
Вопрос: Как правильно организовать хранение данных? ЗЫ: В моих предположениях необходимо объявить глобально массив из TBitmap и забивать в него все изображения, но как их индексировать? Как им присвоить некий идентификатор, чтобы потом не составила труда в поиске по id? |
|
#5
|
||||
|
||||
|
Тогда уж запись:
Код:
type
TAvatar = record
Bitmap : TBitmap;
ID : Integer;
end;
var
Avatar : array of TAvatar; |
|
#6
|
||||
|
||||
|
Можно использовать TList:
Код:
type
TAvatar = class
Bitmap : TBitmap;
ID : Integer;
end;
var
Avatar : TAvatar;
List : TList;
...
List := TList.Create;
...
Avatar := TAvatar.Create;
Avatar.Bitmap := TBitmap.Create;
Avatar.Bitmap.Assign(Нужный битмап);
Avatar.ID := Нужный ID;
List.AddObject('', Avatar); |
|
#7
|
||||
|
||||
|
Цитата:
Код:
type
TMyBitmap = class(TBitmap)
public
UserID: Integer;
end;
...
var
abmp: array of TMyBitmap;
begin
SetLength(abmp, 2);
abmp[0]:=TMyBitmap.Create;
abmp[0].LoadFromFile('1.bmp');
abmp[0].UserID:=1248;
abmp[1]:=TMyBitmap.Create;
abmp[1].LoadFromFile('2.bmp');
abmp[1].UserID:=5555;
ShowMessage(IntToStr(abmp[0].UserID));
ShowMessage(IntToStr(abmp[1].UserID));
end; |
|
#8
|
||||
|
||||
|
Лучше коллекции пользовать, с массивами труднее, в плане удаления произв. элементов.
|
|
#9
|
||||
|
||||
|
Код:
var
lbmp: TList;
bmp: TMyBitmap;
begin
lbmp:=TList.Create;
bmp:=TMyBitmap.Create;
bmp.LoadFromFile('1.bmp');
bmp.UserID:=1248;
lbmp.Add(bmp);
bmp:=TMyBitmap.Create;
bmp.LoadFromFile('2.bmp');
bmp.UserID:=5555;
lbmp.Add(bmp);
ShowMessage(IntToStr(TMyBitmap(lbmp[0]).UserID));
ShowMessage(IntToStr(TMyBitmap(lbmp[1]).UserID));
end;ну и не забываем про уничтожение объектов! добавлено позже: упс, пока перекуривал...) |
|
#10
|
|||
|
|||
|
особого отличия коллекции от списка так и не увидел, но доверюсь мнению знающих людей.
Кому будет интересно, вот хорошая статья про коллекции: http://www.delphisources.ru/pages/fa...llections.html |
|
#11
|
|||
|
|||
|
Использую TStringList для хранения объектов типа TUser.
Код:
type
TUser = class
online:byte;
uid,fname,lname:string;
photo:TBitmap;
end;В ходе работы программы добавляю объекты tempuser в переменную friends: Код:
tempuser.uid:=Pars('uid',answer);
tempuser.fname:=Pars('first_name',answer);
tempuser.lname:=Pars('last_name',answer);
tempuser.online:=StrToInt(Pars('online',answer));
...
tempuser.photo.Assign(jpeg);
...
Friends.AddObject(tempuser.uid,tempuser);Далее пытаюсь считать эти самые объекты и добавить их в ListBox Код:
lb_users.Items.BeginUpdate;
lb_users.Clear;
memo1.Lines.Add('count='+IntToStr(friends.Count));
SelUser:=TUser.Create;
for i := 0 to friends.Count-1 do
begin
if friends.Objects[i]=nil then memo1.Lines.Add('nil');
SelUser:=TUser(TObject(friends.Objects[i]));
memo1.Lines.Add(SelUser.fname+' '+SelUser.lname);
memo1.Lines.Add('online='+Inttostr(SelUser.online));
if SelUser.online = online then
begin
lb_users.AddItem(SelUser.fname+' '+SelUser.lname,
TObject(StrToInt(SelUser.uid)));
memo1.Lines.Add('i='+Inttostr(i)+' user='+SelUser.fname+' '+SelUser.lname);
end;
end;
SelUser.Free;
lb_users.Items.EndUpdate;При этом в LIstBox ничего не добавляется. В чем ошибка? |
|
#12
|
|||
|
|||
|
Как мне проверить состояние объектов?
|
|
#13
|
||||
|
||||
|
Цитата:
Код:
if SelUser.online = online then И ещё вопрос. Зачем нужны эти 2 строки?: Код:
...
SelUser:=TUser.Create;
...
SelUser.Free;
...Цитата:
Что это за состояние такое? Первый раз такое слышу... |
|
#14
|
|||
|
|||
|
Проверка проходит.
Код:
SelUser:=TUser.Create; ... SelUser.Free; Это локальная переменная. При считывании в цикли, выдается постоянно одно и тоже значение |
|
#15
|
||||
|
||||
|
Цитата:
Цитата:
|