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

Вниз

изменение формы   Найти похожие ветки 

 
LuLu ©   (2003-08-18 14:04) [0]

Как сделать так чтоб при изменении формы все процедуры не пересчитывались?


 
KSergey ©   (2003-08-18 14:09) [1]

А какие процедуры при этом пересчитываются?!
И что значит "изменение формы"?


 
Семен Сорокин ©   (2003-08-18 14:11) [2]

var
NoRecalculateProcedure : boolean;

procedure TForm1.OnChange(Sender: TObject);
begin
NoRecalculateProcedure := true;
end;


 
Digitman ©   (2003-08-18 14:11) [3]

что есть

> изменение формы


?

и какие такие процедуры "пересчитываются" ? Может все же - вызываются ? а не пересчитываются ?


 
LuLu ©   (2003-08-18 14:16) [4]

procedure Tfrmgl.formpaint(Sender: TObject); к примеру..
изменеие: это растягивание при запуске программы...у меня все на рендоме и надо чтоб она реагировала только на кнопки...а у меня все мигает, когда растягивать начинаю...


 
Семен Сорокин ©   (2003-08-18 14:22) [5]

2LuLu ©
значит на время растягивания убирай обработку отрисовки, но неясно зачем это, отрисовка на то и нужна, что бы переривсовать элементы на форме.
ЗЫ. Вопрос поставлен ужасно, первое впечатление - в орешник :)


 
LuLu ©   (2003-08-18 14:23) [6]

В events нет такого обработчика, а в type он указывает на ошибку
перед скобкой...требуя =


 
LuLu ©   (2003-08-18 14:25) [7]

Семен Сорокин © как это? сделать как убрать?


 
Digitman ©   (2003-08-18 14:25) [8]

а что там такого сложного ты творишь в теле этого обработчика ?


 
Skier ©   (2003-08-18 14:25) [9]

>LuLu © (18.08.03 14:23) [6]
Перекрой процедуру окна и извращайся...


 
Семен Сорокин ©   (2003-08-18 14:28) [10]

type
TForm1 = class(TForm)
...
private
procedure WMSize(var Msg: TMessage); message WM_SIZE;
...
public
..
end;

procedure TForm1.WMSize(var Msg: TMessage);
var
_pnt: TNotifyEvent;
begin
_pnt := OnPaint;
OnPaint := nil;
try
inherited
finally
OnPaint := _pnt
end
end;


 
LuLu ©   (2003-08-18 14:31) [11]

Digitman © ничего просто примитивы рисую..я пока тыкаюсь разбираюсь и учусь..
Семен Сорокин © спасибо! сейчас попробую..


 
LuLu ©   (2003-08-18 14:39) [12]

Семен Сорокин, нет картинка все равно мигает и при этом страшно тормозит..WMSize это что за процедура..опиши пожалуйста а то мне в хелпе переводить не охото...:))


 
NAlexey ©   (2003-08-18 14:45) [13]

>Семен СорокинThe
WM_SIZE message is sent to a window after its size has changed.
Т.е после изменения размеров. А вот
WM_SIZING message is sent to a window that the user is resizing
Собственно непосредственно в сам момент изменения.
Но всеравно берут меня сомнения что с помощью этих сообщений можно решить задачку.


 
NAlexey ©   (2003-08-18 15:13) [14]

>LuLu
Если у тебя все еще "картинка все равно мигает и при этом страшно тормозит.." Поставь Form1.DoubleBuffered := True; В обработчике создания формы. Посмотри, изменит это что?


 
Семен Сорокин ©   (2003-08-18 15:20) [15]

2 NAlexey
согласен
2 LuLu
тогда просто сохраняй ширину и высоту формы в переменные в конце отрисовки, если они не равны - то не делай отрисовку.
TForm1 = class(TForm);
procedure OnCreate(Sender: TObject);
procedure OnPaint(Sender: TObject);
private
FOldWidth, FOldHeight: integer;
procedure Paint;
public
end;

procedure TForm1.OnCreate(Sender: TObject);
begin
FOldWidth := -1;
FOldHeight:= -1;
Paint
end;

procedure TForm1.OnPaint(Sender: TObject);
begin
if (Width = FOldWidth) and (Height = FOldHeight) then
Paint
end;

procedure Tform1.Paint;
begin
....
FOldWidth := Width;
FOldHeight := Height
end;

:))



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

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

Наверх




Память: 0.5 MB
Время: 0.038 c
1-1489
UserName
2003-08-18 11:41
2003.09.01
Изменение цветового оформления формы.


14-1630
Е-Моё имя
2003-08-13 09:52
2003.09.01
маразм крепчал


14-1605
Дмитрий Терёхин
2003-08-13 18:41
2003.09.01
вопрос + работа


1-1466
MakNik
2003-08-18 10:37
2003.09.01
как запретить повторнуый запуск программы?


14-1582
Antik
2003-08-13 11:12
2003.09.01
расширения файлов