Показать сообщение отдельно
  #3  
Старый 29.03.2019, 09:04
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ну, если в 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;
Спасибо, я понял принцип, но решил сделать немного по своему..
Столкнулся с проблемой, оба условия не срабатывают.
Код:
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
Ответить с цитированием