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

Вниз

Новые переменные   Найти похожие ветки 

 
Ramzes   (2002-11-03 18:06) [0]

Как не создавая новой компоненты, добавить в старую новые переменные:
Например, мне нужно добавить переменную Size пита Longint в ListView1.Items.Item[1], чтобы получилось ListView1.Items.Item[1].Size
Заранее спасибо за ответ.


 
BOA_KAA   (2002-11-03 18:14) [1]

Я бы не советовал этого делать, но если нужно, то через New Component вызываешь исходник, переделываешь и вперед


 
TTCustomDelphiMaster   (2002-11-03 18:55) [2]

У TListItem есть замечательное свойство Data. С помощью него можно добавить все что угодно.


 
Ramzes   (2002-11-03 20:04) [3]

А пример можно?


 
Ramzes   (2002-11-03 20:05) [4]

Или способ как получить новую переменную ListView1.Items.Item[1].Size типа Longint


 
Сатир   (2002-11-03 20:49) [5]

TSizeListBox = class (TListBox)
function GetSize (const AIndex:integer):longint;
public
property Size[const AIndex: integer]:longint
read Getsize ;default;
end;

implementation

function TSizeListBox.GetSize(const AIndex:integer):longint;
begin
if assigned(self.items.item[AIndex]) then
Result:= sizeof(self.items.item[AIndex])
else raise Exeception.Create("the value isn""t assigned!")
end;
end.

add: директива default позволяет обращаться к свойству таким макаром:
SizeListBox[1]
или
SizeListBox.size[1]


 
TTCustomDelphiMaster   (2002-11-03 21:06) [6]

ListView1.Items.Item[0].Data := Pointer(i);
i := LongInt(ListView1.Items.Item[0].Data);



 
Ramzes   (2002-11-03 21:20) [7]

Что-то я не очень понимаю.
А если, например, мне нужно добавить переменную Attr типа Byte и Name типа String в ListView1.Items.Item[1], чтобы получилось ListView1.Items.Item[1].Attr?

Как это получить?


 
TTCustomDelphiMaster   (2002-11-03 21:48) [8]

Тут для TreeView. Но для ListView тоже самое будет

_Александр_ (09.08.02 04:58)
Думаю,одним integer-ом дело не обойдётся :)...
Так, что сразу такой ответик:

1. Создаёшь новый тип
type
...
TMyRec = record
SomeInt : integer;
SomeByte : byte;
SomeString : string[50];
SomeFloat : real;
end;

TPMyRec = ^TMyRec;
...


2. Запись в Data (а быть точнее - создаём переменную нужного нам типа и передаём её адрес полю Data):

var
P : TPMyRec;
begin
...
New(P);
P^.SomeInt := 123;
P^.SomeByte := 255;
P^.SomeString := "abceklmn";
P^.SomeFloat := 3.14;
Твой_3Ноде.Data := P;
...
end;



3. Раз переменные создавал - нужно их и прибивать:

В событии OnDeletion TreeView-а:

if TTreeNode.Data <> nil then
Dispose(TPMyRec(TTreeNode.Data));



4. Чтение/запись значений
MyInt := TPMyRec(ListView1.Items[0].Data)^.SomeInt;
TPMyRec(ListView1.Items[0].Data)^.SomeByte := NewByte;


 
Юрий Зотов   (2002-11-03 22:13) [9]

> Ramzes

Без переделки или написания наследника - никак. Используйте свойство Data, он специально для того и сделано.



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

Форум: "Основная";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
14-46126
RV
2002-10-17 16:05
2002.11.14
С днем рождения! BigBadMutuh!


14-46134
p_albert77@mail.ru
2002-10-27 01:19
2002.11.14
программа печатает сама себя???


1-45890
Nostradamus
2002-11-05 18:40
2002.11.14
Текст с прозрачным фоном


1-45796
Vadia
2002-11-03 15:49
2002.11.14
Печать TMemo


14-46061
AL2002
2002-10-22 18:23
2002.11.14
Где можно скачать шахматы?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский