![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Програмное нажатие кнопки. [D7, XP]
vegarulez © (2011-04-22 11:01:00)Привет всем Мастерам!
Комрады подскажите почему sender в первом случае передаётся а во втором нет. И второй момент почему они как бы не тождественны, или как первый случай кода минимизировать и сделать как второй?
1.
for j:=0 to P_BT.ComponentCount-1 do
begin
if P_BT.Components[j] is TPNGButton then
with (P_BT.Components[j] as TPNGButton) do
BEGIN
if name='BT_31' then
btclick(P_BT.Components[j] as TPNGButton);
END;
end;
2.
btclick(TPNGButton(FindComponent('BT_31')) as TPNGButton)
P.s. Ибо первый работает корректно - второй нет.
OW (2011-04-22 13:40:00) [1]зачем писать
if Obj is TType then
(Obj as TType).Method
?
Уже проверили, Obj is TType = true, далее можно смело TType(Obj).Method
и короче писать и быстрее выполняется
HF-Trade (2011-04-22 13:30:00) [2]A)
Var
MyBtn: TObject;
Begin
MyBtn := FindComponent('BT_31');
IF MyBtn <> nil Then
IF (MyBtn is TPNGButton) Then
(MyBtn as TPNGButton).Click; // (MyBtn as TPNGButton).OnClick(Sender);
B)
IF (Sender is TPNGButton) Then
(Sender as TPNGButton).Click;
C)
IF (Sender is TPNGButton) Then
(Sender as TPNGButton).OnClick(Sender);
OW (2011-04-22 13:03:00) [3]не понятны манипуляции.
btclick( - что это? не знаю такое
как бы я написал (на скока понял)
procedure TForm1.btn1Click(Sender: TObject); // & btn2Click
begin
if sender is TButton then
mmo1.Lines.Add( TButton(Sender).Caption );
end;
procedure TForm1.btn3Click(Sender: TObject);
var
i:Integer;
begin
for i:=0 to ComponentCount-1 do
begin
if Components[i] is TButton then
if TButton(Components[i]).Name = 'btn2' then
begin
TButton(Components[i]).Click;
TButton(Components[i]).OnClick(Sender);
end;
end;
end;
procedure TForm1.btn4Click(Sender: TObject);
var
B: TComponent;
begin
B := FindComponent('btn1');
if B nil then
if B is TButton then
begin
TButton(B).Click;
TButton(B).OnClick(Sender);
end;
end;
clickmaker (2011-04-22 11:08:00) [4]> а во втором нет
значит FindComponent('BT_31') = nil
вообще, у TButton есть метод Click