OpenDialog +сохранение файла

Aleksandr_V
Дата: 06.05.2011 14:07:55
Доброго времени суток!

Подскажите пожалуйста по компоненту OpenPictureDialog.

Открываю при помощи OpenPictureDialog файл JPEG и засовываю его в TImage. Дальше мне необходимо этот файл сохранить в директорию image с названием temp.jpg. Файл в директории появляется, но он не читаемый. И его объем 0 кб.

procedure TForm1.Button1Click(Sender: TObject);
begin
OpenPictureDialog1.Filter := '*.jpg';
if OpenPictureDialog1.Execute then
begin
TImage.Picture.LoadFromFile(OpenPictureDialog1.filename);
jpg := TJpegImage.Create;
jpg.Assign(ImageContact.picture.graphic);
jpg.CompressionQuality := 45;
jpg.Compress;
jpg.free;
jpg.SaveToFile(''+GetCurrentDir+'\image\temp.jpg');
end;
end;


самое интересное что, если код присвоения вынести в отдельную кнопку, например:

procedure TForm1.Button2Click(Sender: TObject);
begin
TImage.Picture.LoadFromFile(OpenPictureDialog1.filename);
jpg := TJpegImage.Create;
jpg.Assign(ImageContact.picture.graphic);
jpg.CompressionQuality := 45;
jpg.Compress;
jpg.free;
jpg.SaveToFile(''+GetCurrentDir+'\image\temp.jpg');
end;

то файл в директории появляется уже в нормальном виде. Т.е. сначала выбирается файл при помощи Button1, а потом нажатием Button2 сохраняется. Я подозреваю что надо как то освобождать OpenPictureDialog1. OpenPictureDialog1.Free не помогает.
Мимопроходящий
Дата: 06.05.2011 14:14:59

Hello, Aleksandr_V!
You wrote on 6 мая 2011 г. 11:07:55:

Aleksandr_V
> jpg.free;
> jpg.SaveToFile(''+GetCurrentDir+'\image\temp.jpg');
йуморизд...

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4

DimaBr
Дата: 06.05.2011 14:16:31
ImageContact.Picture.LoadFromFile(OpenPictureDialog1.filename);
FlyD
Дата: 06.05.2011 14:17:16
Мимопроходящий
Hello, Aleksandr_V!
You wrote on 6 мая 2011 г. 11:07:55:

Aleksandr_V
> jpg.free;
> jpg.SaveToFile(''+GetCurrentDir+'\image\temp.jpg');
йуморизд...

--
With best regards, Мимопроходящий.
пятницо аднака
Aleksandr_V
Дата: 06.05.2011 14:20:05
DimaBr
ImageContact.Picture.LoadFromFile(OpenPictureDialog1.filename);


Сори... Там TImage.Picture.LoadFromFile(OpenPictureDialog1.filename);

ImageContact нечайно затесалось
FlyD
Дата: 06.05.2011 14:20:27
Aleksandr_V
...
самое интересное что, если код присвоения вынести в отдельную кнопку, например:
...
то файл в директории появляется уже в нормальном виде. Т.е. сначала выбирается файл при помощи Button1, а потом нажатием Button2 сохраняется. Я подозреваю что надо как то освобождать OpenPictureDialog1. OpenPictureDialog1.Free не помогает.
начните с простейшего: учите матчасть (книги, хелп и т.д.)
а то напоминает басню Крылова "мартышка и очки"
DimaBr
Дата: 06.05.2011 14:21:51
Это тоже нечайно местами поменялось ?
jpg.free;
jpg.SaveToFile(''+GetCurrentDir+'\image\temp.jpg');
Aleksandr_V
Дата: 06.05.2011 14:22:19
Мимопроходящий
Hello, Aleksandr_V!
You wrote on 6 мая 2011 г. 11:07:55:

Aleksandr_V
> jpg.free;
> jpg.SaveToFile(''+GetCurrentDir+'\image\temp.jpg');
йуморизд...

--
With best regards, Мимопроходящий.



А здесь вот так:

procedure TForm1.Button1Click(Sender: TObject);
begin
OpenPictureDialog1.Filter := '*.jpg';
if OpenPictureDialog1.Execute then
begin
TImage.Picture.LoadFromFile(OpenPictureDialog1.filename);
jpg := TJpegImage.Create;
jpg.Assign(ImageContact.picture.graphic);
jpg.CompressionQuality := 45;
jpg.Compress;
jpg.SaveToFile(''+GetCurrentDir+'\image\temp.jpg');
jpg.free;
end;
end;

Это я с другой кнопки скопировал. Там не правильно было. Вообщем не работает )))
FlyD
Дата: 06.05.2011 14:22:29
Aleksandr_V
Сори... Там TImage.Picture.LoadFromFile(OpenPictureDialog1.filename);
что по-вашему этот код делает?
FlyD
Дата: 06.05.2011 14:23:57
ЗЫ для ясности
  TImage.Picture.LoadFromFile(OpenPictureDialog1.filename);