Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
ВнизПодскажите, как определить, какая Button нажата (в режиме run-tim Найти похожие ветки
← →
Michael5 (2005-02-13 20:18) [0]Кнопки автоматически генерируются, а затем мне хотелось бы их перемещать, для чего мне нужно определить, какая кнопка нажата, присвоить ее имя переменной btn:TButton, после чего уже она используется как например, здесь:
procedure TForm1.RunTimeButtonMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssCtrl in Shift then
begin
SetCapture(btn.Handle);
Capturing := true;
MouseDownSpot.X := x;
MouseDownSpot.Y := Y;
end;
end;
← →
DrPass © (2005-02-13 20:20) [1]btn:=Sender as TButton;
← →
begin...end © (2005-02-13 20:23) [2]> Michael5 (13.02.05 20:18)
> присвоить ее имя переменной btn:TButton
Переменной типа TButton ИМЯ кнопки присвоить нельзя.
> мне нужно определить, какая кнопка нажата
Используйте параметр Sender обработчика - это и есть нажатая кнопка. А её имя будет (Sender as TButton).Name. А если Вы не уверены, что попадание в этот обработчик вызвано именно нажатием кнопки - добавьте впереди проверку: if Sender is TButton then ...
← →
Michael5 (2005-02-13 20:27) [3]Огромное спасибо! Все работает :)
← →
Michael5 (2005-02-13 22:52) [4]И еще вопрос, если можно!
Вопрос по Handle. Если для Button такая функция работает:
btn:=Sender as TButton;
SetCapture(btn.Handle);...
то что мне делать в случае с Edit или StaticText?
Плохо понимаю (извиняюсь, конечно, за глупые вопросы), там дело разных видах этих Handle, что ли...
Вот конкретный кусок кода, который хотелось бы сделать рабочим (lbl здесь или :=TLabel, или TStaticText):
procedure TForm1.RunTimeLabelMouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
begin lbl:=Sender as TStaticText;
if ssCtrl in Shift then begin
SetCapture(lbl.Handle);Capturing := true;
MouseDownSpot.X := x;MouseDownSpot.Y := Y; end;
if ssAlt in Shift then begin lbl.Destroy; end; end;
← →
Плохиш © (2005-02-13 23:11) [5](Sender as TStaticText).Handle
PS. Совершенно нет никакого желания телепатировать, какой тип имеет переменная lbl.
Handle он и есть Handle типа LongWord.
← →
Michael5 (2005-02-13 23:22) [6]>Плохиш
Спасибо, действительно, все в порядке, ошибку нашел, не в том месте запаниковал :))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.056 c