Форум: "Основная";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];
ВнизМедленная отработка сообщений от мышки ! Найти похожие ветки
← →
AlbertHakimov (2002-09-23 09:03) [0]Помогите разобраться:
рисую кнопку с помощью WinAPI, навешиваю обработчик на клик от мыши. Кнопка то нажимается, но слишком долго приходится ждать отклика.
/////////////////////////////////////////////////////////////////////////////////////
type
TForm1 = class(TForm)
private
procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
procedure WMLButtonUp(var Message: TWMLButtonUp); message WM_LBUTTONUP;
public
procedure Plot3D(rc:TRect; iArrowUp:Boolean; uFlags:Integer);
procedure TForm1.FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
uFlags : Integer;
rc:TRect;
FrcPlotU :TRect;
implementation
{$R *.DFM}
procedure TForm1.Plot3D(rc:TRect; iArrowUp:Boolean; uFlags:Integer);
begin
With Form1 do begin
DrawFrameControl(GetDC(Handle),rc,DFC_SCROLL,DFCS_SCROLLUP or uFlags);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var FtxtHeight :Integer;
begin
uFlags:=0;
FtxtHeight := canvas.TextHeight("A");
with Form1 do begin
FrcPlotU:= Rect(Width-40,top+FtxtHeight+8,Width-22,top+FTxtHeight+24);
end;
Plot3D(FrcPlotU,iArrowUp,uFlags);
end;
procedure TForm1.WMLButtonUp(var Message: TWMLButtonUp);
begin
Inherited;
if PtInRect(FrcPlotU,Point(Message.XPos,Message.YPos)) then
Plot3d(FrcPlotU,TRUE,0)
end;
procedure TForm1.WMLButtonDown(var Message: TWMLButtonDown);
begin
Inherited;
if PtInRect(FrcPlotU,Point(Message.XPos,Message.YPos)) then
Plot3d(FrcPlotU,TRUE,DFCS_PUSHED)
end;
P.S. Не помагает даже закомментирование Inherited, чтобы удалить все последующие обработчики.
← →
Johnny (2002-09-23 10:02) [1]Собственно где кнопка то рисуется? DFC_SCROLL это не кнопка. И рисовать надо в OnPaint.
← →
AlbertHakimov (2002-09-23 10:56) [2]Собственно DrawFrameControl позволяет нарисовать и кнопку, именно нарисовать, а DFC_SCROLL - ну просто нужно было кнопка + стрелочка (указатель направления) вот я и решил использовать DFC_SCROLL вместо DFC_BOTTON.
Суть то не в том что я рисую, а почему так медленно происходит отработка события?
← →
boa (2002-09-23 12:14) [3]Наверное потому, что сначала обрабатывается inherited а потом только рисуется кнопка.
← →
Alex4444444444 (2002-09-23 12:16) [4]Ya delayu to zhe samoe, no u menya knopka inherits from
TGraphicControl i risovanie idet v OnPaint. Vse rabotaet prekrasno. Edinstvennoe zamechanie: ya ispol"zuyu DFC_SCROLL
dlya togo, chtoby narisovat" knopku vnutri TEdit. U nee
nemnogo drugoe rebro, kak raz dlya TEdit.
← →
boa (2002-09-23 12:21) [5]Пошу прощения, не рпочитал P.S.
Попробуй Message.Result := 1;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c