Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.04.03;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по преобразованию типов переменных (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
2-1294230079
IStream
2011-01-05 15:21
2011.04.03
IStream


15-1292536050
George
2010-12-17 00:47
2011.04.03
Delphi, PHP и md5


1-1251462479
Unknown user
2009-08-28 16:27
2011.04.03
Укрощение формы прогресса.


2-1292609220
Oleg_teacher
2010-12-17 21:07
2011.04.03
PNG+Delphi


1-1251447036
znayu
2009-08-28 12:10
2011.04.03
ESC коды управления матричным принтером





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский