Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2009.07.19;
Скачать: [xml.tar.bz2];

Вниз

Не удаётся получить объект Sender в обработчике...   Найти похожие ветки 

 
Алексей К.   (2008-02-22 18:28) [0]

Делаю вот что:


procedure ButtonDn( Sender: PControl);
var
 s: string;
begin
 case Sender.Tag of
   1: s := "BUTTON 1!";
   2: s := "BUTTON 2!";
   3: s := "BUTTON 3!";
 end;
 MsgOk(s);
end;

begin
...
MyBtn := NewBitBtn(form, "Some", [], glyphOver, 0, 0);
MyBtn.tag := 1;
MyBtn.OnClick := TOnEvent(MakeMethod(nil, @ButtonDn));


Далее в отладчике смотрю:
Sender|nil, т.е. его св-ва я получить не смогу, и следовательно, программа падает на case Sender.Tag of... =( Что я делаю не так?

Зарание спасибо!


 
mdw ©   (2008-02-22 18:37) [1]


> MyBtn.OnClick := TOnEvent(MakeMethod(nil, @ButtonDn));

Передаете nil, получаете соответствено, тоже его.


 
Алексей К.   (2008-02-22 18:37) [2]

ясно, спасибо!


 
D[u]fa   (2008-02-22 18:48) [3]

procedure ButtonDn( Sender: PControl);

а как же

procedure ButtonDn(Dummy: Pointer; Sender: PControl);


 
Алексей К.   (2008-02-22 20:47) [4]

интересный получается учебник по KOL (Урок №xx)

www.kolnmck.ru/lessons/lessonsind.shtml

=(

сплошной сборник ошибок какой-то :((
там MakeMethod(nil, @ButtonDn) и т.п. на каждом шагу + куча других недочетов, сейчас скачал книгу Владимира Кладова, думаю, она от таких багов избавлена ;)

ЗЫ
Уважаемый, Владимир. Пожалуйста исправте эти баги в уроках (или уберите этот учебник совсем), а то у людей, не имевших дело с KOL (напр. таких как я =)) возникнит тонна подобных вопросов...

ЗЫЫ
Всем спасибо за ответы!


 
ANTPro ©   (2008-02-23 00:06) [5]

> [4] Алексей К.   (22.02.08 20:47)

Ошибки в студию!


> [4] Алексей К.   (22.02.08 20:47)
> nil

Это указаатель на экземпляр объекта, если не используется в обработчике события, то можно юзать nil :о)


 
Алексей К.   (2008-02-23 09:23) [6]


Ошибки в студию


Например:
Урок 3.
...
В KOL также есть группа свойств, которые описывают положение объекта относительно объекта который был создан первым.
PlaceRight (справа относительно первого), PlaceDown (снизу), PlaceUnder (абсолютно под первым объектом)

не правильно.
я немного разобрал систему (PlaceDown, PlaceUnder) см. соседний топик...
насчёт PlaceRight, ф-ия размещает контрол справа относительно  последнего размещенного, а не справа относительно первого
...

Урок 5.


....
  var
    form,
    PanTools,
    REdit,
    butOpen,
    butSave:PControl;

  procedure clikButOpenSave( Dummy : Pointer; Sender : PControl );
  var
   Dialog:POpenSaveDialog;
   title:string;
  begin
   if sender= butOpen then  //определяем что за кнопка

... а в качестве параметра мы передали nil :(
     ...

  end;

  begin
    form:=NewForm(Applet,"Ðåäàêòîð");

покажите мне, где обьявлена глобальная переменная Dialog?

    Dialog:=NewOpenSaveDialog(title,"",[]) ;
   
...
Собственно ошибка при назначении обработчика...

    butOpen.OnClick := TOnEvent(MakeMethod(nil,@clikButOpenSave));
    butSave.OnClick := TOnEvent(MakeMethod(nil,@clikButOpenSave));
    run(form);
  end.



и т.д. и т.д...


 
ANTPro ©   (2008-02-23 14:18) [7]

Пофиксил, надеюсь заметят mdw или MTsv DN.
http://www.antprog.narod.ru/fixlessons.7z [14кб]


 
Алексей К.   (2008-02-23 14:25) [8]

отлично!
но, просмотрите так-же остальные уроки, подобные ошибки встречаются и там...


 
mdw ©   (2008-02-24 15:16) [9]

В уроках могут встречаться ошибки еще и по той причине, что писались они несколько лет назад, а с тех пор много воды утекло, и многое изменилось в КОЛ....

> NTPro ©   (23.02.08 14:18) [7]
> Пофиксил, надеюсь заметят mdw или MTsv DN.http://www.antprog.
> narod.ru/fixlessons.7z [14кб]

Обновлю во вторник.



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

Форум: "KOL";
Текущий архив: 2009.07.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.004 c
15-1241544646
palva
2009-05-05 21:30
2009.07.19
А чего ругаются, что Штирлица раскрасили?


15-1242601996
game2345678
2009-05-18 03:13
2009.07.19
Проблема с запуском исходника приложения для работы с базами данн


2-1243280665
HF-Trade
2009-05-25 23:44
2009.07.19
Преобразование доменного имени в IP


2-1243188812
AntonioPermskiy
2009-05-24 22:13
2009.07.19
RXRichEdit вставка данных из нескольких файлов


15-1242478890
ПЛОВ
2009-05-16 17:01
2009.07.19
Удаленное управление Линуксом из Винды. Чем?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский