Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2009, 01:49   #11
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Народ ну подскажет кто то ?
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 16.08.2009, 01:55   #12
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

Да вроде бы одинаковые.
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 17.08.2009, 09:13   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
И какая разница тогда, использовать компонент ApplicationEvents или писать как в первом способе?
Во-первых ApplicationEvents невизуальный.
Во-вторых ApplicationEvents предоставляет возможность определить код отработки всех сообщений в одной процедуре.
Я лично предпочитаю первый вариант так как там могу четко разграничить действия и указать для конкретного сообщения конкретные параметры
Например:

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TButton=class(StdCtrls.TButton)
   procedure mm(var m:TWMMouseMove); message WM_MouseMove;
  end;
  TForm1 = class(TForm)
    Button1: TButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TButton }

procedure TButton.mm(var m: TWMMouseMove);
begin
 form1.Caption:=inttostr(m.XPos)+' '+inttostr(m.YPos);
end;

end.
Обрати внимание - для обработки сообщений делфи имеет соответствующие им структуры, так что и выдирать из WPAram и LParam не придется. ТАк что рекомендую первый вариант
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.08.2009, 18:45   #14
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

Разница в том что ApplicationEvents.onMessage получает сообщения от всех окон в приложении.
А обработка обработчик сообщений визуальных компонентов получает конкретное сообщение конкретного окна (окон одного класса).
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума Ответить с цитированием
Старый 17.08.2009, 23:08   #15
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Stilet, 0nni спасибо за пояснения.
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отследить нажатие кнопки со стрелкой для раскрытия поля со списком Bezdar Microsoft Office Excel 4 16.03.2010 12:47
Действие для кнопки segail Microsoft Office Excel 7 25.07.2009 19:04
Код для кнопки ruavia3 Microsoft Office Excel 31 03.06.2009 09:15
как создать процедуру для кнопки которая еще не создана? DeepPurple Общие вопросы Delphi 10 21.05.2009 13:50
Delphi. Код для кнопки. Xeon332 Помощь студентам 6 20.09.2008 07:03