![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
StringList
D7 © (2008-11-04 15:41:00)Можно ли в StringList добавить свою запись? Что-то типа: List.AddObject(S, TObject(MyRecord)); // MyRecord: TMyRecord;
alexeis (2008-11-05 12:43:00) [1]ок, и я буду знать)
Palladin (2008-11-04 16:52:00) [2]
> alexeis © (04.11.08 16:19) [7]
Саша ужо донес глас истины )
> {RASkov} © (04.11.08 16:46) [11]
+ Dispose(PMyRec(sl.Object[i])) в обязательном порядкеперед sl.Free
{RASkov} (2008-11-04 16:46:00) [3]Вот:
TMyRec = record
i: Integer;
s: string;
end;
PMyRec = ^TMyRec;
..........
var myRec: PMyRec;
...............
New(myRec);
myRec^.i := 2;
myRec^.s := 'abracadabra';
sl.AddObject('1', TObject(myrec));
...........
ShowMessage(IntToStr(PMyRec(sl.Objects[0])^.i)+' - '+PMyRec(sl.Objects[0])^.s);
.......
при типизированных указателях "крыши" ставить не обязательно...
D7 (2008-11-04 16:38:00) [4]
> Можно. Выделяем память под запись, а указатель на запись
> пишем в объект стринглиста...
Большое спасибо
{RASkov} (2008-11-04 16:36:00) [5]> [0] D7 (04.11.08 15:41)
> Можно ли в StringList добавить свою запись?
Можно. Выделяем память под запись, а указатель на запись пишем в объект стринглиста...
{RASkov} (2008-11-04 16:29:00) [6]> [7] alexeis © (04.11.08 16:19)
добавь в свой TMyRec еще хотябы одно поле и попробуй скомпилировать...
например:
TMyRec = record
s, s1: string;
end;
указатель и TObject = 4 байтам....
строка String тоже 4 байта...
alexeis (2008-11-04 16:19:00) [7]Если есть время и желание - укажи
Palladin (2008-11-04 16:13:00) [8]мне указать на твое великое заблуждение, а так же почему в этом случае компилируется или сам справишься?
alexeis (2008-11-04 16:12:00) [9]А если знают - почему спрашивают?)
Palladin (2008-11-04 16:05:00) [10]
> alexeis © (04.11.08 16:04) [3]
да ты что... а мужики то и не знают...
alexeis (2008-11-04 16:04:00) [11]
TMyRec = record
s:string;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var sl:TStringList;
myRec:TMyRec;
begin
sl := TStringList.Create;
myRec.s := 'casddasdas';
sl.AddObject('1',TObject(myrec));
ShowMessage(TMyRec(sl.Objects[0]).s);
Примерно так
alexeis (2008-11-04 15:59:00) [12]Ну этот метод для того и создан по идее)
Плохиш (2008-11-04 15:44:00) [13]О, дима голубков пожаловал...