Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.30;
Скачать: CL | DM;

Вниз

Вопрос - Как узнать что 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
2-1196854638
Алексей11
2007-12-05 14:37
2007.12.30
таймер


15-1196164673
shark
2007-11-27 14:57
2007.12.30
Вопрос по 3D эффекты.


6-1176750778
dRake
2007-04-16 23:12
2007.12.30
Нужна документация по сокетам (+)


6-1176735518
Dmitry_177
2007-04-16 18:58
2007.12.30
Остановить выполнение accept или recv


2-1196808279
mr1Andersen
2007-12-05 01:44
2007.12.30
Как программно в компоненте ListBox выделить строчку(элемент)