Форум: "Начинающим";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];
ВнизВопрос - Как узнать что TPanel.BringtoFront=True? Найти похожие ветки
← →
vegarulez © (2007-12-05 18:30) [0]Прив мастерам!
Сабж.
← →
Kolan © (2007-12-05 18:49) [1]BringtoFront не может быть True, так как это метод, а не свойство.
← →
Palladin © (2007-12-05 19:03) [2]по ZOrder
← →
vegarulez © (2007-12-05 19:56) [3]Kolan © (05.12.07 18:49) [1]
я в курсе...
я имею ввиду, как определить, что из всех других TPanel`ов этот Bringtofront, а остальные под ним расположены...
как это определить?
← →
boa_kaa © (2007-12-05 20:30) [4]
> vegarulez © (05.12.07 19:56) [3]
Тебе в 2 русским по белому написали
← →
vegarulez © (2007-12-06 07:18) [5]Palladin © (05.12.07 19:03) [2]
А это как?
boa_kaa © (05.12.07 20:30) [4]
я не понял... поясни...
← →
ЮЮ © (2007-12-06 10:20) [6]> что из всех других TPanel`ов этот Bringtofront, а остальные
> под ним расположены...
Выполнить BringtoFront и добиться желаемого.
← →
{RASkov} © (2007-12-06 12:25) [7]> [5] vegarulez © (06.12.07 07:18)
На вот попробуй это:function ConrtrolIsFront(Ctrl: TControl; AParent: TWinControl; IgnoreOther: Boolean=False): Boolean;
var N: Integer;
begin
if not IgnoreOther then Result:=AParent.Controls[AParent.ControlCount-1]=Ctrl
else for N:=AParent.ControlCount-1 downto 0 do
if AParent.Controls[N] is Ctrl.ClassType then begin
Result:=AParent.Controls[N]=Ctrl;
Break;
end;
end;
Я в англицком не силен, поэтому названия могут не соответствовать и поэтому вот расшифровка:
Ctrl - проверяемый контрол
AParent - проверять на этом родителе
IgnoreOther - участвуют ли в проверки другие контролы, т.е. если выше самого верхнего контрола класса проверяемого, лежит контрол другого класса.... в общем думаю понятно:)
Может есть и стандартный какой-то способ, но я бегло пробегся по TControl.. заметил только SetZOrder...
← →
{RASkov} © (2007-12-06 12:59) [8]Вот так, вроде бы, более правильнее и красивее:
function IsFrontControl(Ctrl: TControl; AParent: TWinControl; const IgnoreOther: Boolean=False): Boolean;
var N: Integer;
begin
with AParent do begin
Result:=Controls[ControlCount-1]=Ctrl;
if not IgnoreOther or Result then Exit;
for N:=ControlCount-1 downto 0 do
if Controls[N] is Ctrl.ClassType then begin
Result:=Controls[N]=Ctrl;
Break;
end;
end;
end;
← →
vegarulez © (2007-12-06 15:48) [9]А как быть если он -TPanel, дважды вложен в другие TPanel`ы?
← →
vegarulez © (2007-12-06 15:51) [10]т.е.
TPanel1--->TPanel2--->Tpanel3
Вот Tpanel3 как раз и требуется отследить.... потому как в TPanel2 содержится несколько TPanel`ов типа Tpanel3...
← →
{RASkov} © (2007-12-06 23:43) [11]> [9, 10] vegarulez © (06.12.07 15:48)
if IsFrontControl(panel3, Panel2) then ShowMsg("Панэл3 первая на панели2:")
← →
{RASkov} © (2007-12-06 23:45) [12]> первая
*тобишь верхняя (оно же - топмост, BringtoFront=True)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.011 c