Конференция "KOL" » пожалуйста скажите что не так
 
  • Dy1 (14.09.08 01:01) [0]
    procedure TForm1.butAddClick(Sender: PObj);
    var  f, butOK, Ename: PControl;

    procedure Click(d, Sender: PObj);
    var i: integer;
    begin
    i := LV.LVItemAdd(Ename.Text); // AV. Как правильно?
    end;

    begin
    f := NewForm(Applet, 'Добавление/редактирование записи').SetSize(400,300);
    f.ExStyle := f.ExStyle or WS_EX_DLGMODALFRAME or WS_EX_WINDOWEDGE;
    f.Style := f.Style and not (WS_MINIMIZEBOX or WS_MAXIMIZEBOX);
    Ename := NewEditbox(f, []).SetSize(145, 22);
    butOK := NewButton(f, 'OK').PlaceRight.SetSize(64, 23);
    butOK.OnClick := TOnEvent( MakeMethod(nil, @Click));
    f.ShowModal;
    Ename.Free;
    butOK.OnClick := nil;
    butOK.Free;
    f.Free;
    end;

  • vampir_infernal (14.09.08 12:27) [1]
    объект LV вы создаёте?
  • Compiler © (14.09.08 20:52) [2]
    > Ename.Free;
    > butOK.OnClick := nil;
    > butOK.Free;

    Лишнее
  • Dy1 (14.09.08 21:22) [3]
    LV есть. МСКшный
  • Dy1 (14.09.08 21:23) [4]
    забыл сказать, что Add2Autofree или как там его - AV в этом коде. KOLnMCK 2.86 и 2.87+
  • Дмитрий К © (14.09.08 22:46) [5]

    > что не так

    то, что локальная процедура метода TForm1 используется как обработчик события другого объекта
  • Dy1 (15.09.08 16:24) [6]
    а КАК правильно? Это и был вопрос. При выносе Click не видится Ename, а глобальным делать не хочу
  • Дмитрий К © (15.09.08 16:42) [7]
    Ну сделай так:
    procedure TForm1.BtnAddClick(Sender: PObj);
    var f, butOK, Ename: PControl;

    procedure Click(D: PControl; Sender: PObj);
    var i: integer;
    begin
    i := Form1.LV.LVItemAdd(D.Text);
    end;

    begin
     f := NewForm(Applet, 'Добавление/редактирование записи').SetSize(400,300);
     Ename := NewEditbox(f, []).SetSize(145, 22);
     butOK := NewButton(f, 'OK').PlaceRight.SetSize(64, 23);
     butOK.OnClick := TOnEvent(MakeMethod(Ename, @Click));
     f.ShowModal;
     f.Free;
    end;


    только это тоже не совсем правильно, хотя работает.
  • Dy1 (22.09.08 17:33) [8]
    там 5 компонентов. butOK, Ename и остальное вынес в глобал. Не нравится, зато работает
 
Конференция "KOL" » пожалуйста скажите что не так
Есть новые Нет новых   [134432   +18][b:0][p:0.001]