Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];

Вниз

Замена элемента 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.005 c
15-1206439260
KSergey
2008-03-25 13:01
2008.05.04
Отрисовка курсора в Windows


3-1196414781
Ega23
2007-11-30 12:26
2008.05.04
Вопрос по устройству SP в FireBird


2-1207726269
cvg
2008-04-09 11:31
2008.05.04
Помогите найти ошибку в небольшой функции!


15-1206016036
@!!ex
2008-03-20 15:27
2008.05.04
Добавить в res файл полноцветную иконку.


2-1207548421
031178
2008-04-07 10:07
2008.05.04
Обновление таблички





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский