Здравствуйте, Суслик, Вы писали:
С>Есть код.
С>С>unit Unit3;
С>interface
С>uses
С> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
С> Dialogs, Grids, StdCtrls, ExtCtrls;
С>type
С> TForm3 = class(TForm)
С> Memo1: TMemo;
С> Edit1: TEdit;
С> Edit2: TEdit;
С> procedure Edit1Exit(Sender: TObject);
С> procedure Edit2MouseDown(Sender: TObject; Button: TMouseButton;
С> Shift: TShiftState; X, Y: Integer);
С> procedure Edit2MouseUp(Sender: TObject; Button: TMouseButton;
С> Shift: TShiftState; X, Y: Integer);
С> end;
С>var
С> Form3: TForm3;
С>implementation
С>{$R *.dfm}
С>procedure TForm3.Edit1Exit(Sender: TObject);
С>begin
С> try
С> raise exception.create('1');
С> except
С> application.HandleException(self);
С> end;
С>end;
С>procedure TForm3.Edit2MouseDown(Sender: TObject; Button: TMouseButton;
С> Shift: TShiftState; X, Y: Integer);
С>begin
С> memo1.lines.add('down');
С>end;
С>procedure TForm3.Edit2MouseUp(Sender: TObject; Button: TMouseButton;
С> Shift: TShiftState; X, Y: Integer);
С>begin
С> memo1.lines.add('up');
С>end;
С>end.
С>
С>Ситуация:
С>1. Фокус ввода находится на Edit1.
С>2. Я нажимаю и ОТПУСКАЮ мышь на Edit2.
С>В результате в memo1 оказывается строка down.
С>ВОПРОСЫ: 1. Почему не срабатывает событие Edit2MouseUp
С>2. Как сделать так, чтобы факт отпускания мыши стал известен Edit2.
Это происходит потому, что после MouseDown вызывается Exception (и диалоговое окно) из Edit1Exit, соответственно фокус теряется и все мышиные сообщения идут не на Edit2. Собственно надо в Edit1Exit например ничего не делать....