|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Найти компонент по его .Top
Привет программисты.
У меня есть scrollbox, на нем в рантайме создаются Image, 40 шт. Располагаются они по align = altop, друг за дружкой. Нужно найти самый первый пустой Image, но первый не по номеру, а по top. В моей программе эти Image могут быть перемешаны между собой, то бишь Image[1] может находится как сверху, так и снизу или по середине.. Что бы вы понимали, я прикреплю изображение. Стрелкой указан img который нужно определить. Можно даже без кода, просто в двух словах.. |
#2
|
|||
|
|||
Ну, если в 2х словах, то примерно так:
Перебираешь ВСЕ имаджи. Если текущий не пустой, то пропускаешь его. Если пустой, то проверяешь координаты. Если меньше, чем у уже выбранного, то запоминаешь новый. Код пишу прямо тут, так что могу что-то напутать в названиях свойств и методов: Код:
var I : Integer; TopImg : TImage; begin TopImg := Nil; For I := 0 To ScrollBox1.ComponentCount-1 Do If ScrollBox1.Components[i] Is TImage Then Begin If (ScrollBox1.Components[i] As TImage).IsEmpty Then Begin If TopImg = Nil Then TopImg := ScrollBox1.Components[i] As TImage Else If (ScrollBox1.Components[i] As TImage).Top < TopImg.Top Then TopImg := ScrollBox1.Components[i] As TImage End; End; |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Gareth (29.03.2019)
|
#3
|
|||
|
|||
Цитата:
Столкнулся с проблемой, оба условия не срабатывают. Код:
if IMG[i].Picture = nil then begin ShowMessage('aaa'); end; if IMG[i].Picture.Graphic = nil then begin ShowMessage('aaa'); end; Как еще можно проверить TImage на отсутствие пикчи в ней? ПРобовал при создании Image`a ставить nil, но безрезультатно. delphi rio win10 Последний раз редактировалось Gareth, 29.03.2019 в 09:07. |
#4
|
|||
|
|||
Я же не просто написал IsEmpty. Есть там где-то такой метод.
UPD. Посмотрел доку. Есть св-во Empty у TImage.Picture.Graphic Последний раз редактировалось lmikle, 29.03.2019 в 18:38. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Gareth (30.03.2019)
|