Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.12.14;
Скачать: CL | DM;

Вниз

StringList   Найти похожие ветки 

 
D7   (2008-11-04 15:41) [0]

Можно ли в StringList добавить свою запись? Что-то типа: List.AddObject(S, TObject(MyRecord)); // MyRecord: TMyRecord;


 
Плохиш ©   (2008-11-04 15:44) [1]

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


 
alexeis ©   (2008-11-04 15:59) [2]

Ну этот метод для того и создан по идее)


 
alexeis ©   (2008-11-04 16:04) [3]

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);


Примерно так


 
Palladin ©   (2008-11-04 16:05) [4]


> alexeis ©   (04.11.08 16:04) [3]

да ты что... а мужики то и не знают...


 
alexeis ©   (2008-11-04 16:12) [5]

А если знают - почему спрашивают?)


 
Palladin ©   (2008-11-04 16:13) [6]

мне указать на твое великое заблуждение, а так же почему в этом случае компилируется или сам справишься?


 
alexeis ©   (2008-11-04 16:19) [7]

Если есть время и желание - укажи


 
{RASkov} ©   (2008-11-04 16:29) [8]

> [7] alexeis ©   (04.11.08 16:19)

добавь в свой TMyRec еще хотябы одно поле и попробуй скомпилировать...
например:
TMyRec = record
   s, s1: string;
end;
указатель и TObject = 4 байтам....
строка String тоже 4 байта...


 
{RASkov} ©   (2008-11-04 16:36) [9]

> [0] D7   (04.11.08 15:41)
> Можно ли в StringList добавить свою запись?

Можно. Выделяем память под запись, а указатель на запись пишем в объект стринглиста...


 
D7   (2008-11-04 16:38) [10]


> Можно. Выделяем память под запись, а указатель на запись
> пишем в объект стринглиста...


Большое спасибо


 
{RASkov} ©   (2008-11-04 16:46) [11]

Вот:
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);
.......


при типизированных указателях "крыши" ставить не обязательно...


 
Palladin ©   (2008-11-04 16:52) [12]


> alexeis ©   (04.11.08 16:19) [7]

Саша ужо донес глас истины )


> {RASkov} ©   (04.11.08 16:46) [11]

+ Dispose(PMyRec(sl.Object[i])) в обязательном порядке перед sl.Free


 
alexeis ©   (2008-11-05 12:43) [13]

ок, и я буду знать)



Страницы: 1 вся ветка

Текущий архив: 2008.12.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
15-1223364033
Vlad Oshin
2008-10-07 11:20
2008.12.14
Предложение по оформлению.


2-1225776891
AlexDan
2008-11-04 08:34
2008.12.14
Работа с BorderIcons..


2-1225795599
Петр
2008-11-04 13:46
2008.12.14
Виртуальный LPT


2-1225802468
D7
2008-11-04 15:41
2008.12.14
StringList


15-1222849944
vajo
2008-10-01 12:32
2008.12.14
Компьютерная программа обманула научный журнал с помощью корчеват