Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2011, 12:29   #1
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию Вопрос по преобразованию типов переменных (TImage и FILE)

Часть кода:
var
Form1: TForm1;
Pic1: File; // объявление глобальной ПЕРЕМ типа файл
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute and FileExists(OpenDialog1.FileName) then //выбираем нужный граф. файл
begin
AssignFile(Pic1, OpenDialog1.FileName); //грузим выбранный файл в ПЕРЕМ
reset(Pic1); //разрешаем чтение файла
end;
end;
// далее идет самостоятельный, работающий код, отображение граф. Файла в компоненте при загрузке с ЖД напрямую, без диалога и размещения файла в ПЕРЕМ
procedure TForm1.TabSheet2Show(Sender: TObject);
begin
Form1.Image1.Picture.LoadFromFile(' E:\Study\Lesson_10\1.bmp');
end;
// далее идет пока не работающий код. Задача: при помощи диалога поместить файл в ПЕРЕМ и при переходе на страницу(по событию OnShow) отобразить граф файл в компоненте TImage
procedure TForm1.TabSheet2Show(Sender: TObject);
begin
Form1.Image1:= Pic1; //типа присвоить компоненте значение ПЕРЕМ?
end;
Компилятор говорит: Е2010 несовместимые типы TImage и FILE
Где же ошибка? А вообще работоспособна ли такая конструкция?
Pcrepair вне форума Ответить с цитированием
Старый 04.01.2011, 12:39   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а что потоки (TFileStream) не катят?
VCL не рассчитана на паскалевские операторы ввода/вывода.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.01.2011, 12:51   #3
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
Pic1: TFileStream;

Pic1 := TFileStream.Create('файло', fmOpenRead);
Image1.Picture.Bitmap.LoadFromStream(Pic1);
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 04.01.2011, 15:15   #4
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию получилось

получилось так:
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute and FileExists(OpenDialog1.FileName) then
begin
Pic1 := TFileStream.Create(OpenDialog1.File Name, fmOpenRead);
end;
end;
procedure TForm1.TabSheet2Show(Sender: TObject);
begin
Image1.Picture.Bitmap.LoadFromStrea m(Pic1);
end;
правда при компиляции компиляции вылетет ошибка (ошибка доступа к памяти), но то что нужно (запись файла в глоб.ПЕРЕМ и отображение) работает
Всем спасибо
Pcrepair вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа по преобразованию изображения smopromote Фриланс 4 22.07.2010 09:05
Преобразование типов переменных Guguzjaka Общие вопросы C/C++ 5 30.11.2009 18:45
Размер переменных базовых типов. Defa4ka Помощь студентам 2 06.09.2009 01:46
Значение типов переменных MAKEDON Общие вопросы Delphi 8 17.07.2008 11:24
Перевод переменных разных типов LeoN Общие вопросы Delphi 3 23.03.2007 00:15