Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизСвой обработчик для динамически созданного компонента Найти похожие ветки
← →
Вася (2010-03-29 04:37) [0]создаю динамически tform:
newform:=tform.create(nil);
newform.visible:=true;
пытаюсь назначить ей свой onmousedown:newform.onmousedown:=mouse_down;
а оно мне заявляет:[Error] Incompatible types: "method pointer and regular procedure"
в интернете написано что-то примерно подобное:
> смотрим описание класса TNotifyEvent
> > type TNotifyEvent = procedure (Sender: TObject) of object;
> и думаем что означают в описании слова of object.
я к сожалению не знаю что это значит, но может всё-таки можно назначить туда обычную процедуру:procedure mouse_down(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); // объявление
implementation
...
procedure mouse_down(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
// something //
end;
как вообще правильнее делать-то?(
← →
brother © (2010-03-29 06:18) [1]
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
end;
значит:
> procedure mouse_down(Sender: TObject; Button: TMouseButton;
> Shift: TShiftState; X, Y: Integer);
> begin
> // something //
> end;
← →
brother © (2010-03-29 06:20) [2]зы. ты
> procedure mouse_down(Sender: TObject; Button: TMouseButton;
> Shift: TShiftState; X, Y: Integer);
проверял? ;)
← →
Вася (2010-03-29 06:21) [3]м-м...не понял...а разве у меня не точно так же?
← →
brother © (2010-03-29 06:22) [4]я тебе привел пример и спросил про [2]
← →
Вася (2010-03-29 06:34) [5]хм...
> указатель на процедуру 4 байта, а на метод класса "двойной" указатель в 8 байт...
не совсем понял "о чом тут ваще"(с), но получается что никак?((
← →
brother © (2010-03-29 06:35) [6][2]
← →
Метод (2010-03-29 10:34) [7]"Методу" при вызове передается скрытый параметр Self. Этим вызов "метода" отличается от вызова обычной "процедуры". Поэтому тебе компилятор и говорит, что "Несовместимые типы: "указатель на метод и обычная процедура"". Используй метод какого-то класса (той же формы) вместо обычной процедуры, как в [1]. И вообще, почитай, что такое "метод" и чем он отличается от "процедуры".
← →
KSergey © (2010-03-29 12:28) [8]Автор, почитайте вот тут
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=342
← →
Вася (2010-03-29 12:30) [9]у меня в программе нету классов...тока tform который я динамически создаю...
я пытался читать про классы,но там половина слов непонятные...может книга плохая...=(
а метод - это вроде так функция внутри класса зовётся просто...
без классов совсем нельзя?они мне не нравятся что-то совсем...=\\
← →
brother © (2010-03-29 12:36) [10]имхо, топик - развод ибо [2], а автору могу пожелать одного: удачи в программировании!
← →
Метод (2010-03-29 12:42) [11]TButton, TForm - классы. Без классов в Delphi делать особо нечего. Можно, конечно, но - не надо. Delphi - объектно-ориентированный язык, поэтому в нем есть и повсеместно используются классы. Парадигма объектно-ориентированного программирования сама по себе подразумевает использование классов. Классы - краеугольный камень ООП и Delphi. Не нравятся классы - используй другой язык программирования. Вот только ООП, как показывает опыт, в большинстве случаев лучше процедурного программирования.
я пытался читать про классы,но там половина слов непонятные...может книга плохая
То есть, ты хочешь сказать, что в книге используются какие-то не такие слова? Английские? Или матерные?
← →
Омлет © (2010-03-29 12:49) [12]> brother © (29.03.10 12:36) [10]
> имхо, топик - развод ибо [2]
А что такого в [2]? Не понял.
← →
Вася (2010-03-29 13:59) [13]> brother © (29.03.10 12:36) [10]
> имхо, топик - развод ибо [2]
там всё в точности как у меня.и не работает.сам бы проверил сначала...=\\
> То есть, ты хочешь сказать, что в книге используются какие-
> то не такие слова?
просто неизвестные мне.например от "инкапсуляция" каждый раз мурашки...какое-то жуткое слово...х_х
от определений незнакомых понятий в википедии становится только непонятнее - в раскрытии каждого понятия снова незнакомые термины...
← →
Вася (2010-03-29 14:04) [14]а вообще ни разу не встречал на форумах или обучающих сайтах проектов где бы новые классы создавались с нуля...
только использование готовых обработчиков vcl или jedi...а там только обычное...
vcl удобно,не спорю...но не рационально же...
← →
Плохиш © (2010-03-29 14:29) [15]Сантехнику - сантехниково.
← →
KSergey © (2010-03-29 15:37) [16]> Вася (29.03.10 14:04) [14]
> vcl удобно,не спорю...но не рационально же...
еще один рационализатор...
тогда пройдите на wasm.ru
← →
Демо © (2010-03-29 15:53) [17]
> Плохиш © (29.03.10 14:29) [15]
> Сантехнику - сантехниково.
Садовнику - садовниково.
← →
Демо © (2010-03-29 15:55) [18]
> просто неизвестные мне.например от "инкапсуляция" каждый
> раз мурашки...какое-то жуткое слово...х_хот определений
> незнакомых понятий в википедии становится только непонятнее
> - в раскрытии каждого понятия снова незнакомые термины..
> .
А придётся поучиться.
Без понимания ООП в Delphi далее "Hello, World!" делать нечего.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.077 c