laifik |
Отправлено: 09.10.2003, 14:47 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 70
|
Возможно ли вставить рисунок gif в компонент Image? Хотя он не поддерживает такого расширения. А чем можно и можно ли? |
|
Admin |
Отправлено: 10.10.2003, 09:40 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Можно, вставляйте.
Расширение поддерживает.
С сайта:
http://bcbdev.ru/codesamples/vcl/standardg...gincbuilder.htm
CODE |
Для того, чтобы использовать стандартные компоненты для работы с файлами gif и jpeg в C++Builder, необходимо зарегистрировать данные типы файлов. Для регистрации напишите следующий код.
Для jpeg.
TPicture *Picture = new TPicture();
Picture->RegisterFileFormat(__classid(TJPEGImage), "jpg", "jpg", __classid(TJPEGImage));
delete Picture;
Для gif.
TPicture *Picture = new TPicture();
Picture->RegisterFileFormat(__classid(TGIFImage), "gif", "gif", __classid(TGIFImage));
delete Picture;
|
|
|
** laifik |
Отправлено: 13.10.2003, 11:05 |
|
Не зарегистрирован
|
К сожалению, мало что поняла из Вашей подсказки. Так серьезно с форматами не работала, поэтому не знаю, где происходит регистрация такого рода файлов. Если можно какой-нибудь простенький примерчик.
В свою очередь, gif-файл я загрузила с помощью CppWebBrowser, но у этого компонента невозможно отключить вертикальную полосу прокрутки. А это мне не к чему. |
|
Borgir |
Отправлено: 13.10.2003, 11:40 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 48
|
Странно. У меня TImage все поддерживает без всяких регистраций... |
|
Admin |
Отправлено: 13.10.2003, 12:01 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Пишем код:
CODE |
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("c:\\MyPicture.gif");
} |
Получаем ошибку во время работы приложения:
Unknown picture file extension
Пользуемся подсказкой, пишем код:
CODE |
#include <RxGIF.hpp> // включаем описание TGIFImage из библиотеки RXLib
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
// регистрируем .gif
TPicture *Picture = new TPicture();
Picture->RegisterFileFormat(__classid(TGIFImage), "gif", "gif",__classid(TGIFImage));
delete Picture;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("c:\\MyPicture.gif");
}
//-------------------------------------------
|
Теперь все работает нормально.
---
QUOTE | В свою очередь, gif-файл я загрузила с помощью CppWebBrowser |
Ну это круто. Поздравляю.
Я также всегда стараюсь — не мытьем так катаньем, главное чтобы
работало. Правильный принцип.
Нормальные герои всегда идут в обход.
Отредактировано Admin — 13/10/2003, 13:56
|
|
** laifik |
Отправлено: 13.10.2003, 13:37 |
|
Не зарегистрирован
|
Думала, сейчас все получится. Но, оказывается, библиотека тащит ряд других, которые я уже скачала. А вот зависла на VCLUtils.hpp, которая находится в патчах. Патч на 6 Builder почему-то не раскрывается. Сейчас качаю другой. Но уже нет уверенности, что и этот сработает. Если можете, скинте, пожалуйста, на адрес:
laifik@mail333.com файл VCLUtils.hpp. Заранее благодарю. |
|
Admin |
Отправлено: 13.10.2003, 15:49 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Отправил, но возможно понадобиться не только этот файл
но и установка компонентов RXLib, что и советую сделать.
Также скинул все vclutils.* в http://cbuilder.ru/Upload
Отредактировано Admin — 13/10/2003, 16:58
|
|
** laifik |
Отправлено: 14.10.2003, 09:34 |
|
Не зарегистрирован
|
Чувствую, залезла в дебри. Вопросов рождается все больше и больше. Уж если сможете, Владимир, помогите дойти до конца.
Во-первых, как устанавливаются компоненты RXLib. Уже давно хочу это сделать, но нигде не описано.
Во-вторых, добавляя #include в список она начинает "соперничать" с какой-то другой утилитой и выдает ошибку;
Ambiguite 'Dialogs' and 'Word-2k::Dialogs', после чего указывает на строку утилиты Vclutils:
extern PACKAGE Word __fastcall MsgDlg(const AnsiString Msg, Dialogs::TMsgDlgType AType, Dialogs::TMsgDlgButtons AButtons, int HelpCtx);
Вот тут я ничего не понимаю. Пробовала отключить все утилиты, они самообразовывались, но ошибка остается. На этой форме компонентов Word нет, есть на другой. Как найти ту утилиту, которая дублирует Vclutils.hpp? |
|
** laifik |
Отправлено: 14.10.2003, 10:10 |
|
Не зарегистрирован
|
За это время все-таки попыталась установить компоненты RXLib под 6 Билдер. Но они встали как-то криво. Не совсем понимаю фразу:
3 Пропишите в C++Builder6 путь к разархивированной папке ..\RX\units
(те если вы разархивировали в C:\Program Files\Borland\CBuilder6\RX,
этот путь будет C:\Program Files\Borland\CBuilder6\RX\units)
В каком месте программы это делается?
Вторая проблема осталась без изменения. Файл не могу скомпелировать. |
|
Admin |
Отправлено: 14.10.2003, 13:59 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
QUOTE |
В каком месте программы это делается?
|
Это делается не в программе а в среде C++Builder:
Tools->EnvironmentOptions->Library->LibraryPath
Project->Options->Directories/Conditionals->Include Path
Project->Options->Directories/Conditionals->Library Path
Вопросы по установке RXLib -
на Admin через PM или на support@rxlib.ru
|
|
laifik |
Отправлено: 14.10.2003, 14:44 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 70
|
Владимир, спасибо огромное! Я уже ранее догадалась и установила компоненты, а затем попробовала через RxGIFAnimator. Так оказалось даже проще. Строку, на которую ссылалась утилита, я отключила, и все заработало. Я это делала и раньше, но, видимо, из-за отсутствия библиотек это не срабатывало.
Думаю, наш диалог поможет многим. Паралельно со мною, на других форумах люди этим вопросом тоже интересуются. |
|