Главная страница
    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.007 c
4-46184
Termik
2002-10-04 12:13
2002.11.14
Хинты в меню


14-46142
vopros
2002-10-28 12:26
2002.11.14
Акция.


3-45720
VikOss
2002-10-23 17:51
2002.11.14
TUpdateQuery


3-45755
TAG_SPB
2002-10-25 11:16
2002.11.14
RunTime Создание DBF-III таблицы


7-46155
Zergling
2002-09-12 13:00
2002.11.14
POPUP меню в SYSTRAY





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