Текущий архив: 2006.07.16;
Скачать: CL | DM;
ВнизФормы в Delphi Найти похожие ветки
← →
Вьюга (2006-06-30 11:00) [0]Есть такой код:
[CODE]
function FindActiveForm: String;
var I: Integer;
Ch: TComponent;
begin
Result := "frmDesktop";
for I := 0 to (application.ComponentCount-1) do begin
// поиск активной формы
if (AnsiPos("frm", Application.Components[I].Name)<>0) then
begin
if (Application.Components[I] as TForm).FindComponent("sgList")<>nil
then if ((Application.Components[I] as TForm).Parent=frmDesktop) then
begin
{Ch := frmDesktop.FindChildControl((Application.Components[I] as TForm).Name);
if ((Ch as TForm).ClassType=TForm) then if ((Ch as TForm).Active)
then }
Result := (Application.Components[I] as TForm).Name;
end;
end;
end;
end;
[CODE]
Так вот, если сначала открыть вТОРУЮ форму а потом ПЕРВУЮ то всё чётко. А если наоборот, то функция отдаёт имя ВТОРОЙ формы... В чём проблемка?
← →
ЮЮ © (2006-06-30 11:15) [1]Для чистоты эксперимента
Result := "frmDesktop";
следует заменить на
Result := "";
TScreen.ActiveForm чем не устроил?
← →
pushkin42 © (2006-06-30 11:19) [2]Тем что у всех форм парент frmDesktop. Типа фреймы.
← →
pushkin42 © (2006-06-30 11:21) [3]и если пишешь Result := Screen.ActiveForm.Name; он вообще ничего не отдаёт.
← →
ЮЮ © (2006-06-30 11:26) [4]В приведенном коде нет проверки "активности", а лишь проверка наличия компонента с именем sgList. Естественно, будет возвращаться последняя в списке форма
← →
pushkin42 © (2006-06-30 11:31) [5]Подскажи тогда:)
← →
ЮЮ © (2006-06-30 11:37) [6]Result := Screen.ActiveForm.Name; он вообще ничего не отдаёт.
Ничего это как? У объектов созданных в runtime name обычно пустое. Анализируй ClassName или класс формы.
← →
pushkin42 © (2006-06-30 11:42) [7]они не рунтайм, обычные формы, только при onshow я их parent := frmDesktop.
← →
ЮЮ © (2006-06-30 11:58) [8]
> Подскажи тогда:)
Попробовал создать такое "чудо". Так эти формы-фреймы вообще не получают фокуса ввода. Максимум что можно делать - двигать по главной форме.
Теперь ты подскажи - зачем тебе такие формы? :)
← →
pushkin42 © (2006-06-30 12:05) [9]Оно не мне а программеру который делал делал и бросил, а я теперь геморрой лечу...
Страницы: 1 вся ветка
Текущий архив: 2006.07.16;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.009 c