![]() | |||
![]() |
| ||
---|---|---|---|
![]() |
Дайджест от 25.11.2000 |
---|
Если Вы не нашли ответ на свой вопрос в этом дайджесте, то попробуйте найти его в основной базе. Поиск ведется так же и в "Круглом столе" славного "Королевства дельфи". И в разделе "Взаимопощь" на www.infoart.ru |
![]() |
Прочее |
---|
![]() |
Помогите с серийным номером Delphi 5.0 »»» Юрий (08.06.00 09:50) Купил диск "Программисту 2000". Хотел поставить с него Borland Delphi 5.0, но нигде на диске нет серийного номера. Если кто встречался с этой проблемой, помогите. »»» Mike Goblin - mgoblin@mail.ru (08.06.00 10:26) Номер 111111111(ну все единицы) Ключ fex1-91x0 Если че есть генератор ключей -= Из конференции сайта MASTERS OF DELPHI (http://delphi.mastak.com) =-
(Пример для Delphi 1.0 поскольку в Delphi 2-3 лучше использовать: var MsWord : variant; MsWord := CreateOleObject('Word.Basic'); Для Delphi 3, пример ниже) Создавать отчет в программе Word удобно если отчет имеет сложную структуру (тогда его быстрее создать в Word, чем в Qreport от Delphi, кроме того, этот QReport имеет "глюки"), либо, если после создания отчета его нужно будет изменять. Итак, первым делом в Word создается шаблон будущего отчета, это самый обыкновенный не заполненный отчет. А в места куда будет записываться информация нужно поставить метки. Например (для наглядности метки показаны зеленым цветом, реально они конечно не видны): Накладная ? Num
Для Delphi 2 и выше Спасибо Сергею :) И еще, как определить установлен ли на компьютере Word, запустить его и загрузить в него текст из программы? Пример: var По командам OLE Automation сервера см. help по
Можно ли из программы Delphi создавать, открывать(читать) и редактировать вордовские документы не имея установленного MS Word Нужно знать внутренний формат файлов :((, а он от версии к версии меняется, компоненты предназначены для работы через OLE. Без установки Word-а работать не будут -= Из конференции сайта MASTERS OF DELPHI (http://delphi.mastak.com) =-
»»» Nuke Dukem (02.08.00 14:09) Вопросик совсем простой наверное. Как свойство родительского класса (например) published OnChange: TNotifyEvent; сделать в своей компоненте недоступной в Object Inspector?? И вопрос посложнее. Есть TTreeView как родительский класс для компонента. В конструкторе создаю pmenu типа TPopupMenu, owner у меню - мой TreeView. Хочу добавить в Object Inspector что-то типа PopupMenuItems от этого попапа. Простое property PopupMenuItems : TMenuItem read GetItem; и function TMyTreeView.GetItem() : TMenuItem; begin Result:=pmenu.Items; end; НЕ ПОМОГЛО. Как быть, уважаемые ??? »»» Alexander - avolkov@infostroy.ru (02.08.00 15:16) 1) На мой взгляд нужно следующее. Объявить в наследнике public свойство OnChange с соответствующими методами доступа, в которых брать или устанавливать свойство родителя: function TMyCtrl.GetOnChange: Classes.TNotifyEvent; begin Result := inherited OnChange end; procedure TMyCtrl.SetOnChange(Value: Classes.TNotifyEvent); begin inherited OnChange := Value end; Public- свойство инспектор показывать не будет. 2) По моим наблюдениям, инспектор показывает свойство, если для него определен и read и write доступ. Как Вы будете реализовывать доступ к элементам меню - Ваш выбор. Я бы попробовал просто давать доступ к указателю на свойство pmenu.Items. Это коллекция, а с ними инспектор проблем не имеет. »»» Alexander - avolkov@infostroy.ru (02.08.00 15:43) Корректировка к предыдущему моему сообщение. Извините, коллекции навязли в зубах. Конечно TMenuItem это не коллекция, но инспектор с ней знаком. Поэтому проблема только в том, чтобы определить метод на запись требуемого Вам свойства. »»» Nuke Dukem - nukedukem@iname.ru (02.08.00 15:50) По поводу TMenuItem. Я сглупил. Если у меня создается это самое меню в конструкторе, то оно так и будет там создаваться. Даже если в IDE что-то там насоздают типа подменюшек. В общем хотелось создать попап меню с бызовым набором строк. А в IDE можно было бы добавить/удалить/изменить. Как бы это сделать? »»» Mike Goblin - mgoblin@mail.ru (02.08.00 16:39) В Object Pascal уменьшить видимость метода/св-ва низя, но как правило у каждого визуального ком-та есть родитель TCustom...., где св-ва/события описаны как protected. Наследуйте от него и делайте Published нужные. Про PopupMenu не очень понял, а чем Вас не устраивает его св-во PopupMenu для задания внешнего TPopupMenu -= Из конференции сайта MASTERS OF DELPHI (http://delphi.mastak.com) =-
Как записать сумму прописью? 123 -> сто двадцать три рубля Не самый лучший вариант, но работает :)
Еще вариант от Дмитрия (дан в конференции)
»»» Kuzmich (24.07.00 13:33) Может кто поможет исходниками. Нужно написать программу перевода RTF в HTML Или может кто даст дельный совет... »»» maestro - maestro@bashneft.ru (24.07.00 14:36) Если быть не очень разборчивым в средствах, то первое, что приходит в голову, это использовать Word как OLE-сервер. "Открыть", "Сохранить как..." »»» Kuzmich - boriskuzma@mail.ru (24.07.00 14:43) Согласен можно, но он (Word) сует в столько билеберды в HTML, что повесится можно... »»» Wonder (24.07.00 16:23) Странно, но первое что пришло мне в голову, так это использовать TRichEdit. Загружать туда, потом, если надо, править, и, далее, по-выбору: либо сохранять просто текстом, а потом ручками в HTML, либо, если текст простой, т.е. текст безо всяких там таблиц и прочего форматирования, можно и автоматизировать слегка(теги там всякие простенькие вставлять автоматически, типа , etc.). У меня то же самое работает через TMemo, но не с RTF, а с изначально текстовыми файлами. А при наличии форматирования устанешь эту автоматизацию писать.
Как создать файл с расширением "hlp" »»» Роман (13.07.00 00:19) Подскажите, какой софт нужно исползовать, чтобы написать полноценный и разветвленный Help. »»» Merlin (13.07.00 00:42) Это на любителя, наверняка тебе тут подскажут кучу всего (таких программ не мало), но мне больше нравится "ручками" :) Как это делается подробно написано в статье Олега Зайцева, найти ее можно на www.chat.ru/~z_ol »»» Romych (13.07.00 14:23) Привет тезка. Могу посоветовать мастдайный продукт HTML Help Workshop, эта штука позволяет создавать не просто нелпы, а новые гипертекстовые/хтмл-ные как в самих виндах. »»» Merlin - delphi@mastak.com (17.07.00 17:29) Еще ссылки: ProHelp http://www.igweb.pair.com/ IG`s Software выпустила версию 2.0 и 3.0-бета своего популярного редактора создания контекстного хелпа для проектов на Delphi 3,4,5 и C++Builder 3,4,5 HelpScribble 5.4.0 http://www.jgsoft.com/ редактор для создания Windows Help и HTML Help файлов. -= Из конференции сайта MASTERS OF DELPHI (http://delphi.mastak.com) =-
Подскажите какие ХОРОШИЕ программы есть для создания ИНТАЛЯШЕК »»» kingdom (26.07.00 21:19) День добрый ! 1) Поделитесь опытом, расскажите как лучше писать ИНСТАЛЯШКУ, чтобы и в реестр лазела и комп перегружала и все остальное... Есть InstallSheild Express, но это слабовато. 2)Если не сложно расскажите немного об InstallSheild (обычном), что это такое, насколько сложное и гобкое средство. Спасибо ! »»» balda - stub@inbox.ru (27.07.00 06:50) есть крутая прога как Wise Install Master у меня на компашке 60 метров. ну очень кульная. скрипт свой мона писать...и в реестр. я ей пользуюсь. »»» DarkTram (30.07.00 20:17) Vise Installer 3.0 (MindVision) - рулезная штука (~3Mb) Нужно крякнуть. Я использую: Name: Kooky [HERiTAGE] Pass: IVR400W7921285 »»» Mark - mark@kangaroonet.com (02.08.00 18:37) Setup Factory !!! Очень мощный и компактный инсталлятор. »»» Vlad - v987@mail.ru (03.08.00 12:24) По работе использую InstallSheild Prof.6.02 штука конечно мощная, но для решения общих/типовых задач... А вот как только надо сделать инсталятор разбитый на 2-е фазы (2-ая фаза после перезагрузки).. то тут начинаются приключения.. К тому же версия 6.02 удобнее чем 5.X, но и баг в ней прилично :) "немного об InstallSheild" я вроде рассказал. Подробнее могу ответить только на конкретные вопросы »»» O$AE - osae@newmail.ru (15.08.00 13:39) Рекомендую Wise Install Master 7.0 и выше. Интерфейс понятен, есть возможность писать на script. Если негде взять пиши. -= Из конференции сайта MASTERS OF DELPHI (http://delphi.mastak.com) =-
Как сделать сохранение в тхт формате.. »»» Стас (15.06.00 03:30) Я совсем юнный пользователь дельфи и пробую переделывать примеры программ,может научусь так чему нибудь..Вообщем есть в приложении подобие текстового редактора, но он сохраняет в rtf, как переделать в тхт? »»» Mike Goblin - mgoblin@mail.ru (16.06.00 15:05) Наверное вы используете пример редактора из дельфи. В форме окна редактирования у компонента RichEdit установите св-во PlainText = true -= Из конференции сайта MASTERS OF DELPHI (http://delphi.mastak.com) =-
Я сделал так - выбираю все DLL из каталога с программой, загружаю каждую и пытаюсь найти в ней функцию (через API GetProcAddress) с заранее определенным жестко именем (например что нибудь типа IsPluginForMyStuff). Если нашлась - DLL считается моим плагином, если нет - выгрузить и забыть. А набор вызываемых функций по идее одинаков у всех плагинов, и программа (основная) в курсе какие именно функции она ищет в DLL. Если даже и не так, то ничего не мешает тебе определить в плагине функцию наподобие GetFeatures, возвращающую список строк-названий поддержанных плагином процедур. Вот часть моего кода по работе с плагинами...
Чем принципиально отличаются классы от объектов? »»» Palladin (28.07.00 12:39) Чем принципиально отличаются классы от объектов? »»» Диман - makaev@pisem.net (28.07.00 13:05) Объект - это экземпляр класса. »»» ASCRUS - ascrus@aport.ru (28.07.00 13:47) если ты имеешь ввиду под понятием обьекты: обьектыне типы, которые описывались ранее в Object Pascal (ключевое слово object), то в Delphi class - это то же самое плюс свойства, события и RTTI (то есть возможность делать публицируемые свойства). »»» Alexander - avolkov@infostroy.ru (28.07.00 13:48) Согласен с предыдущим с точки зрения анализа. Еще - объект отличается наличием данных (атрибутов или в терминологии Delphi полей, свойств, указателей на обработчиков событий). Класс данных не имеет, кроме реализованных в виде функций класса и предопределенных в TClass атрибутов, например ClassName. »»» SergSuper - sergsuper@mail.ru (28.07.00 14:24) Не совсем так. Класс тоже ведь имеет данные. t=class X:char end - X это что, не данные? Дело в следующем. Первоначально появился object - что-то вроде record-а, но с процедурами, наследованием и т.д. Использовались обычно объекты динамически, т.е. приходилось описывать тип данных объект и тип ссылку на него. Чтобы создать нечто динамическое надо было использовать функцию New. В итоге всё получалось несколько громоздко. В Delphi решили работать с объектами по-другому, т.е. объект(который class) это уже сразу ссылка, еще один тип объявлять не надо, New тоже не надо вызывать. Все новые возможности реализовали только в классах, а object оставили для совместимости. Ну а принципиальные различия между class и object, как видно из вышеописаного: 1. Класс это ссылка 2. В классы реализованы новые возможности. Если не имеются в виду паскалевские термины, то объект и класс это обычно одно и тоже, ну может быть "объект - это экземпляр класса". »»» Alexander - avolkov@infostroy.ru (28.07.00 15:13) Да, тут нечего сказать. Super поставил жирную точку в дискусси, не удосужившись понять о чем я писал. Написав "t=class X: char; end;" Вы не сможете обратиться к данным "t.X := #13;", поскольку память под эти "данные" не выделена. Понятно? Не верите, можете попробовать. И вообще, прежде чем писать пример кода, неплохо было бы его хотя-бы откомпилировать без ошибок. »»» Диман - makaev@pisem.net (28.07.00 15:38) Вот я и говорю: Объект - это экземпляр класса. т.е. объект, это тотже класс, под который выделена память и с которым уже можно работать. »»» SergSuper - sergsuper@mail.ru (28.07.00 16:02) Ну зачем же так. Очень я даже удосужился. А Ваш последний мессаждь действительно мне непонятен, чего я не скрываю. Написав t=class Вы объявляете тип и естественно не можете присвоить данные типу. Естественно такое компилироваться не будет и я не пытался его компилировать. Вам же не придет в голову писать "t=record X: char; end" и потом обращаться к данным "t.X := #13;". Так что Ваши возражения не принимаю. Чтобы окончательно снять вопросы приведу пример идентичного объекта реализованного через object и через class
Т.е. когда пишется через object есть и объект(to) и ссылка на него (po). Когда пишется через class есть только ссылка(to). Я думаю, что для Alexander-а я ничего нового не написал, спор имеет чисто теоритический характер, но может кому-то, кто не писал на Паскале 6 или 7, будет интересно. »»» Palladin (31.07.00 17:40) Короче, я понял, что объекты в Delphi еще можно использовать. И тут вопрос возник другой. На счет того что имя класса сразу является указателем я понял, но тогда вопрос: можно ли написать класс с нуля или без TObjecta не обойтись? »»» ASCRUS - ascrus@aport.ru (01.08.00 08:34) Да ты прав - даже если ты напишешь типа to = class, то все равно это будет означать to = class(TObject). Естественно это сделанно из-за RTTI »»» SergSuper - sergsuper@mail.ru (01.08.00 09:07) Если использовать object - то будет без без TObject, чисто твой объект. Если class - то прицепляется автоматом. -= Из конференции сайта MASTERS OF DELPHI (http://delphi.mastak.com) =-
Обнаружил, что компонент QReport никак не реагирует на установки принтера PrinterSetup диалога, вызываемого нажатием кнопочкисобственного Preview! В QuickReport есть собственный объект TQRPrinter, установки которого он использует при печати, а стандартные установки принтеров на него не влияют. В диалоге PrinterSetup, вызываемом из Preview можно лишь выбрать принтер на который нужно печатать (если, конечно, установлено несколько принтеров). Советую поставить обновление QReport на 2.0J с www.qusoft.com. Перед печатью (не только из QReport) программно установите требуемый драйвер принтера текущим для Windows
После печати восстановите установки.
Хочу в DLL создать форму, но не модальную, а обыкновенную... »»» GBF Zero (06.07.00 15:21) Задача такая: Хочу в DLL создать форму (она уже есть), но не модальную, а обыкновенную. То есть я с ней хочу поработать, а "наработанный" результат (к примеру, число) вернуть в форму, в которой вызывал DLL. »»» Ilya - lopatkin@ncsp-net.com (07.07.00 11:14) используй SendMessage. При вызове своей формы (dll) передай ей Handle вызывающей формы. А там обработчик сообщения. »»» GBF Zero (08.07.00 12:01) Спасибо Ilya. Но спасение утопающих - дело рук самих утопающих. Уже разобрался. Тем более, что твой способ мне не подходит. Я всё реализовал на трёх функция(две DLLе - открытие формы и закрытие, а третья - передача результата). Работает как надо. Но тебе всё равно спасибо. -= Из конференции сайта MASTERS OF DELPHI (http://delphi.mastak.com) =-
Перекодировка текста DOS <-> Widowns <-> Koi8
Спасибо Олегу и Виталию
С каким числовым форматом Delphi работает быстрее всего ? Простой тест: под рукой прога для вычисления координат цвета по спектру из 10000 точек, вычислений там прилично: type time, sec ------------------- single 2.20 double 3.63 real 4.28 extended 5.95
Функции и процедуры для работы с drag-and-drop операциями. Функции и процедуры для работы с drag-and-drop операциями. Функция CancelDrag; Модуль: Controls Процедура отменяет текущую drag-and-drop или drag-and-dock операцию. Т.е. перетаскивание объекта не происходит. Функция FindDragTarget( const Pos: TPoint; AllowDisabled: Boolean ): TControl; Модуль: Controls Функция возвращает объект базового класса TControl, к которому относится позиция экрана с координатами, определенными параметром Pos. Данная функция используется для определения потенциального получателя drag-and-drop или drag-and-dock операции. Если для указанной позиции не существует никакого оконного средства управления, то функция возвращает nil. Параметр AllowDisabled определяет, будут ли учитываться заблокированные (disabled) объекты. Функция IsDragObject( Sender: TObject ): Boolean; Модуль: Controls Функция определяет, является ли объект, определенный в параметре Sender, потомком класса TDragObject. Данную функцию можно использовать в качестве параметра Source в обработчиках событий OnDragOver и OnDockOver для того, чтобы определить будет ли принят перетаскиваемый объект. Также функцию IsDragObject можно использовать в качестве параметра Source в обработчиках событий OnDragDrop и OnDockDrop для того, чтобы правильно интерпретировать перетаскиваемый объект.
Сведения о программе, авторские права и т.д., лучше оформить в виде отдельной формы и показывать ее при запуске программы (как это сделано в Word). Сделать это не сложно: 1. Создаете форму (например SplashForm). 2. Объявляете ее свободной (availableForms). 3. В Progect Source вставляете следующее (например):
И форма SplashForm держится на экране пока выполняется Create в главной форме. Но иногда она появляется и пропадает очень быстро, поэтому нужно сделать задержку: 1. Добавляете на форму таймер с событием:
2. Событие onCloseQuery для формы:
3. И перед SplashForm.Hide; ставите цикл:
4. Все! Осталось установить на таймере период задержки 3-4 секунды.
Как сделать так, что при нажатии на Enter происходил переход к следующему элементу формы Ставите у формы KeyPreview = true и создаете событие KeyPress следующего вида:
Я создал объект TStrings, но при попытке обращения к нему выдается ошибка. В чем проблема? TStrings -- это абстрактный класс. Вам нужен TStringList.
А как Вам понравится эта форма ?
Как выдвинуть дверцу CD-ROM'а? mciSendString('Set cdaudio Door Open Wait', nil, 0, handle); Также mciSendCommand(mp.DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
Обработка событий при работе с клавиатурой »»» Роман (11.07.00 08:45) Уважаемые Господа ! Извините за дурацкий вопрос, но может кто подскажет мне, как в Delphi обозначаются буквенные и знаковые (+,-,*,/) клавиши. В литературе нашёл только обозначения F клавиш (VK_F1 и т.д.). Где можно найти ответ на этот вопрос ? »»» Mike Goblin - mgoblin@mail.ru (11.07.00 09:09) Дык я делаю так: пишешь какой-нибудь код в OnKeyPressed or OnKeyDown ставишь точку останова и сморишь debuger-ом чего передается в обработчик при нажатии на кнопку »»» Romych (11.07.00 14:28) Дааа, радикально, можно проще: ShowMessage(IntToStr(Byte(Key))) -= Из конференции сайта MASTERS OF DELPHI (http://delphi.mastak.com) =-
Как написать программу не имеющую ни одной формы? Создайте новое приложение, затем удалите из проекта все unitы - (Delphi 3 - View - Project Manager) (Delphi 4 - Project - Remove from project) Откройте файл проекта (Delphi 3 - View - Project Source) (Delphi 3 - Project - View Source) и отредактируйте его так как приведино ниже. Пример:
Источник: Дельфи. Вокруг да около.
Так ли необходимо использовать GetHostByName вместо аналогичного асинхронного метода Q: Так ли необходимо использовать GetHostByName вместо аналогичного асинхронного метода, если все синхронные методы сильно грузят процессор и их трудно прервать в случае необходимости, только через TerminateThread. Я тут обрадовался советам, написал кэш имен и ip адресов, сделал через GetHostByName, прилепил нотификации, многопоточность, а оказывается, все опять нужно переделывать? Или оставить как есть? Дело в том, что я это, несомненно буду использовать в последующих разработках, и мне хочется делать сразу на совесть. Дайте совет, please. Я проверял, все это хозяйство вроде процессор грузит достаточно мало. A: Ты прав, никакой нагрузки на процессор нет. Пример тому - AMV и ADR (см. подпись), многопоточные программы, использующие только berkley-подмножество WinSocks 1.1, никаких асинхронных функций. Каждое письмо посылается и каждый емайл проверяется отдельным потоком. Прерывать при помощи TerminateThread тоже не надо. Когда мне нужно остановить поток (пользователь остановил проверку адресов), я делаю так: 1). устанавливаю int network_off = true 2). из главного потока делаю shutdown и closesocket для сокета потока - даже если я висел на recv или send, то они увидев это вывылятся 3). в коде потока часто-часто стоят проверки переменной network_off и если true, то поток __самостоятельно__ и цивилизовано завершается, если он не соизволит остановится увидев "ошибку сети" 4). главный поток ждет 500 мс и считает сколько осталось потоков, если потоки завершились не все, то он ждет еще 500 ms т повторяет операцию, лишь за тем он вызывает для непокорных потоков TerminateThread На самом деле пункт 4 немного похитрей ;), но идея такая. Потоки мне убивать практически никогда не приходится. Alexander P. Gorlach, Elcom E-mail Management Software Team: * Advanced Mail List Verify: http://www.elcomsoft.com/amv.html * Advanced Direct Remailer: http://www.elcomsoft.com/adr.html
»»» Merle Corey (03.07.00 11:43) Не подскажет ли кто-нибудь где взять примеры реализации OnCustomDraw, OnCustomDrawItem и OnCustomDrawSubItem (в частности очень важно последнее) »»» kingdom - kingdom@tepkom.ru (09.07.00 18:46) В Дельфях5.0 есть пример VirtualListView, где используется все выше перечисленное... -= Из конференции сайта MASTERS OF DELPHI (http://delphi.mastak.com) =-
|
![]() |
Сайт клуба любителей Delphi - Masters of Delphi Designed by MoveR Studio © 2000 - | - Вопросы? Предложения? пишите |
---|
![]() |