Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как отобразить окно? 
:(
    Опции темы
IamDreamer
Дата 31.3.2006, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Пытаюсь сделать простой файловый менеджер, но уже полно проблем. Например, есть кнопка "Создать папку", при ее нажатии всплывает Panel, на которой размещены Label и Edit для ввода имени папки. Только у меня она все время находится на форме, т.е. когда не нажата кнопка, Panel просто спрятана на форме Hide'ом, а во время вызова она Show. Как сделать так, чтобы она как-то загружалась что ли?
PM MAIL WWW Jabber   Вверх
Matematik
Дата 31.3.2006, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



У нее есть свойство Visible.
Или можно использовать процедуры SendToBack и BringToFront
PM MAIL WWW ICQ   Вверх
IamDreamer
Дата 31.3.2006, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Цитата(Matematik @ 31.3.2006, 20:11 Найти цитируемый пост)
У нее есть свойство Visible.

А это разве не получится то же самое, что делаю я?
Цитата(Matematik @ 31.3.2006, 20:11 Найти цитируемый пост)
Или можно использовать процедуры SendToBack и BringToFront

Это я так понимаю SendToBack - спрятать за что-то, BringToFront - наоборот. А хотелось бы, чтоб по сути без надобности Panel'и вообще не было на форме.

PM MAIL WWW Jabber   Вверх
Guedda
Дата 31.3.2006, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Значит так. Заходишь в меню Project->Options, выбираешь вкладку Forms, и переносишь форму, которая должна выскакивать из Auto-create forms в Available forms.
После этого в кнопке пишешь следующее:
Код

procedure TForm1.Button1Click(Sender : TObject);
begin
  MyNewForm := TMyNewForm.Create(Form1);
  MyNewForm.Show;
end;

а в процедуре TMyNewForm.Close прописываешь:
Код

procedure TMyNewForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree; //это для того, чтоб форма из памяти высвобождалась.
end;

Это уменьшит нагрузку на память, да и быстродействие увеличится.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Sunvas
Дата 1.4.2006, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Guedda, но ведь IamDreamer желает, чтобы это была панель.


Цитата(IamDreamer @ 31.3.2006, 20:17 Найти цитируемый пост)
А хотелось бы, чтоб по сути без надобности Panel'и вообще не было на форме.

Ну так создай ее в run-time
Код

var p:tpanel;
{..............}
p:=tpanel.Create(form1);
p.Parent:=form1;


Потома так же можна создать едит:
Код

var e:edit;
{..............}
e:=tedit.Create(form1);
e.Parent:=p;


Ну и так создаешь лайбел, кнопку и еще че там тебе нужно.
Потом присваиваешь действия:
Код

//Описываем процедуру
procedure pclick(sender:tobject);
{.............}
//Прописываем процедуру
procedure tform1.pclick(sender:tobject);
begin
showmessage('Текст');
end;
{.........}
//Присваиваем процедуру
p.OnClick:=pclick;



--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Guedda
Дата 1.4.2006, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Дык можено еще на ту форму, которая появляется кинуть панель и эдит, написать код, который я писал раньше. Но только у той формы поставить
Код

MyNewForm.BorderStyle :=bsNone;

Из этого следует, что выше написаный код можно изменить так:
Код

procedure TForm1.Button1Click(Sender : TObject);
begin
  MyNewForm := TMyNewForm.Create(Form1);
  MyNewForm.BorderStyle := bsNone;
  MyNewForm.Show;
end;



--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
former
Дата 1.4.2006, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



Можно грузить её из DLL.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Guedda
Дата 1.4.2006, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Цитата(former @ 1.4.2006, 11:24 Найти цитируемый пост)
Можно грузить её из DLL.

Зачем?
Ведь и так программа не сильно увеличится. Я так понимаю, что человек хочет при появлении этой формы чтобы не появлялась кнопка на TaskBar. А при загрузке из длл, получится эта кнопка, так что лучше всего не пользоваться dll.



--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
IamDreamer
Дата 1.4.2006, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Guedda, Panel или то, что должно всплывать, надо перекинуть на другую форму и потом
Цитата(Guedda @ 31.3.2006, 22:11 Найти цитируемый пост)
Заходишь в меню Project->Options, выбираешь вкладку Forms, и переносишь форму, которая должна выскакивать из Auto-create forms в Available forms.

или как?

PM MAIL WWW Jabber   Вверх
Guedda
Дата 1.4.2006, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Да. именно так.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
IamDreamer
Дата 1.4.2006, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Код

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  NewForm:= TNewForm.Create(Form1);
  NewForm.Show;
end;


Form2 переименовал (не caption) NewForm, но при F9, выдает "undeclared indentifier: TNewForm". В переменных в роде написал:
Код

var
  Form1, NewForm: TForm1;

Не пойму в чем проблема.

PM MAIL WWW Jabber   Вверх
Foley
Дата 1.4.2006, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

Репутация: 2
Всего: 7



а подключить форму не забыл?
PM MAIL ICQ   Вверх
Guedda
Дата 2.4.2006, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Нужно в uses той формы, из которой ты вызываешь форму с панелью прописать модуль формы с панелью.
Либо нажать:
File->Use Unit (нажать Alt+F11) и выбрать юнит формы с панелью.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
IamDreamer
Дата 2.4.2006, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Спасибо всем за помощь.

Это сообщение отредактировал(а) IamDreamer - 2.4.2006, 13:15
PM MAIL WWW Jabber   Вверх
IamDreamer
Дата 7.4.2006, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Вот и опять ошибки выдает. В строке
Код

procedure TNewForm.FormClose(Sender: TObject; var Action: TCloseAction);

" ';' expected, but '.' found".
" ';' expected, but ')' found".
PM MAIL WWW Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0702 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.