delphi проверка существования формы

Delphi проверка существования формы

Господа программисты! Подскажите.
Есть MDI приложение. При нажатии на кнопку создается форма с DBGrid. Вызывается метод Show. Как сделать, чтобы при повторном нажатии форма не создавалась еще раз, а просто показывалась. Т.е., как проверить, создана ли MDIChild форма.

topdown
AngeL B. ( 2002-07-19 10:36 ) [1]

topdown
sniknik ( 2002-07-19 10:42 ) [2]

по какому нибудь признаку формы Caption например.
Form1.MDIChildCount
Form1.MDIChildren

topdown
fool ( 2002-07-19 10:56 ) [3]

С MDI будь внимательным: прога точно не знает что с чилдом (есть он или нет) поетому лучше всего делать так:
при «нажатии на кнопку «:
if FrmTTN = nil then FrmTTN := TFrmTTN.Create(self);
FrmTTN.WindowState := wsMaximized;
FrmTTN.Show;

procedure TFrmMDIChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := CaFree;
end;

procedure TFrmTTN.FormDestroy(Sender: TObject);
begin
FrmMDIChild := nil;
end;

topdown
Sergey13 ( 2002-07-19 10:57 ) [4]

Я долго искал в свое время решение этого вопроса и вот к чему пришел

function ExistsForm(S:String):Boolean;
var i:integer;
begin
result:=False;
for i:=0 to screen.FormCount-1 do
if uppercase(screen.Forms[i].name)=uppercase(s) then result:=True;
end;

topdown
sniknik ( 2002-07-19 11:31 ) [6]

зачем сложности? поиск по компонентам формам. нужно только чилды проверить. примерно как Sergey13 © (19.07.02 10:57) только используя DIChildCount у главной формы (количиство чилдов) и MDIChildren (масив из них). чего еще?

topdown
Stecoff ( 2002-07-19 13:25 ) [7]

topdown
Stecoff ( 2002-07-19 13:30 ) [8]

Извините господа. Все заработало. Спасибо огромное.

Источник

Проверка включённости форм.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

tickПроверка на существования форм
Добрый день У меня на главной форме, меню программы с 7 вкладками, каждая вкладка ведет на.

Имеешь в виду видимость форм?

Если да, то после implementation каждой из Form2, Form4, Form7, Form8

добавь Uses Unit1; (если ты не менял название юнитов, а если менял, то прописывай свое название)

Просто в Uses Unit7 (form7) добавь Uses2, Uses4, Uses7, Uses8 соответственно

а в FormCreate форм (2, 4, 7, 8) добавь

Имеешь в виду видимость форм?

Если да, то после implementation каждой из Form2, Form4, Form7, Form8

добавь Uses Unit1; (если ты не менял название юнитов, а если менял, то прописывай свое название)

Просто в Uses Unit7 (form7) добавь Uses2, Uses4, Uses7, Uses8 соответственно

а в FormCreate форм (2, 4, 7, 8) добавь

Добавлено через 44 секунды

Я УЖЕ НАПИСАЛ, ЧТО АКТИВНОСТЬ МНЕ НЕ НУЖНА, УЖЕ КАКОЙ РАЗ И КТО ПРО НЕЁ ПИШЕТ, да и позорную ошибку в коде допустили вы.

Добавлено через 18 минут
Даже пробовал на каждой форме создать переменные opened, при onShow они true, при onHide они false, и ошибка, как при активности.

Я описал вопрос вполне нормально, до вас было чётко написано, что нужно, а вы ещё и написали if a:=1 then. гений кода.

Добавлено через 2 минуты

Проверка форм на заполнение
Вот скрипт с формой регистрации и со скриптом проверки на заполнение, но он почему то не работает.

Проверка Форм с помощью Velocity?
Не обходима создать проверку форм с помощью технологии Velocity и JSP Пробовал сделать как.

Проверка на заполненность полей обеих форм
Привет всем. Нужно сделать чтобы информация с формы записывалась,когда заполнены обе формы. На.

Источник

Delphi проверка существования формы

Всем добрый день.
Подскажите каким образом запретить создание несколькох одинаковый mdi-дочек. А еще как проверить создана ли вызываемая дочка и если создана, то показать на экране из свернутого состояния.
Спасибо.

topdown
Erik1 © ( 2004-10-18 11:25 ) [1]

Проверка создания MDI ничем неотличаеться от проверки создания обычной формы. Конструктор либо отрабатывает либо нет, ты ловиш exception с помощю try except. Второе Show, Restore.

topdown
AlexG © ( 2004-10-18 11:35 ) [2]

topdown
Pentium133 © ( 2004-10-18 11:57 ) [3]

Использую такую функцию, в параметр кидай Имя формы:
Вызов

if CheckWin(«fTovar») then Exit;
fTovar:= TfTovar.Create(Self);
fTovar.Show

topdown
1008 © ( 2004-10-18 12:33 ) [4]

Ещё один (не оптимальный) вариант:
в форме main завести переменную, которая будет говорить запущена ли дочерняя форма или нет. Если запущена, то вновь созданную закрыть.

//1008 © (18.10.04 12:33) [4]
Во-первых, уже я сказал :)
Во-вторых, неточность у тебя: нужно проверять до того, как создать объект. ;)

topdown
1008 © ( 2004-10-18 13:48 ) [6]

AlexG © (18.10.04 13:41) [5]

У меня, в отличие от вас, нет блока try. Я делаю проверку на этапе FormShow

topdown
AlexG © ( 2004-10-18 14:06 ) [7]

A у меня там TRY? Читай внимательней :) И НИ КАКИХ TRY.

topdown
Erik1 © ( 2004-10-18 14:16 ) [8]

topdown
AlexG © ( 2004-10-18 14:24 ) [9]

//Erik1
Если они возникают. А если нет?
В моем подходе их не будет возникать ;)

topdown
AlexG © ( 2004-10-18 14:40 ) [11]

topdown
Pentium133 © ( 2004-10-18 14:46 ) [12]


> Нет, он долгий.

8-0
Да даже при открытии сотни окон (конечно, такого никогда не будет) я не думаю что надо будет идти курить.
А мне нравится такое решение. Как говорится не через J»пу

topdown
Erik1 © ( 2004-10-18 14:48 ) [13]

to AlexG
Это как небудут?! А если в констркторе ошибка, может быть сотня другая причин по которой возникнет exception.

to Pentium133
CheckWin оптимален, если проверть уже суцествующие окна.

topdown
Pentium133 © ( 2004-10-18 14:51 ) [14]


> CheckWin оптимален, если проверть уже суцествующие
окна.

Т.е при проверке несуществующего окна функция работать не будет?
Как раз-то CheckWin нужен что бы проверить существует ли окно.

//Erik1 © (18.10.04 14:48) [13]
Мы здесь вобще-то обсуждаем как определить запущенно уже окно или нет. О других exception»ах разговаривают где-то в другой ветке.

//Pentium133 ©
Он оптимален в случае унифицирования класса, при большом количестве наследований и пр. такой бодяги. Когда используется один класс, что чаще, быстрее будет просто использовать флаг активности окна.

topdown
Pentium133 © ( 2004-10-18 15:37 ) [16]


> Он оптимален в случае унифицирования класса, при
> большом количестве наследований и пр. такой бодяги.
> Когда используется один класс, что чаще, быстрее будет
> просто использовать флаг активности окна.

Может быть. У меня около десятка разных MDI-форм.
А когда используется только одна MDI-форма, причем на экране она должна быть только в одном экземпляре проще и логичнее перейти на SDI-интерфейс.

topdown
AlexG © ( 2004-10-18 15:45 ) [17]

//Pentium133 © (18.10.04 15:37) [16]
Ну смотри. Еще такой вариант может быть: какие-то конкретные окна должны быть в одном экземпляре, а другие во множественном.
Так что, думаю, мы друг друга поняли :)

topdown
Pentium133 © ( 2004-10-18 16:40 ) [18]

Считаю, без участия автора темы, дальнейшие обсуждение её бесмысленным.

topdown
Silla © ( 2004-10-18 23:39 ) [19]

А такой вариант не устроит?
if not Assigned(FrmMyChild) then
Application.CreateForm(TFrmMyChild, FrmMyChild);
FrmMyChild.Show;

Всем спасибо! Извините, что не следил за темой, неожидал такой оживленной полемики :)) Вопрос разрешился в пользу Pentium133.

topdown
Pentium133 © ( 2004-10-25 15:05 ) [21]

Источник

Delphi проверка существования формы

navbits start Форум программистов > Delphi программирование > Общие вопросы Delphi
navbits finallink ltr как определить видна ли форма?
Регистрация

Как определить видна ли форма в данный момент.

Мне просто напросто нужно

Кнопка КлиК(Отправитель типа ТОбъект)
бегин
Если форма видана зен
Скрыть форму
Елс
Показать форму
конец;

Условие Если форма видна, не знаю какое запихнуть
Какое сойство определяет видимость формы.

нашел если кому интересно это property(свойство)
Form2.Visible

Visible property
Хэлпом не умеете пользоваться?
Или просто лень посмотреть свойства формы? smile

З.Ы. И про кнопку «Правка» не забывайте, а то.

mihali4, если логически рассуждать, то это:

Полный бред вы верно подметили, что на кнопку невидимой формы не нажать, значит можно просто написать:

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • delphi приложение для android bluetooth
  • delphi при закрытии формы