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

Вниз

Vista Aero   Найти похожие ветки 

 
ElectriC ©   (2007-07-20 20:25) [0]

Почему стиль Vist"ы Aero добавляет к высоте и ширине формы + 8 пикселей(на VCL такое не наблюдается).
P.S. Очень раздражает(((
P.S. Что-то с KOL?!


 
Дмитрий К ©   (2007-07-20 20:32) [1]

У меня не добавляет.


 
ElectriC ©   (2007-07-20 21:37) [2]

По-началу всё нормально! Но стоит добавить пару Buttons, Edit и всё.


 
Дмитрий К ©   (2007-07-20 21:49) [3]

Это как-то визуально определяется?
А то я добавил пару Buttons, Edit и никаких +8 не вижу.


 
ElectriC ©   (2007-07-20 23:36) [4]

Когда CanResize := True, тогда и добавляется + 8 пикселей к ширине и высоте формы.
P.S. Это видно в "run time"!!!


 
ElectriC ©   (2007-07-21 00:00) [5]

Сорри за ошибку: Когда CanResize := False!!!


 
Дмитрий К ©   (2007-07-21 00:25) [6]

Хм. Есть такое. Причем чисто визуально - справа и снизу добавляется некоторое количество пикселей, а Width и Height дают те же значения, что и в дизайнере, но форма реально больше.


 
Дмитрий К ©   (2007-07-21 01:28) [7]

Судя по косвенным данным с MSDN это баг Висты связанный с WS_THICKFRAME


 
ElectriC ©   (2007-07-21 03:08) [8]

Ну вот. Есть варианты, как исправить?
P.S. Или никак?


 
ElectriC ©   (2007-07-21 03:10) [9]


> это баг Висты

Скорее всего Aero, т.к. классический, стандартный стили работают нормально!


 
Дмитрий К ©   (2007-07-21 11:45) [10]

По-моему, это нормальное поведение. Поскольку граница окна меняется с "жирной" на тонкую. Проявляется при любых оформлениях и в w98 тоже.


 
ElectriC ©   (2007-07-21 15:22) [11]

В "run time" чтобы + 8 пикселей добавлялось - это не слишком нормально, хотя...
P.S. Но с  остальными стилями нормально.


 
ElectriC ©   (2007-07-21 15:24) [12]

С VCL же такого не наблюдается.


 
Дмитрий К ©   (2007-07-21 15:43) [13]


> С VCL же такого не наблюдается.

Если в рантайм менять, то наблюдается.


 
Yury Sidorov   (2007-07-23 03:36) [14]

Вот патч, который это фиксит:
--- C:/TEMP/MIRROR.PAS-rev106.svn000.tmp.PAS Mon Jul 23 02:32:52 2007
+++ C:/TEMP/MIRROR.PAS-rev107.svn000.tmp.PAS Mon Jul 23 02:33:08 2007
@@ -12282,7 +12282,6 @@
end;

function TKOLForm.GenerateTransparentInits: String;
-var MainMenuHeight: Integer;
begin
  asm
    jmp @@e_signature
@@ -12324,30 +12323,7 @@
                  IntToStr( Bounds.Height ) + " )"
        else
          Result := Result + ".SetSize( " + IntToStr( Bounds.Width ) + ", " +
-                  IntToStr( Bounds.Height-GetSystemMetrics(SM_CYCAPTION) ) + " )"
-      else
-        if HasCaption then
-        begin
-          if HasMainMenu then
-          begin
-            MainMenuHeight := GetSystemMetrics( SM_CYMENU );
-            Result := Result + "{MainMenuHeight=" + IntToStr( MainMenuHeight ) + "}";
-          end
-          else
-          begin
-            MainMenuHeight := 0;
-            Result := Result + "{No MainMenu!}";
-          end;
-          if HasBorder then
-          Result := Result + ".SetClientSize( " + IntToStr( (Owner as TForm).ClientWidth ) +
-                 ", " + IntToStr( (Owner as TForm).ClientHeight + MainMenuHeight ) + " )";
-        end
-        //+++++++ UaFM
-        else
-          if HasBorder then
-          Result := Result + ".SetClientSize( " + IntToStr( (Owner as TForm).ClientWidth ) +
-                 ", " + IntToStr( (Owner as TForm).ClientHeight-GetSystemMetrics(SM_CYCAPTION) )
-                 + ")"
+                  IntToStr( Bounds.Height-GetSystemMetrics(SM_CYCAPTION) ) + " )";
    end;

    //Log( "#3 TKOLForm.GenerateTransparentInits" );
@@ -13581,6 +13557,7 @@
      "wsMinimized", "wsMaximized" );
var I: Integer;
    S: string; {YS}
+    MainMenuHeight: Integer;
begin
  asm
    jmp @@e_signature
@@ -13671,10 +13648,31 @@
  end;

  //Log( "&7 TKOLForm.SetupFirst" );
+  if not CanResize then
+    S := S + " and not WS_THICKFRAME";

  if S <> "" then
    SL.Add( Prefix + AName + ".Style := " + AName + ".Style" + S + ";" );

+  if not DefaultSize then
+  begin
+    if HasCaption then
+    begin
+      if HasMainMenu then
+        MainMenuHeight := GetSystemMetrics( SM_CYMENU )
+      else
+        MainMenuHeight := 0;
+      if HasBorder then
+       SL.Add( Prefix + AName + ".SetClientSize( " + IntToStr( (Owner as TForm).ClientWidth ) +
+             ", " + IntToStr( (Owner as TForm).ClientHeight + MainMenuHeight ) + " );" );
+    end
+    //+++++++ UaFM
+    else
+      if HasBorder then
+        SL.Add( Prefix + AName +  ".SetClientSize( " + IntToStr( (Owner as TForm).ClientWidth ) +
+             ", " + IntToStr( (Owner as TForm).ClientHeight-GetSystemMetrics(SM_CYCAPTION) )
+             + ");" );
+  end;
  //Log( "&8 TKOLForm.SetupFirst" );

{YS}


 
ElectriC ©   (2007-07-23 13:53) [15]


> Yury Sidorov

Спасибо.
P.S. [Пошёл проверять...]


 
ElectriC ©   (2007-07-24 04:40) [16]

Чёт не въезжаю, как обновить модуль mirror.pas с помощью Updater.
Можете объяснить, как обновить модуль.


 
Дмитрий К ©   (2007-07-24 12:49) [17]


> Можете объяснить, как обновить модуль.

Вручную удалить строки с минусами, добавить с плюсами. Не забыть сохранить исходный.
У меня работает.


 
ElectriC ©   (2007-07-24 16:09) [18]

Так SL, Prefix, AName переменных нет в функции. Куда их довавлять?
P.S. в var или function TKOLForm.GenerateTransparentInits (SL : TStringList;
Prefix, AName : String): String; ?


 
ElectriC ©   (2007-07-24 16:10) [19]


> довавлять

добавлять


 
Yury Sidorov   (2007-07-24 16:44) [20]

Код добавляется удаляется из TKOLForm.GenerateTransparentInits, а добавляется в TKOLForm.SetupFirst.
Все что нужно удалить/добавить описано в патч файле. От себя добавлять ничего не нужно.


 
ElectriC ©   (2007-07-24 17:08) [21]

Всё разобрался.


 
Andrey_rus ©   (2007-07-31 16:41) [22]

А в какой нибудь версии KOL закрепили этот патч?


 
Дмитрий К ©   (2007-07-31 16:47) [23]


> А в какой нибудь версии KOL закрепили этот патч?

2.75

> [-] Изменения в MCK для исправления бага темы Vista Aero
> с добавлением 8 пикселей справа и снизу окна со стилем границы
> thick (если он устанавливается во время выполнения, уже
> после создания окна). Для KOL, такая граница используется
> в формах с CanResize=false. Примечание: Исправляются только
> формы, с CanResize=false изначально, а не те, для которых
> этот флаг устанавливается в run-time. Автор: Юрий Сидоров.
>  


 
Andrey_rus ©   (2007-07-31 17:35) [24]

disign-time
 CanResize:= true;
run-time
 CanResize:= false;


И проблемы нет даже в 2.63


 
Vladimir Kladov   (2007-08-03 09:35) [25]

У вас форма не содержит контролов, которые потребовали бы создания дескриптора (а следовательно дескриптора окна формы и дочерних к нему) до присваивания CanClose := false.



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

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

Наверх





Память: 0.51 MB
Время: 0.007 c
2-1203332964
Washington
2008-02-18 14:09
2008.03.16
Unit Variants


9-1168345585
HPR
2007-01-09 15:26
2008.03.16
[порка] Rhоmbis


15-1202114841
Tornado
2008-02-04 11:47
2008.03.16
Выбор видеокамеры


11-1186120923
Alexey_k
2007-08-03 10:02
2008.03.16
Нужен файл KOL_unicode.inc


3-1193148576
Torin
2007-10-23 18:09
2008.03.16
Глюк DBE при обращению к полю типа DATETIME YEAR TO FRACTION(3)





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