Вопрос № 48774: Доброго времени суток уважаемые эксперты. В моей программе используются "экзотические" шрифты, которых у других пользователей естественно нет. Каким образом их установить програмно без их ведома, и не потребуются ли для этого права админист...Вопрос № 48775: Здравствуйте уважаемые эксперты. Можно ли и каким образом изменить скроллбары компонент у которых недоступны такие свойства? (В смысле VertScrollBar и HorzScrollBar)
Я слышал, что можно с помощью API. Может подскажете как именно, а может кто знает сп...Вопрос № 48805: Здравствуйте!
В Delphi есть фукции Hi и Lo, которые возвращают первый и воторой байт Переменной Integer.
Поскажите пож. функци, которая делает обратное.
Из двух переменных типа Byte переводит в одну переменную типа Integer.
Обединяет ...Вопрос № 48808: Здравствуйте.
Дело в том, что моя Дельфи 6 совершенно не желает грузиться, заявляя по этому поводу следующее:
“Точка входа в процедуру @Sysutils@CheckWin32Version$qqrii не найдена в библиотеке DLL rtl60.bpl.”
Не пользовался ей длительное...Вопрос № 48816: Добый день уважаемые эксперты! Подскажите пожалуйста, как проиграть в Delphi7 файлы ogg и wma. Можна ли воспользоватся компонентом MediaPlayer? Заранее спасибо...Вопрос № 48817: Добрый день, ув. эксперты...
Возник такой вопрос...
Есть форма, на нее ставлю панель, размер панели маленький. Как реализовать что бы при разворачивании формы и возвращении в исходное положение панель была всегда в центре...
Буду признате...Вопрос № 48839: Здраствуй народ. Есть файлы типа XML, в них находится список. Скажите как мне в Delphi 7 получить данные из этих файлов? Я не разбирался раньше с эти - нужды небыло, а сейчас появилась. Где почитать про это?...
Вопрос № 48.774
Доброго времени суток уважаемые эксперты. В моей программе используются "экзотические" шрифты, которых у других пользователей естественно нет. Каким образом их установить програмно без их ведома, и не потребуются ли для этого права администратора.
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Попцов Иван!
Как установить совсем без ведома пользователей, я не знаю. Но вообще, на мой взгляд это очень и очень неправильно. Потому что, например, пользователь может посмотреть список установленных шрифтов и очень удивиться, обнаружив там что-то, чего он лично не ставил.
А вообще, для установки шрифта, насколько я знаю, достаточно скопировать его в папку %WinDir%system32fonts
Ответ отправил: Сухомлин Кирилл Владимирович (статус: Студент)
Ответ отправлен: 11.07.2006, 03:27 Оценка за ответ: 4 Комментарий оценки: Уже подсказали. Но всё равно спасибо.
Отвечает: Ерёмин Андрей
Здравствуйте, Попцов Иван!
Установить шрифт в систему очень легко. Для существует специальные API-функции. Лучше всего подключать шрифт при запуске программы и отключать его при выходе. В этом случае пользователь его и не заметит. А делается это так: AddFontResource(ExtractFilePath(Application.ExeName)+'myfont.ttf');
...
RemoveFontResource(ExtractFilePath(Application.ExeName)+'myfont.ttf');
В параметрах обеих функций нужно указать полный путь к файлу шрифта. Копировать в каталог Fonts файл шрифта НЕ нужно.
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор) Россия, Тула WWW:Программирование на DELPHI: Всё для программиста. ICQ: 286837644 ---- Ответ отправлен: 11.07.2006, 07:56 Оценка за ответ: 5 Комментарий оценки: Спасибо огромное. Именно то, что нужно.
Вопрос № 48.775
Здравствуйте уважаемые эксперты. Можно ли и каким образом изменить скроллбары компонент у которых недоступны такие свойства? (В смысле VertScrollBar и HorzScrollBar) Я слышал, что можно с помощью API. Может подскажете как именно, а может кто знает способ попрощще?
Отвечает: Melamed
Здравствуйте, Попцов Иван!
Если у предков коипонетов присутсвуют свойства VertScrollBar и HorzScrollBar, то можно написать потомок этого
компонента (см. приложение) или воспользоваться API функцией
или воспользоваться компонентом TscrollBox и в обрабодчике его OnScrol выпольнить необходимые действия.
Да, распологать его следует около компонента, у которого вы хотите иметь п
1086;лосу прокрутки
Приложение:
Ответ отправил: Melamed (статус: 2-ой класс)
Ответ отправлен: 11.07.2006, 16:27 Оценка за ответ: 4 Комментарий оценки: Не понятно, но всё равно спасибо. Может кто знаком с этой самой API функцией?
Вопрос № 48.805
Здравствуйте!
В Delphi есть фукции Hi и Lo, которые возвращают первый и воторой байт Переменной Integer.
Поскажите пож. функци, которая делает обратное.
Из двух переменных типа Byte переводит в одну переменную типа Integer.
Обединяет их.
Спасибо
Отправлен: 11.07.2006, 11:37
Вопрос задал: Vasiliy (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: IUnknown
Здравствуйте, Vasiliy!
intAnswer := HiByte * 256 + LoByte
--------- я не специалист
Ответ отправил: IUnknown (статус: 5-ый класс)
Ответ отправлен: 11.07.2006, 12:10 Оценка за ответ: 5
Отвечает: Physicist
Здравствуйте, Vasiliy!
Для обратного преобразования используйте такую функцию:
Приложение:
Ответ отправил: Physicist (статус: 4-ый класс)
Ответ отправлен: 11.07.2006, 12:23 Оценка за ответ: 5
Отвечает: METALLDOCTOR
Здравствуйте, Vasiliy!
А вы ничего не перепутали? Дело в том, что Byte - беззнаковый целый тип, занимает 8 бит, а Integer - знаковый целый тип, занимающий 32 бита, то есть в 4 раза больше. (вырезка из справки в приложении)
Но есть, например, метод получать, например Word из Byte: значение первого байта домножить на два в восьмой(этим сместить байт влево на 8 позиций), прибавить к нему второй байт и присвоить это всё Word'у.
Приложение:
--------- Ни о чём не жалею!
Ответ отправил: METALLDOCTOR (статус: 4-ый класс)
Ответ отправлен: 11.07.2006, 12:23 Оценка за ответ: 5
Отвечает: sir henry
Здравствуйте, Vasiliy!
Hi() и Lo() возвращают СТАРШИЙ и МЛАДШИЙ байт значения. Это не тоже самое, что первый и второй байт.
Впрочем, эти функции не различают двух и четырехбайтовые переменные.
Такой функции нет, но Вы можете сами ее составить, путем сдвига влево первого значения на 8 позиций с помощью оператора SHL и суммированием со вторым значением. Что-то типа:
Function TwoBytes(a, b: Byte): word;
Begin
Result:=a;
Result:=(Result shl 8) + b;
End;
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 11.07.2006, 12:35 Оценка за ответ: 5
Вопрос № 48.808
Здравствуйте.
Дело в том, что моя Дельфи 6 совершенно не желает грузиться, заявляя по этому поводу следующее:
“Точка входа в процедуру @Sysutils@CheckWin32Version$qqrii не найдена в библиотеке DLL rtl60.bpl.”
Не пользовался ей длительное время, возможно, причина в нескл. заплатках установленных с сайта Микрософт за этот период…
Буду благодарен за участие.
Отвечает: Coupler
Здравствуйте, Пухов Фома Кузьмич!
Судя по всему, это довольно распространенная проблема. С моей дельфей такое случалось пару раз, и в обоих случаях помогла замена rtl60.bpl на исходный (тот, который входит в установку). Если хотите, могу выслать rtl60.bpl на email (~300 кб). Конечно, поможет переустановка, но перед этим нужно удалить все bpl-ки, относящиеся к этой дельфе (предварительно сохранив из в другом месте на случай чего).
Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 11.07.2006, 12:19
Отвечает: sir henry
Здравствуйте, Пухов Фома Кузьмич!
Просто возмите из дистрибутива файл rtl60.bpl и замените им тот, на который ругается Дельфи. Или поставьте сервис пак Борланда для Дельфи 6. Второе предпочтительнее, т.к. будут исправлены мелкие козявки в Дельфи.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 11.07.2006, 12:50 Оценка за ответ: 4
Вопрос № 48.816
Добый день уважаемые эксперты! Подскажите пожалуйста, как проиграть в Delphi7 файлы ogg и wma. Можна ли воспользоватся компонентом MediaPlayer? Заранее спасибо
Отвечает: PheanixN
Здравствуйте, Денис Володя!
проигрывать файлы возможно... Главное что бы в системе были установленные соотвецтвенные кодеки.
Ответ отправил: PheanixN (статус: 1-ый класс)
Ответ отправлен: 11.07.2006, 13:00 Оценка за ответ: 2 Комментарий оценки: Кодеки установлены, но с помощью стандартного компонента MediaPlayer удаётся проиграть только файлы типов wav і mp3
Не очень понятно, что вы имеете в виду. Вы хотите написать свой плеер? Тогда вам надо найти, как расшифровывается звук из файлов, считывать файлы и исходя из полученных значений подавать команду на динамик, но удобнее это делать используя специальные кодеки, например ffdshow, входящие в состав пакета K-Lite Codec Pack или CodecXP(или как-то так) от Microsoft'а, в них есть dll, содержащие фуникции для расшифровки звука. Подробнее в документации.
--------- Ни о чём не жалею!
Ответ отправил: METALLDOCTOR (статус: 4-ый класс)
Ответ отправлен: 11.07.2006, 13:24
Вопрос № 48.817
Добрый день, ув. эксперты...
Возник такой вопрос...
Есть форма, на нее ставлю панель, размер панели маленький. Как реализовать что бы при разворачивании формы и возвращении в исходное положение панель была всегда в центре...
Буду признателен за примеры....
Приложение:
Отправлен: 11.07.2006, 12:55
Вопрос задал: PheanixN (статус: 1-ый класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Проходящий Мимо
Здравствуйте, PheanixN!
Обрабатывать событие формы:
procedure TForm1.FormResize(Sender: TObject);
begin
Panel1.Top := Form1.ClientHeight div 2 - Panel1.Height div 2;
Panel1.Left := Form1.ClientWidth div 2 - Panel1.Width div 2;
end;
--------- Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 6-ой класс)
Ответ отправлен: 11.07.2006, 13:05 Оценка за ответ: 4
Отвечает: Physicist
Здравствуйте, PheanixN!
Нужно обрабатывать изменение размера формы и изменять при этом положение (а можно и размер) остальных компонентов. В приложении есть пример.
Приложение:
Ответ отправил: Physicist (статус: 4-ый класс)
Ответ отправлен: 11.07.2006, 13:06 Оценка за ответ: 4
Отвечает: Татьяна
Здравствуйте, PheanixN!
Если я вас правильно поняла и вы изначально ставите ее в центр, то чтобы она была тех же размеров и всегда была в центре при разворачивании необходимо в свойствах панели в свойстве Anchors установить все четыре опции в false (akLeft,akRigth...)
--------- Возможно все. И ничего возможно тоже.
Ответ отправила: Татьяна (статус: Студент)
Ответ отправлен: 11.07.2006, 13:13 Оценка за ответ: 5
Вопрос № 48.839
Здраствуй народ. Есть файлы типа XML, в них находится список. Скажите как мне в Delphi 7 получить данные из этих файлов? Я не разбирался раньше с эти - нужды небыло, а сейчас появилась. Где почитать про это?
Отвечает: Melamed
Здравствуйте, Карасев Алексей Александрович!
Используйте компонент TXMLDocument вкладка Internet в палитре компонентов. А прочитать про этот компонент
можно в справке Delphi
Ответ отправил: Melamed (статус: 2-ой класс)
Ответ отправлен: 11.07.2006, 17:36 Оценка за ответ: 1 Комментарий оценки: Никогда не ставил оценок, но хочется спросить, что нет разницы между справочником и технологией?
Отвечает: PheanixN
Здравствуйте, Карасев Алексей Александрович!
В Delphi 7 есть компоненты для работы с этим форматом файлов. Прочитать все можно в справке Delphi или набрать в поисковике "Delphi использование XML"
Есть хорошая справка с примерами на русском языке Delphi World 6 Pro, правда занимает около 30 метров. Но если скачаете - не пожалеете.
Ответ отправил: PheanixN (статус: 1-ый класс)
Ответ отправлен: 11.07.2006, 17:41
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Карасев Алексей Александрович!
Во-первых, вам надо использоватьTXMLDOcument. Про такие очевидные методы, как LoadFromFile и подобные им я вам не буду рассказывать.
В XML используется технология DOM - Documnet Object Model. Т.е. струткура объекта - это дерево, как структура каталогов на диске.
соотв. вам понадобится DOM или XML Parser (не помню, как он там называется). Обращение к корню дерева происходит не помню как, но как-то просто. А от любой точки, на уровень ниже: enumearteChilds.elements[i];
Структуру документа можно оценить визуально, если посмотреть, как вложены друг в друга теги.