Главная страница
    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
15-1292844027
George
2010-12-20 14:20
2011.04.03
Почитать бы


2-1294420329
vnutr
2011-01-07 20:12
2011.04.03
Помогите со stringgrid ом


15-1291820463
Артём
2010-12-08 18:01
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-файлов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский