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

Вниз

Minimize / Restore главного окна   Найти похожие ветки 

 
Don ©   (2006-11-22 13:18) [0]


Applet := NewApplet("MyApplet");
MainForm := NewForm(Applet, "Main Form");
Run(Applet);

При создании такого приложения, Applet и главная форма имеют разные Handle. При сворачивании анимация идет с левого верхнего угла (не важно где находится главная форма). Ну эту проблему легко решить, поместив Applet в позицию главной формы. Но, если главное окно равернуть, а потом свернуть, то при восстановлении главное окно принимает нормальное состояние (а не развернутое). Хотелось бы узнать, так и подразумевалось, или просто не сделали. И есть у кого-нибудь простое решение.


 
homm ©   (2006-11-22 14:38) [1]

> И есть у кого-нибудь простое решение.

Есть :) Сам я аплетами не сильно пользовался, но вопрос слышал недонократно,и вроде видел его в FAQ.


 
Don ©   (2006-11-22 16:05) [2]

Мда... с минимизацией протупил. Читать больше надо.
Но вот по второму вопросу ответа не нашел.


 
Galkov ©   (2006-11-22 17:41) [3]

Понял так: Maimize -> Minimize -> Restore
Так вот - не подтверждается, все нормально. У меня, как в FAQ-е, прицеплен обработчик onMessage на главную форму:
  Result := false
  case Msg.message of
    WM_MOVE,WM_SIZE:
      Applet.BoundsRect := Control.BoundsRect;
  ....


 
Don ©   (2006-11-23 08:56) [4]

Может неправильно поняли. Когда разворачиваешь главное окно на весь экран (Maximize), потом сворачиваешь, а когда восстанавливаешь, то форма вместо состояния Maximize (как она была при сворачивании) принимает состояние Normal. Причем если создаешь Applet как форму, то все в порядке.

Applet := NewForm(nil, "Main Form");
Run(Applet);

сравните два кода и увидите что я имею ввиду.


 
Galkov ©   (2006-11-23 09:22) [5]

Don, давайте абсолютно конкретно!

Вот код:

Program test;
uses  windows,messages,kol;

type TMainForm=object
 Control:PControl;
 function _OnMes(var Msg: tagMSG; var Rslt: Integer ): Boolean;
end;

function TMainForm._OnMes;
begin
 Result := False;
 if (Msg.message = WM_MOVE) or (Msg.message = WM_SIZE) then
   Applet.BoundsRect := Control.BoundsRect;
end;

var MainForm:TMainForm;

begin
 Applet := NewApplet("Хи-Хи-Хи");
 with MainForm do begin
   Control := NewForm(Applet,"Test");
   Control.onMessage := _OnMes;
 end;
 Run(Applet);
end.


Запускаю - НЕ ПОДТВЕРЖДАЕТСЯ


 
Don ©   (2006-11-23 09:47) [6]

Что не подтверждается? Я написал тоже самое - ПОДТВЕРЖДАЕТСЯ.
Если ты имеешь ввиду анимацию сворачивания Applet-а из верхнего угла, то да, и я уже писал, что виноват, не прочитал FAQ.
Меня интересует второй вопрос, попробуй провести операции:
Form.Maximize;
Form.Minimize;
Form.RestoreFromMinimize;
что получилось? форма приняла нормальные размеры и потеряла флаг WS_MAXIMIZE


 
Don ©   (2006-11-23 11:07) [7]

Мало того, при отлове события Applet.OnRestore у формы значение WindowState = wsMaximized. Но она не Maximized.


 
Galkov ©   (2006-11-23 12:24) [8]

> Меня интересует второй вопрос, попробуй провести операции:
>
> Form.Maximize;
> Form.Minimize;
> Form.RestoreFromMinimize;


Попробовать и сказать чего получается не представляется возможным.
У TControl нет таких методов: Maximize, Minimize, RestoreFromMinimize - как мне показалось.
Вобщем - нет такой буквы в этом слове!!!

Don, говорить всякие слова можно еще неделю, и бестолку.
Вы кода не даете - хорошо.
Измените в предложеном как Вам нравится, и скажите чего нажать.
Сразу у разговора возникнут результаты: либо Вы поймете чего делали не так, либо вскроется возможная бага.


 
Don ©   (2006-11-23 12:42) [9]

Возьмем ваш код (ничего менять не надо).
Запускаем, нажимаем кнопки на форме Maximize, потом Minimize. Затем нажимаем на проект в системной панели (чтобы восстановить проект). Все. Форма имеет нормальный размер, вместо maximized.


 
Galkov ©   (2006-11-23 12:53) [10]


> Все. Форма имеет нормальный размер, вместо maximized

Неправда.
Форма имеет размер maximized, а не нормальный


 
_gandalf_   (2006-11-23 13:42) [11]

а может для начала договоримся какие версии KOLnMCK (номер, асм/pas) и винды?


 
Galkov ©   (2006-11-23 13:51) [12]

KOL-1.93, asm, XP-home (старше sp2 но как точно называется - не скажу, навороченная какая-то, год назад буку брал)
компилировал - не поверите D4 из command Line :)))


 
[e]Bu$ter ©   (2006-11-23 14:43) [13]


> KOL-1.93

Этим всё объясняется. :)))


 
Galkov ©   (2006-11-23 19:31) [14]

Ну может быть...
Хотя для версии с SVN результат Restore правильного размера. Из постов Don у меня сложилось впечатление, что размер-то максимальный, а состояние кнопы - Normal :)

А с другой стороны, "все" - это когда понятен фиксинг...


 
Vladimir Kladov   (2006-11-23 21:17) [15]

Проблемы с восстановлением появились при переходе 2.10->2.11, я уже нашел, и код исправил. В обновлении будет. Опять надо помогать мальчику математику делать, вспоминать шумерскую систему исчисления. Так что обновление будет завтра.


 
Galkov ©   (2006-11-23 21:25) [16]

Ну не знаю как на матфаке, а физикам "шумерскую систему исчисления" не давали :)))


 
Don ©   (2006-11-24 08:39) [17]

Спасибо за исправления и за то, что помогли разобраться.



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

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

Наверх




Память: 0.48 MB
Время: 0.007 c
3-1175522158
Arsenija
2007-04-02 17:55
2007.07.01
SQL запрос на поиск ну очень большого числа значений.


3-1175168174
Neo Trinitron
2007-03-29 15:36
2007.07.01
Вставка данных с помощью Stored Procedure


2-1181492545
GoRdon_2007
2007-06-10 20:22
2007.07.01
Как показать форму, а код выполнять дальше?


3-1173871750
Xmen
2007-03-14 14:29
2007.07.01
Blob поля в MySQLe


2-1181379657
newones
2007-06-09 13:00
2007.07.01
Вопрос про проекцию





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский