Главная страница
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.48 MB
Время: 0.007 c
11-1227416394
Валера
2008-11-23 07:59
2011.07.31
Проблема с скриншотом экрана


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


2-1303835617
Vasja123
2011-04-26 20:33
2011.07.31
Как сделать OnClick на Label если Enabled=false


2-1303574425
kulon
2011-04-23 20:00
2011.07.31
Как сместить все значения поля на одну строку вниз?


15-1302474822
WondeRu without password
2011-04-11 02:33
2011.07.31
Благодарность форуму