Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.11.2012, 01:45
Аватар для kaktusad
kaktusad kaktusad вне форума
Прохожий
 
Регистрация: 16.11.2012
Сообщения: 18
Репутация: 10
По умолчанию XPman или "красивые кнопки"

Использовал серые тусклые компоненты Делфи 7 до того, как поставил компонент XPman, думаю все хорошо, красиво, да не тут-то было. Теперь при переходе между формами, да и просто при сворачивании и разворачивании программы, идет анимация компонентов, режущая глаз. Да еще и при запуске на менее мощных компьютерах, некоторые компоненты формы вовсе не отображаются пока не свернуть/развернуть окно ...
Подскажите пожалуйста, как убрать эти тормоза и оставить красивый дизайн компонентов в стиле версии Виндовс??? Возможно существует иной способ достижения этой цели???
Ответить с цитированием
  #2  
Старый 20.11.2012, 02:07
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

XPMan, а по сути небольшая добавка в ресурсный файл, указывающая ОС как отображать контролы тут вряд ли виновата. Скорее всего ошибка кроется где-то в коде.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 20.11.2012, 02:23
Аватар для kaktusad
kaktusad kaktusad вне форума
Прохожий
 
Регистрация: 16.11.2012
Сообщения: 18
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
XPMan, а по сути небольшая добавка в ресурсный файл, указывающая ОС как отображать контролы тут вряд ли виновата. Скорее всего ошибка кроется где-то в коде.
Программа не особо ресурсопотребительная, да и до установки XPman не было ни одного тормоза.
Возможно я установил этот компонент неправильно? Я просто нашел XPmanifest и добавил его на главную форму. Все. Форм в программе 7.
Ответить с цитированием
  #4  
Старый 20.11.2012, 03:02
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Если после удаления XPMan всё восстановится (в Win7 бывают проблемы), то записать его в ресурсный файл вручную без использования компонента.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 20.11.2012, 08:14
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Переходи на ХЕ, он там по умолчанию включен, косяков с отображением не наблюдал.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #6  
Старый 20.11.2012, 09:08
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от kaktusad
на менее мощных компьютерах
а они удовлетворяют требованиям Windows XP?
а если создать пустой проект с такими же элементами на форме и TXPManifest, только без "ручного" кода?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 20.11.2012, 21:48
Аватар для kaktusad
kaktusad kaktusad вне форума
Прохожий
 
Регистрация: 16.11.2012
Сообщения: 18
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
Если после удаления XPMan всё восстановится (в Win7 бывают проблемы), то записать его в ресурсный файл вручную без использования компонента.
Удалил сам компонент и его название с раздела Uses в юните где стоял этот компонент. Восстановился прежний вид кнопок. Можно подробней что теперь делать?

Так же, когда я удалил фоновую картинки, то лаги вроде прекратились. Использовал Timage на всю форму. Как сделать чтобы была и фоновая картинки и красивые дизайн компонентов?
Ответить с цитированием
  #8  
Старый 20.11.2012, 21:52
Аватар для kaktusad
kaktusad kaktusad вне форума
Прохожий
 
Регистрация: 16.11.2012
Сообщения: 18
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
а они удовлетворяют требованиям Windows XP?
а если создать пустой проект с такими же элементами на форме и TXPManifest, только без "ручного" кода?
на компах стоит виндовс ХР. И если создать проект с 10-20 компонентами то глюков не заметно, правда появляются немного, если на фон поставить Timage.
Ответить с цитированием
  #9  
Старый 21.11.2012, 00:34
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Зачем обязательно TImage, можно рисовать прямо на форме, можно использовать возможности ОС
Код:
...
  private
    { Private declarations }
    procedure WMEraseBkgnd(var Msg : TWMEraseBkgnd); message WM_EraseBkgnd;
...
var
  bmBkGnd	: TBitmap;
...
procedure TForm1.WMEraseBkgnd;
var 
  aRect : TRect;
begin 
  aRect := GetClientRect;
  BitBlt(TWMEraseBkGnd(Msg).DC, aRect.Left, aRect.Top, aRect.Right - aRect.Left, aRect.Bottom - aRect.Top, bmBkGnd.Canvas.Handle, 0, 0, SRCCOPY);
  Msg.Result := 1;
end;
...
procedure TMainForm.FormCreate(Sender: TObject);
begin
  bmBkGnd := TBitmap.Create;
  // грузим картинку для фона
end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
kaktusad (22.11.2012)
  #10  
Старый 21.11.2012, 09:28
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

-установи у фоновой Image свойство Visible в False
-создай обработчик события OnPaint у формы:
Код:
procedure TForm1.FormPaint(Sender: TObject);
begin
  Canvas.Draw(0, 0, Image1.Picture.Graphic);
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
kaktusad (22.11.2012)
  #11  
Старый 22.11.2012, 05:25
Аватар для kaktusad
kaktusad kaktusad вне форума
Прохожий
 
Регистрация: 16.11.2012
Сообщения: 18
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
-установи у фоновой Image свойство Visible в False
-создай обработчик события OnPaint у формы:
Код:
procedure TForm1.FormPaint(Sender: TObject);
begin
  Canvas.Draw(0, 0, Image1.Picture.Graphic);
end;
А как сделать что бы картинка растягивалась(сжималась) на всю форму, так как теперь виден только ее кусочек?
Кстати кнопки не глючат) Спасибо!)
Ответить с цитированием
  #12  
Старый 22.11.2012, 09:43
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

см.:
Код:
procedure StretchDraw(const Rect: TRect; Graphic: TGraphic);
т.е.:
Код:
procedure TForm1.FormPaint(Sender: TObject);
begin
  Canvas.StretchDraw(ClientRect, Image1.Picture.Graphic);
end;
__________________
Пишу программы за еду.
__________________

Последний раз редактировалось NumLock, 22.11.2012 в 09:45.
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
kaktusad (23.11.2012)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:07.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025