Мир Вам, эксперты! Решил недавно заняться дельфой. А учебника не нашел. Всякой так хрени по поводу "в помощь программеру" в нете дофига, а учебника - дулю!!! Если у кого-нибудь есть учебник (электронный, имеется ввиду), большая просьба: вышлете. Или линку кинте, только не битую. Заранее спасибо, всегда Ваш, ВЕЧНЫЙЛАМЕР.
Добрый день, ВЕЧНЫЙЛАМЕР! Есть у меня учебник по 5-му. PDF общим объемом 10 мег. Куда слать-то bsurin@mail.ru Ответ отправлен: 10.03.2004, 10:20 Отправитель: Boriss Отвечает Pawel
Добрый день, ВЕЧНЫЙЛАМЕР! Куда кидать-то??? Ты хоть мыло то напиши. А вообще в net этого добра навалом. http://delphi.mastak.ru/books/ http://www.soobcha.ru/ http://ishodniki.ru/top/?cat=delphi_books Ответ отправлен: 09.03.2004, 14:44 Отправитель: Pawel Отвечает sir henry
Здравствуйте, ВЕЧНЫЙЛАМЕР! Вот ссылка: http://www.podgoretsky.com/ddp.html куча книг в электронном виде, в т.ч. и по Дельфи 7. Ответ отправлен: 09.03.2004, 14:21 Отправитель: sir henry Отвечает samum2000
И куда тебе высылать??? На деревню дедедушке? Свой E-Mail надо публиковать. Вот тебе ссылочка: www.vr-online.ru (более точно не помню) Там есть "Библия Delphi" - очень интересная книжка, правда, пока не вся :(
Приложение: Ответ отправлен: 10.03.2004, 12:26 Отправитель: samum2000
Вопрос № 1393
Добрый вечер. У меня есть вопрос по тому, как динамически менять реакцию на события Delphi. Есть текст (не вызывающее проблем убрано, чтоб сконценитрировать внимание на вопросе): ---------Начало--------- ... procedure BUtton1OnClick(Sender: TObject); //Установлено мышью на форме. ... implemantation ... var buf: procedure; delay: integer; Timer1: TTimer; //Создаётся динамически далее. ... procedure DoOne; //Нигде более не описана, просто процедура. begin ShowMessage(\'Таймер работает!\'); end; procedure DoMore; //Как и DoOne. begin ShowMessage(\'Таймер Хорошо работает!); end; procedure DoTwo; begin delay:=delay+1; if delay >= 100 then Timer1.ONTimer:=buf; end; Button1OnClick(Sender: TObject); begin Delay=0; Timer1:=TTimer.Create; If Random(100)>=50 then buf:=DoOne
else buf:=DoMore; Timer1.OnTimer:=DoTwo; end; ---------Конец--------- Компилятор ругается на то, что, по его мнению, "указатель на метод" ("method pointer") - несовместимый с прцедурным тип, когда в качестве реакции на событие OnClick я хочу вызвать процедуру. Можно, конечно, объявить как положено метод для обработки события в Interface, но как быть, если решение о том, какие события будут обрабатываться принимается динамически, то не создавать же для всех обработчик события, который проверял бы, нужна ли его работа - программа начнёт заметно тормозить, ести на каждое событие всех нужных объектов вешать обработчик. Вопрос в том, можно ли заставить Delphi как обработчик события использовать процедуру (Buf^ - тоже не помогает, Delphi предлагает писать просто Buf!!!, а выбор между типами возложить на компилятор - так написано в справке), если да - то как (в Delpi
Help про эту ситуацию - ни слова не нашёл), если нет - подскажите, пожалуйста, как можно решить такую задачу. Спасибо.
Доброе время суток, Кирилл! Все дело в том, что процедуры-обработчики событий это не простые процедуры. Сами посудите, чтобы их вызывала оперционная система, они должны быть в ней зерегистрированы!! Смотрите описание работы в C++ 4..5, BPW - там еще это делалось "ручкми" и поэтому объяснялось, как это делается И еще: регистрация - это указание адреса в памяти (!) прописанного в системе !! Лучше написать процедуру - которая реализует эту замену неявно. Например, в OnTimer работа по условию Ответ отправлен: 09.03.2004, 20:27 Отправитель: Boriss Отвечает samum2000
У тебя процедуры неправильные! Точнее, они неправильно описаны. Событию OnTimer должна соответсвовать процедура типа TNotifyEvent. Вот как она описана: TNotifyEvent=procedure (Sender: TObject) of object; Итак, тебе следует, прежде всего, изменить описание твоих процедур (вроде procedure DoTwo(Sender: TObject);). Затем надо поместить их описания в интерфейсную часть модуля (я не уверен, но кажется эти функции
должны быть функциями-членами того класса, которому принадлежит Timer, т.е. твоей формы). После этого можешь писать Timer1.OnTimer:=DoTwo - это переопределит обработчик события OnTimer твоего Timer'a
Приложение: Ответ отправлен: 11.03.2004, 11:37 Отправитель: samum2000 Отвечает Pawel
Приветствую Вас, Кирилл! RTFM Процедуры нужно регистрировать в симтеме. Смотри примеры. Ответ отправлен: 11.03.2004, 18:36 Отправитель: Pawel
Вопрос № 1394
Как добавить в контектное меню рабочего стола(желательно в любое из винды) свои элементы (сабменю в том числе) и присвоть им команды? ---------------------- Заранее спасибо!!!
Доброе время суток, ol! Добавить обработчик onclik для "ссылки в About". А в него одну командочку ShellExec. Ответ отправлен: 10.03.2004, 10:33 Отправитель: Andy Отвечает samum2000
Обрабатывай событие onClick (или какое там у твоей ссылки). begin ShellExecute(Handle, nil, 'http://www.yoursite.ru', nil, nil, SW_SHOW); end
Приложение: Ответ отправлен: 10.03.2004, 13:47 Отправитель: samum2000 Отвечает vitya
Здравствуйте, ol! 1. ShellExecute 2. Находишь активный браузер в реестре запускаешь его (см 1.)с адресом сайта. Ответ отправлен: 10.03.2004, 13:12 Отправитель: vitya Отвечает CJ
Доброе время суток, ol! См. Приложение.
Приложение: Ответ отправлен: 10.03.2004, 16:46 Отправитель: CJ Отвечает Boriss
Доброе время суток, ol! А можно и поизвращаться (в приложении): А внутри еще что угодно написать. И если связи нет, все равно будет какая-никакая информация
Приложение: Ответ отправлен: 10.03.2004, 18:27 Отправитель: Boriss Отвечает Pawel
Добрый день, Loko! Ясно, но я решил, что Вы хотите сделать что-то особенное :)) Предыдущий ответ снимается Ответ отправлен: 10.03.2004, 10:22 Отправитель: Boriss
Вопрос № 1398
Как я зменил размер???? Да вы че? Flash1.Width:=23; И все!
Приветствую Вас, Kirill! Программно или в св-вах? Может размер твоей SWF больше чем новый? Ответ отправлен: 11.03.2004, 18:45 Отправитель: Pawel
Вопрос № 1399
Как добавить в контекстное меню винды (рабочий стол и проводник) свои элементы и подменю, и присвоить им значения? -------------------------- Заранее спасибо!
Доброе время суток, ВЕЧНЫЙЛАМЕР! THE_PRO Ответ отправлен: 11.03.2004, 13:52 Отправитель: THE_PRO Отвечает Boriss
Здравствуйте, ВЕЧНЫЙЛАМЕР! :)) - ну воот, уже и галочка виновата ... Ответ отправлен: 11.03.2004, 15:09 Отправитель: Boriss
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.