Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Узнать Top предыдущего элемента в списке TList [D7]


Страницы:   1 2 3

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
Но это неправильная работа с указателями. Все объекты и так передаются по ссылке и являются указателями.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо