![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Узнать Top предыдущего элемента в списке TList [D7]
Vass © (2010-05-19 18:57:00)Здравствуйте! У меня такой вопрос. Создал список типа TList и "кидаю" в него компоненты типа TImage, как узнать свойство Top предыдушего Image-а ? Например, мне нужно устрановить следующий блок ровно под предыдущем.
...
pimage^.Top := List.Items[i-1]^.Top + List.Items[i-1].Height;
...
Что то типа такого, но именно так нельзя Items[i] это типа Pointe, Тор-это типа integer. Заранее спасибо!!! Этот сайт и форум мне уже не раз помог!!! ))
today (2010-07-08 19:18:00) [21]По мере изучения, пришло время - начал ковырять :)
А как это объяснить?
var r: Pointer;
...
r := pointer(Label1);
TEdit(r).Text := 'f';
r := nil;
И как узнать что указатель указывает на Label а не на Edit?
Юрий Зотов (2010-07-08 18:50:00) [22]Что статью накопал - хорошо. Что прочитал и разобрался в теме - отлично.
Блин, но вот что странно. Ведь все это и еще очень многое другое есть в книжках по Паскалю. Так почему же люди КАЖДЫЙ раз тратят километры времени на поиск информации по КАЖДОЙ незнакомой теме вместо того, чтобы ОДИН раз прочитать ОДНУ книжку?
Омлет (2010-07-08 15:59:00) [23]Надо так:
MyList.add(MyPanel);
today (2010-07-08 15:56:00) [24]Всем спасибо! Разобрался, дело было в добавлении указателя в список, я добавлял так:
MyList.add(@MyPanel);
а надо так:
MyList.add(Pointer(MyPanel));
статью накопал - http://www.igrif.org/programmizm/ukazateli-v-delphi/
Ega23 (2010-07-08 15:43:00) [25]
> У TList нет такого свойства.
У TList есть такое свойство.
Для автора: я бы вместо TList использовал бы TObjectList из Contnrs.
Германн (2010-07-08 15:38:00) [26]
> Вот в этом default все дело и есть.
Не знал о таком применении слова default. Спасибо.
Юрий Зотов (2010-07-08 09:32:00) [27]
> Германн © (08.07.10 02:17) [15]
property Items[Index: integer] read... write... default ;
Вот в этом default все дело и есть. Свойство по умолчанию.
Омлет (2010-07-08 09:12:00) [28]myList[0] и myList.items[0] - равнозначные обращения к элементу списка.
> today
Код в студию.
today (2010-07-08 04:22:00) [29]
TMyPanel(MyList.items[0]).edt_one- если вы про это, то так тоже пустая :)
Германн (2010-07-08 02:17:00) [30]
> Юрий Зотов © (07.07.10 22:23) [13]
>
> Сомнения в смысле и в компилируемости конструкции:
> TMyPanel(MyList[0]).edt_one
> <Цитата>
>
> Юрий Зотов © (08.07.10 01:01) [14]
>
> Сорри, не прочитал [3]. Тогда действительно, edt_one просто
> пустой.
>
Я [3] прочитал. Но не могу понять конструкцию MyList[0]. У TList нет такого свойства.
Юрий Зотов (2010-07-08 01:01:00) [31]Сорри, не прочитал [3]. Тогда действительно, edt_one просто пустой.
Юрий Зотов (2010-07-07 22:23:00) [32]Сомнения в смысле и в компилируемости конструкции:
TMyPanel(MyList[0]).edt_one
Leonid Troyanovsky (2010-07-07 22:05:00) [33]
> today (07.07.10 18:55) [8]
> showmessage(TMyPanel(MyList[0]).edt_one.Text);
> пустое сообщение показывает. В чем может быть косяк?
Очевидно, что в edt_one - пустая строка.
Дык, а в чем сомнения?
--
Regards, LVT.
Юрий Зотов (2010-07-07 21:32:00) [34]Зачем же тогда пишете то, чего сами не понимаете? Какой в этом смысл?
Ладно, начнем по порядку. Что такое TMyPanel?
today (2010-07-07 20:54:00) [35]мог бы ответить - не спрашивал бы
Юрий Зотов (2010-07-07 20:50:00) [36]Ответьте самому себе на вопрос: что получится в результате операции
TMyPanel(MyList[0])
today (2010-07-07 18:55:00) [37]Создаю всего одну панель, вызываю:
showmessage(TMyPanel(MyList[0]).edt_one.Text);
пустое сообщение показывает. В чем может быть косяк?
today (2010-07-07 17:06:00) [38]Прошу прощение! По-ходу работает, отпишусь как все проверю...
today (2010-07-07 16:31:00) [39]Спасибо за оперативность Омлет :)
Но чето не работает...
Омлет (2010-07-07 16:12:00) [40]Или просто TPMyPanel(myList[i])^.edt_one.text
Но это неправильная работа с указателями. Все объекты и так передаются по ссылке и являются указателями.