-
Привет, мастера! Создаю динамически компоненты (компоненты разные и TLabel и TMemo и т.д.) на форме. Пользователи могут их в любом порядке добавлять. Подскажите, пожалуйста, как определить свойство Top у нижнего компонента, чтобы следующий добавленный компонент не накладывался на другие?
-
Зачем определять то, что известно? При добавлении нового запоминать его тор+высоту как "самого нижнего" (если конечно компоненты добавляются по вертикали, а не куда попало)
-
WinApi.GetWindow?
-
Да, удобнее всего будет запоминать последнее использованное Bottom в какое-то поле подходящего класса (например вашего потомка TForm). А вообще можно циклом пройтись по всем контролам.
-
> Пользователи могут их в любом порядке добавлять
наверняка и удалять. а значит есть некий механизм, а-ля ласткомпонент, ферсткомпонент,селектедкомпонент и т.д. чо в свою очередь означает, чо ничо запоминать не надо, уже запомнено.
-
if self.controlcount>0 then botomcontrol:=self.controls[0] else bottomcontrol:=nil;
for j:=self.controlcount-1 downto 1 do begin
if self.controls[j].top + self.controls[j].hight > bottomcontrol.top + bottomcontrol.hight then bottomcontrol:=self.controls[j];
-
BringToFront / BringToBack ?
-
> anonims (05.04.17 09:39) [5]
жуть-то какая. гонять цикл каждый раз.
|