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

Вниз

Замена элемента TList   Найти похожие ветки 

 
FishNode   (2008-03-31 11:52) [0]

прочел данные,изменил и хочу обратно вставить
но не методом Add а на то же место

v:=ListBox1.ItemIndex;
PPP:=P.List.Items[v];
z:=P.info;
z.test:=0;

P.List.Items[v]:=PPP; ? вроде так или нет ?


 
Reindeer Moss Eater ©   (2008-03-31 11:54) [1]

адд не нужен. и все остальное тоже


 
FishNode   (2008-04-04 01:08) [2]

делаю так

v:=ListBox1.ItemIndex;
PPP:=P.List.Items[v];
PPP^.test:=0;

стало быть я пишу прямо туда не трогая список TList
однако он оказывается после действий пустым
=P.List.count-1 !


 
Германн ©   (2008-04-04 01:26) [3]


> FishNode   (04.04.08 01:08) [2]
>
>

А поподробнее нельзя написать?
Что есть PPP? Что есть P? Что есть List? Что есть z?
Не надо пытаться "перегружать" наши телепаторы. Они имеют встроенную защиту.
Причём, как минимум - двухуровневую! :)


 
FishNode   (2008-04-04 10:13) [4]

вот так изменяю данные по индексу TList

type
TP = record
test:byte;
html1:dword;
html2:dword;
stop:dword;
end;

var
v:word;
P:TList;
PPP:^TP;

v:=ListBox1.ItemIndex; // на чем кликнули TListBox
PPP:=P.List.Items[v]; // колнка TListBox = TList
PPP^.test:=0;


 
clickmaker ©   (2008-04-04 10:23) [5]

почему не использовать ListBox.Items.Objects ?


 
Плохиш ©   (2008-04-04 11:08) [6]


> PPP:=P.List.Items[v]; // колнка TListBox = TList
> PPP^.test:=0;

Учитывая, что P.List.Items[v] есть строка, нука попробуй объяснить, что ты пытаешься сделать в следующей строке?

PS. Не пора ли почитать что-нибуть?


 
FishNode   (2008-04-04 20:05) [7]

P:TList;

v:=ListBox1.ItemIndex; // на чем кликнули TListBox
PPP:=P.Items[v]; // колнка TListBox = TList
PPP^.test:=0;


конечно


 
FishNode   (2008-04-05 22:26) [8]

стал  делать по подсказке clickmaker^a
через ListBox1.Items.Objects

все добавляется в лист бокс строка и в Object указатель на данные
а вот достать их никак (пытаюсь указатель получить)

type
TP = record
test:byte;
html1:dword;
html2:dword;
stop:dword;
end;

var
PPP:^TP;

PPP :=TP( ListBox1.Items.Objects[ListBox1.ItemIndex ]);


[Error] Unit1.pas(49): Invalid typecast

если PPP := ListBox1.Items.Objects[ListBox1.ItemIndex ];
то [Error] Unit1.pas(4): Incompatible types: "TObject" and "Pointer"


 
Германн ©   (2008-04-06 00:01) [9]


> PPP :=Pointer( ListBox1.Items.Objects[ListBox1.ItemIndex ]);


 
FishNode   (2008-04-06 01:05) [10]

хм проглатило! Спасибо,проверяется
мне уже подсказали метод класса через размещение в TObjectList


 
Германн ©   (2008-04-06 01:22) [11]


> FishNode   (06.04.08 01:05) [10]
>
> хм проглатило!

Ещё бы оно не проглотило!


> мне уже подсказали метод класса через размещение в TObjectList
>

???


 
FishNode   (2008-04-06 01:27) [12]

переменные как объекты, сам не понял еще
если =Pointer( ListBox1.Items.Objects[ListBox1.ItemIndex ]);
заработает как надо , то ваш метод буду использовать


 
Германн ©   (2008-04-06 01:33) [13]


> FishNode   (06.04.08 01:27) [12]
>
> переменные как объекты, сам не понял еще

Ааа. Т.е. никаких "строк" нет. Есть только некие переменные какого-то типа. Так?
Тогда да. Тогда лучше TObjectList. А для записей - динамический массив.


 
FishNode   (2008-04-06 09:45) [14]

да строк никак в записи нет
type
TP = record


в принципе и строки наверное влезут, но не PCHAR
а типа string[200] тоесть ограниченные

использование оболочки TObjectList немного грязнит код
чем PPP :=Pointer( ListBox1.Items.Objects[ListBox1.ItemIndex ]);

странно что
PPP.test:=0;
и PPP^.test:=0;

одно и тоже


 
{RASkov} ©   (2008-04-06 10:32) [15]

> [14] FishNode   (06.04.08 09:45)
> странно что
> PPP.test:=0;
> и PPP^.test:=0;
> одно и тоже

Компилятор сам разименовывает(подставляет галочку) для типизированных указателей...

Все компоненты, накиданные в дизайнере на фому, теже самые указатели и поэтому вроде как нужно писать нечто так:
Label1^.Caption:="";
но это не делается, компилятор умный...:)


 
Германн ©   (2008-04-06 17:08) [16]


> FishNode   (06.04.08 09:45) [14]
>
> да строк никак в записи нет

Я хотел сказать что если нет никакой текстовой информации, которую нужно показывать пользователю, то глупо использовать визуальный компонент типа TListBox для хранения неких переменных.


 
FishNode   (2008-04-06 23:09) [17]

{RASkov}

да просто удивило, когда надо компилятор соображать не хочет)

Германн

вобще-то есть выводится строка в  TListBox при добавлении,
сократил код по миниму,а так бы использовал TList


 
Германн ©   (2008-04-07 00:58) [18]


> вобще-то есть выводится строка в  TListBox при добавлении,
>
> сократил код по миниму,а так бы использовал TList
>

Тогда другое дело.



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

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

Наверх




Память: 0.51 MB
Время: 0.012 c
6-1185712732
malyar
2007-07-29 16:38
2008.05.04
idtcpserver посылка пакетов всем подключенным клиентам


15-1205931726
@!!ex
2008-03-19 16:02
2008.05.04
Аналог property в C++


15-1201816478
Eraser
2008-02-01 00:54
2008.05.04
Remote Office Manager - бета тестирование 2


2-1207687754
Riply
2008-04-09 00:49
2008.05.04
Выбор типа структуры для хранения данных и работы с ними.


3-1196537722
Kley
2007-12-01 22:35
2008.05.04
преобразование типа поля