![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Замена элемента TList
FishNode © (2008-03-31 11:52:00)прочел данные,изменил и хочу обратно вставить
но не методом Add а на то же место
v:=ListBox1.ItemIndex;
PPP:=P.List.Items[v];
z:=P.info;
z.test:=0;
P.List.Items[v]:=PPP; ? вроде так или нет ?
Германн (2008-04-07 00:58:00) [1]
> вобще-то есть выводится строка в TListBox при добавлении,
>
> сократил код по миниму,а так бы использовал TList
>
Тогда другое дело.
FishNode (2008-04-06 23:09:00) [2]{RASkov}
да просто удивило, когда надо компилятор соображать не хочет)
Германн
вобще-то есть выводится строка в TListBox при добавлении,
сократил код по миниму,а так бы использовал TList
Германн (2008-04-06 17:08:00) [3]
> FishNode (06.04.08 09:45) [14]
>
> да строк никак в записи нет
Я хотел сказать что если нет никакой текстовой информации, которую нужно показывать пользователю, то глупо использовать визуальныйкомпонент типа TListBox для хранения неких переменных.
{RASkov} (2008-04-06 10:32:00) [4]> [14] FishNode (06.04.08 09:45)
> странно что
> PPP.test:=0;
> и PPP^.test:=0;
> одно и тоже
Компилятор сам разименовывает(подставляет галочку) для типизированных указателей...
Все компоненты, накиданные в дизайнере на фому, теже самые указатели и поэтому вроде как нужно писать нечто так:
Label1^.Caption:='';
но это не делается, компилятор умный...:)
FishNode (2008-04-06 09:45:00) [5]да строк никак в записи нет
type
TP = record
в принципе и строки наверное влезут, но не PCHAR
а типа string[200] тоесть ограниченные
использование оболочки TObjectList немного грязнит код
чем PPP :=Pointer( ListBox1.Items.Objects[ListBox1.ItemIndex ]);
странно что
PPP.test:=0;
и PPP^.test:=0;
одно и тоже
Германн (2008-04-06 01:33:00) [6]
> FishNode (06.04.08 01:27) [12]
>
> переменные как объекты, сам не понял еще
Ааа. Т.е. никаких "строк" нет. Есть только некие переменные какого-то типа. Так?
Тогда да. Тогда лучше TObjectList. А для записей - динамический массив.
FishNode (2008-04-06 01:27:00) [7]переменные как объекты, сам не понял еще
если =Pointer( ListBox1.Items.Objects[ListBox1.ItemIndex ]);
заработает как надо , то ваш метод буду использовать
Германн (2008-04-06 01:22:00) [8]
> FishNode (06.04.08 01:05) [10]
>
> хм проглатило!
Ещё бы оно не проглотило!
> мне уже подсказали метод класса через размещение в TObjectList
>
???
FishNode (2008-04-06 01:05:00) [9]хм проглатило! Спасибо,проверяется
мне уже подсказали метод класса через размещение в TObjectList
Германн (2008-04-06 00:01:00) [10]
> PPP := Pointer( ListBox1.Items.Objects[ListBox1.ItemIndex ]);
FishNode (2008-04-05 22:26:00) [11]стал делать по подсказке 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'
FishNode (2008-04-04 20:05:00) [12]
P:TList;
v:=ListBox1.ItemIndex; // на чем кликнули TListBox
PPP:=P.Items[v];// колнка TListBox = TList
PPP^.test:=0;
конечно
Плохиш (2008-04-04 11:08:00) [13]
> PPP:=P.List.Items[v]; // колнка TListBox = TList
> PPP^.test:=0;
Учитывая, что P.List.Items[v] есть строка, нука попробуй объяснить, что ты пытаешься сделать в следующей строке?
PS. Не пора ли почитать что-нибуть?
clickmaker (2008-04-04 10:23:00) [14]почему не использовать ListBox.Items.Objects ?
FishNode (2008-04-04 10:13:00) [15]вот так изменяю данные по индексу 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;
Германн (2008-04-04 01:26:00) [16]
> FishNode (04.04.08 01:08) [2]
>
>
А поподробнее нельзя написать?
Что есть PPP? Что есть P? Что есть List? Что есть z?
Не надо пытаться "перегружать" наши телепаторы. Они имеют встроенную защиту.
Причём, как минимум - двухуровневую! :)
FishNode (2008-04-04 01:08:00) [17]делаю так
v:=ListBox1.ItemIndex;
PPP:=P.List.Items[v];
PPP^.test:=0;
стало быть я пишу прямо туда не трогая список TList
однако он оказывается после действий пустым
=P.List.count-1 !
Reindeer Moss Eater (2008-03-31 11:54:00) [18]адд не нужен. и все остальное тоже