Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 1207
от 16.10.2008, 19:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 390, Экспертов: 43
В номере:Вопросов: 2, Ответов: 6

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 146770: Какие функции преобразования типов есть в Delphi 7 (например StrToInt)?...
Вопрос № 146783: Здравствуйте, уважаемые мастера. Из главной формы (Form1) по меню вызывается форма Form2: procedure TForm1.N21Click(Sender: TObject); begin if Application.FindComponent('Form2') <> nil then with Application.Find...

Вопрос № 146.770
Какие функции преобразования типов есть в Delphi 7 (например StrToInt)?
Отправлен: 10.10.2008, 23:56
Вопрос задал: Макаров Владимир Васильевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Edwardmm
Здравствуйте, Макаров Владимир Васильевич!
Функция полно, если пишете не в блокноте то можно нажать клавиши Ctrl+пробел и начать набирать
Str ,Float , int ... и вам покажут возможные вариации.
(StrToIntDef() FloatToStr() StrToFloat() ...)
Ответ отправил: Edwardmm (статус: 1-ый класс)
Ответ отправлен: 11.10.2008, 10:16
Оценка за ответ: 5

Отвечает: Шичко Игорь
Здравствуйте, Макаров Владимир Васильевич!
Основной перечень функций для преобразования типов можно посмотреть здесь:
http://ftf.grsu.by/UchProc/konspekt/delphi/ch05
или в более компактном виде:
http://na-start.narod.ru/material/delphi02.htm
Ответ отправил: Шичко Игорь (статус: 9-ый класс)
Ответ отправлен: 12.10.2008, 14:02
Оценка за ответ: 5


Вопрос № 146.783
Здравствуйте, уважаемые мастера.
Из главной формы (Form1) по меню вызывается форма Form2:

procedure TForm1.N21Click(Sender: TObject);
begin
if Application.FindComponent('Form2') <> nil then
with Application.FindComponent('Form2') as TForm2 do
Show
else
with TForm2.Create(Application) do
Show;
end;

После закрытия Form2 срабатывает событие активизации Form1,
в котором идет попытка удалить Form2:

procedure TForm1.FormActivate(Sender: TObject);
begin
if Application.FindComponent('Form2') <> nil then
with Application.FindComponent('Form2') as TForm2 do Form2.Free;
end;

Но при повторном вызове Form2 эта форма не создается вновь, а открывается
как будто удаления ее не было. А нужно, чтобы она вновь создавалась.
Где я не прав?

Отправлен: 11.10.2008, 09:16
Вопрос задал: Кравцов Юрий Владимирович (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Edwardmm
Здравствуйте, Кравцов Юрий Владимирович!
При уничтожении формы нужно обнулить ещё указатель.
а если форма при закрытии должна всгда уничтожатся то можно у второй формы в событии ОнКлоузе написать Action:=caFree и всё

Ответ отправил: Edwardmm (статус: 1-ый класс)
Ответ отправлен: 11.10.2008, 10:10
Оценка за ответ: 5

Отвечает: Bochvarov NikB
Здравствуйте, Кравцов Юрий Владимирович!
Самое простое решение

Приложение:

Ответ отправил: Bochvarov NikB (статус: 10-ый класс)
Ответ отправлен: 11.10.2008, 10:57
Оценка за ответ: 4

Отвечает: Виктор Пырлик
Здравствуйте, Кравцов Юрий Владимирович!

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

Во вторых, не надо так сложно, вот пример:

procedure TForm1.N21Click(Sender: Tobject);
var frm:TForm2;
begin
frm := Tform2.Create;
frm.ShowModal;
end;


{если надо узнать что нажал пользватель — Ok или Cancel}
procedure TForm1.N21Click(Sender: Tobject);
var frm:TForm2;
begin
frm := Tform2.Create;
if(frm.ModalResult = mrOk) then
begin
// что-то делаем
end;
end;


Во втором случае, кнопкам закрытия надо определить свойство ModalResult, или, программно это отслеживать, т.е. При нажатии кнопки, вместо Close постав ть ModalResult := mrOk (или иное значение, которое надо)

В вашем случае, форма создана еще на стадии запуска приложения, и её можно вызвать просто Form2.ShowModal — понятно, что в этом случае она постоянно «висит» в памяти.

---------
не получается там - где не пробуют
Ответ отправил: Виктор Пырлик (статус: Профессионал)
Россия, Екатеринбург
Тел.: 89043822027
ICQ: 490191733
----
Ответ отправлен: 11.10.2008, 11:31
Оценка за ответ: 3

Отвечает: Genia007
Здравствуйте, Кравцов Юрий Владимирович!

Попробуйте использовать следующий код:

procedure TForm1.N21Click(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:= caFree; // Действие освобождения ресурсов программы
end;

У себя в программах я использую именно этот код,
в свойствах проекта нужно установить, чтобы TForm2 автоматически не создавалась
и всё.
Ответ отправил: Genia007 (статус: 8-ой класс)
Ответ отправлен: 11.10.2008, 21:57


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.6 от 14.10.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru
RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

В избранное