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

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

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]

О, дима голубков пожаловал...


Наверх

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