Resize

6 отговора 186 прегледа
#1

Resize

Имам форма, чието съдържание се изчертава сравнително бавно. При Maximize/Restore няма проблеми, но при resize с мишката става грозно. Първо, реших да сложа таймер, който напр. 1 сек. след OnResize да пречертава формата, но не ме кефи. Та на въпроса - как мога да разбера кога процесът на Resize е завършил (потребителя е отпуснал бутона на мишката)? С OnMouseDown/Up не става (трябва курсора да е във формата). Мисълта ми е, че при OnResize ще сетвам някакъв флаг, който при отпускане на мишката ще се проверява и ако размера е бил променен, формата ще се пречертава. Но не знам как да прехвана мишката в процес на resize на формата. Някакви идеи?

Отговор
в отговор на M #2

Re: Resize

Защо не забраниш Resize-а на формата ако е толкова трудоемко прерисуването?

Не всичко което виси е Windows, но той най-често го прави
Отговор
в отговор на Пaпaraлa Йoprи #3

Re: Resize

hmm, az dokolkoto znam kogato ima nujda ot preresuvane Windowsa pra6ta wm_paint /i o6te edno za backgorunda no tova ti var6i rabota/ na prozoreca.
Taka 4e prosto si sloji koda za resuvane v OnPaint na formata. Ako po-pro4ete6 malko 6te razbere6 4e daje nqma smisal da izrisuva6 cqlata forma pove4eto pati.
Pogledni Form1.Canvas.ClipRectangle //ili ne6to takova :)

Отговор
в отговор на mf2hd #4

Re: Resize

Първото решение е от типа "има програма - има проблем; няма програма - няма проблем" и не ме устройва.

А за второрто - въпроса е принципен. В случая формата е пълна с панели, скролбоксове и много други контроли и не се извършва рисуване в прекия смисъл. Така, че и то не помага ...

Отговор
в отговор на M #5

Re: Resize

1.Не оставяй Windows да ти ресайзва компонентите (като ползваш Align...) ами ръчно в OnResize ще трябва да пишеш за всеки поотделно така ще стане с 60% по-бързо.
2.Използвай в TForm1.OnCreate - Form1.doublebuffered:=true;

Отговор
в отговор на M #6

Re: Resize

Ами приложението, върху което работя, като му се рисайзва формата се ресайзва в уиндоус 95 стайл (със ректангъл, принципно не виждаш съдържанието на този ректангъл, ако се сещаш; само че тази част не съм я писал аз и идея нямам как става, ще го погледна като се прибера, ако такова нещо те устройва де, а може и да не съм разбрал правилно.)

Отговор
в отговор на z_free #7

Re: Resize

twa ne se li komandwa ot nastrojkite na windowsa? i loshoto e che toj dori po wreme na resize prashta wm_paint maj

------------------------------
I got a COMPILER, and I'm not afraid to use it!
Отговор