Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.01;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2007.07.01;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.02 c
2-1181127648
jaanis
2007-06-06 15:00
2007.07.01
Определить какая .exe открыла порт


6-1165378908
Signate
2006-12-06 07:21
2007.07.01
Сокеты. Дождаться завершения send?


2-1181313980
novice
2007-06-08 18:46
2007.07.01
получение динамического массива из функции(процедуры)


15-1180577892
Slider007
2007-05-31 06:18
2007.07.01
С днем рождения ! 31 мая


15-1180536054
visor2580
2007-05-30 18:40
2007.07.01
А где вообще скачать Delphi?