Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.07.31;
Скачать: CL | DM;

Вниз

Програмное нажатие кнопки.   Найти похожие ветки 

 
vegarulez   (2011-04-22 11:01) [0]

Привет всем Мастерам!
Комрады подскажите почему 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. Ибо первый работает корректно - второй нет.


 
clickmaker ©   (2011-04-22 11:08) [1]

> а во втором нет

значит FindComponent("BT_31") = nil

вообще, у TButton есть метод Click


 
OW ©   (2011-04-22 13:03) [2]

не понятны манипуляции.
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;


 
HF-Trade ©   (2011-04-22 13:30) [3]

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:40) [4]

зачем писать
if Obj is TType then
  (Obj as TType).Method
?

Уже проверили, Obj is TType = true, далее можно смело TType(Obj).Method
и короче писать и быстрее выполняется



Страницы: 1 вся ветка

Текущий архив: 2011.07.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.007 c
15-1300890864
Kerk
2011-03-23 17:34
2011.07.31
Посоветуйте eInk -читалку


15-1302303058
Германн
2011-04-09 02:50
2011.07.31
Build vs Compile


15-1302710075
R_R
2011-04-13 19:54
2011.07.31
Screen Dos приложения


6-1221221764
Виталий_д
2008-09-12 16:16
2011.07.31
Send-SendTo / Recv-RecvFrom


3-1262005058
Вадим Хижинский
2009-12-28 15:57
2011.07.31
Изменения SQL запроса в FastReport