Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.04.03;
Скачать: CL | DM;

Вниз

Вопрос по преобразованию типов переменных (TImage и FILE)   Найти похожие ветки 

 
Pcrepair ©   (2011-01-04 11:41) [0]

Часть кода:
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
begin
   Form1.Image1:= Pic1; //типа присвоить компоненте значение ПЕРЕМ?
end;
Компилятор говорит: Е2010 несовместимые типы TImage и FILE
Где же ошибка? А вообще работоспособна ли такая конструкция?


 
Ega23 ©   (2011-01-04 11:52) [1]


> А вообще работоспособна ли такая конструкция?


Нет.
var
 bmp: TBitmap;
begin
 if not OpenDialog1.Execute then Exit;
 bmp := TBitmap.Create;
 try
   bmp.LoadFromFile(OpenDialog1.FileName);

   Image1.Picture.Assign(bmp);  // Вот тут может быть не так, навскидку не помню а Delphi под рукой нет
 finally
   bmp.Free;
 end;
end;


 
_Юрий   (2011-01-04 11:55) [2]

Надо заводить переменную  не типа File (устаревшая конструкция), а переменную типа TBitmap (не забыв создать и разрушить экземпляр).


 
Pcrepair ©   (2011-01-04 15:17) [3]

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


 
KilkennyCat ©   (2011-01-04 15:48) [4]

если это опять студенческое задание, то пофиг, а если нет, то это УЖАСНО!


 
Pcrepair ©   (2011-01-04 18:02) [5]

это не студенческое задание
просто изучаю возможности
ну раз считаешь что это УЖАСТНО, приведи свой вариант
что нужно:
объявить глоб ПЕРЕМ
записать в нее файл
вывести содержимое ПЕРЕМ в ТИмидж


 
Ega23 ©   (2011-01-04 18:09) [6]


> что нужно:
> объявить глоб ПЕРЕМ
> записать в нее файл
> вывести содержимое ПЕРЕМ в ТИмидж


Не нужно. Если это не задание, конечно :)))


 
KilkennyCat ©   (2011-01-04 22:19) [7]


> приведи свой вариант

не буду. ибо есть сомнения, что это не студенческое задание.
но попытка хрен знает скока раза загружать стрим (это ж надо так заумно назвать, цитирую: // далее идет самостоятельный, работающий код, отображение граф. Файла в компоненте при загрузке с ЖД напрямую, без диалога и размещения файла в ПЕРЕМ и поместить в табшит шоу...), который может и не создаться никогда.


 
Pcrepair ©   (2011-01-05 09:46) [8]

а откуда такая нелюбовь к студенческим заданиям?
складывается впечетление что ты просто ничего не понял, но возможно это Я не достаточно хорошо объяснил
в любом случае уже все работает, читай (3)


 
Andy BitOff ©   (2011-01-05 14:17) [9]

Не любовь не к заданиям, а к недостудентам, которые нифига не делают и не учатся, а потом бегают по форумам и клянчут код.


 
Студент   (2011-01-09 06:14) [10]


> Form1.Image1:= Pic1;


Какой кошмар... Вы в курсе что TImage есть класс, а Image1 - экземпляр класса (а если совсем точно, то указатель на него)?

Попробуйте работать с просто массивом пикселей... Или типа того... Непонятно просто что именно Вам вообще требуется...



Страницы: 1 вся ветка

Текущий архив: 2011.04.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
15-1293004269
Медвежонок ХМЛ
2010-12-22 10:51
2011.04.03
500 кин онлайн от мосфильма


1-1251461342
dmitry_12_08_73
2009-08-28 16:09
2011.04.03
Проверка видимости контекстного меню


15-1292442257
PS
2010-12-15 22:44
2011.04.03
Помогите перевести с инглиша


15-1292779384
Германн
2010-12-19 20:23
2011.04.03
Анекдоты из жизни артистов МХАТ


2-1294224895
nil
2011-01-05 13:54
2011.04.03
загрузка res-файлов