Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Вниз

Дополнительная форма   Найти похожие ветки 

 
Эдик   (2005-01-20 13:35) [0]

Подскажите пож., как создавать и показывать дополнительные формы, какой порядок? Вроди бы как тривиальный вопрос, но что-то глючит... по стандарту Delphi не получаеться.


 
ECM ©   (2005-01-20 13:57) [1]

"Стандарт Delphi" это ВКЛ?
... тогда и не должно получиться ...
Как пример используй файлы генерируемые МЦК


 
Эдик   (2005-01-20 14:16) [2]

Вот и все...
 NewForm2( Form2, Pointer( Form1.Form ) );
форма не полностью прорисовуеться...


 
SPeller ©   (2005-01-20 15:29) [3]

А показывать - в факе.


 
nicesc   (2005-01-20 15:29) [4]

Эдик
прочитай ФАК


 
nicesc   (2005-01-20 15:29) [5]

SPeller
Обогнал!!!!


 
SPeller ©   (2005-01-20 15:31) [6]

А вот то что в фак так и не добавилось по часть модальности:

   Существует так же ещё один способ вызова модальной формы, который
практически не отличается от того, который используется в VCL, и не зависит
от наличия или отсутствия в проекте отдельного объекта Applet. Для того
чтобы его задействовать, необходимо вместо функции ShowModal использовать
функцию ShowModalParented и добавить директиву условной компиляции
NEW_MODAL. В этом случае нет никакой надобности вписывать какой-либо код
управления поведением модальной формы в какие-либо обработчики. Всё сделано
автоматически. Однако вы можете пожертвовать размером программы если
используете asm-версию kol.pas. Если же вы используете pas-версию, то даже
уменьшите размер.
   Функция ShowModalParented принимает один параметр - объект
формы-родителя. Идея такой реализации была такова, что бывают случаи, когда
в программе при показе модальной формы необходимо заблокировать лишь одну
форму, в то время как остальные должны быть доступны. Именно объект такой
блокируемой формы и должен быть передан в качестве параметра. Если нет
нужды для такого поведения, то достаточно передать в этом парметре Applet.
Если же неохота постоянно писать длинноватое имя функции и передавать
параметр, то можно использовать директиву условной компиляции
USE_SHOWMODALPARENTED_ALWAYS. В этом случае функция ShowModal превратится в
вызов функции ShowModalParented с переданным в качестве параметра значением
переменной Applet.
   Так же существует директива условной компиляции USE_SETMODALRESULT,
которая призвана гарантировать сокрытие модальной формы с экрана при
назначении свойства ModalResult. Дело в том, что механизм модальности
основан на том, что после каждого пришедшего окну сообщения проверяется
значение свойства ModalResult. И если оно отлично от нуля, то окно
скрывается и управление передается стандартному обработчику очереди
сообщений. Так вот теоритически существет вероятность того, что каким-то
образом мы выставим значение ModalResult в отличное от нуля значение, а
окну не придёт при этом ниодного сообщения. Окно останется висеть. При
включении вышеуказанной директивы при присвоении ModalResult окну
отправляется пустое сообщение, которое гарантированно вызовет проверку
значения ModalResult и сокрытие модальной формы при необходимости.
   У данного способа вызова модальной формы существуют нюансы, которые
следует знать. При закрытии формы (крестиком, методом Close, присвоением
ModalResult и т.п.) вызывается обработчик OnClose, которому передается
параметр Accept, разрешающий или запрещающий закрытие формы. По умолчанию
он равен True. Если по каким-либо причинам ModalResult = 0 (запрещает
закрытие), а Accept = True (разрешает закрытие), то данное противоречие
решается тем, что форма закрывается, но ModalResult становится равным
$80000000. То же самое происходит если обработчик OnClose не назначен (т.е
Accept = True), а ModalResult при этом равен нулю.


 
SPeller ©   (2005-01-20 15:31) [7]

nicesc   (20.01.05 15:29) [5]
Обогнал!!!!

Да уж, миллиметраж :)


 
Эдик   (2005-01-20 17:10) [8]

NewForm2( Form2, Applet );
 Form2.Form.ShowModal;
 Form2.Form.Free;
в результате появляеться форма а прорисовка не происходит... белая форма, элименты можно только нащупать...


 
Эдик   (2005-01-20 17:27) [9]

Дополнение
данный эфект происходит, если на главной форме находиться компонент Memo, как только его убрать - все будет ok...
Как сие можно побороть? Я так понимаю - глюк


 
Эдик   (2005-01-20 17:36) [10]

Может чем можно Memo заменить, нужна возможность выводить сообщение с переменным колич. строк (может быть большим) и со скролингом


 
SPeller ©   (2005-01-20 20:25) [11]

InitCommonControls попробуй вписать где-нить в начале загрузки программы.



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.039 c
6-1116229023
Владимир_К
2005-05-16 11:37
2005.08.28
подключение сетевого диска


4-1121169826
Piter
2005-07-12 16:03
2005.08.28
Эмуляция нажатий клавиш


11-1106228060
Bil Bal Dur
2005-01-20 16:34
2005.08.28
InputBox или InoutQuery в KOL


3-1121852712
wild_arg
2005-07-20 13:45
2005.08.28
мульти-ДатаСет


4-1121083542
SpyBoy
2005-07-11 16:05
2005.08.28
combobox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский