Иллюстрированный самоучитель по Delphi 7 для профессионалов

Использование диалогов для загрузки и сохранения графических файлов

procedure TForml.ImagelProgress(Sender: TObject; Stage: TProgressStage;
PercentDone: Byte; RedrawNow: Boolean; const R: TRect;
const Msg: String);
begin
case Stage of psStarting:
begin
Progressbarl.Position: = 0;
Progressbarl.Max: = 100;
end;
psEnding: begin
Progressbarl.Position: = 0;
end;
psRunning: begin
Progressbarl.Position: = PercentDone;
end;
end;
end;
procedure TForml.SavePictureDialoglClose(Sender: TObject);
var PicPanel: TPanel; ParentHandle: THandle; WRect: TRect;
begin
With Sender as TSavePictureDialog do
begin
PicPanel: = (FindComponent('PicturePanel') as TPanel);
if not Assigned(PicPanel) then Exit; ParentHandle: = GetParent(Handle);
if ParentHandle=0 then Exit;
if FindComponent('JLabel')onil then
begin
FindComponent('JLabel').Free;
FindComponent('JEdit').Free;
ProgressiveEnc: = (FindComponent('JCheck1) as TCheckBox).Checked; FindComponent('JCheck').Free;
Quality: = (FindComponent('JUpDown') as TUpDown).Position; FindComponent('JUpDown').Free;
PicPanel.Height: = PicPanel.Height-DeltaH;
GetWindowRect(Handle,WRect);
SetWindowPos(Handle,0.0.0,WRect.Right-WRect.Left, WRect.Bottom-WRect.Top-DeltaH,
SWP_NOMOVE+SWP_NOZORDER); GetWindowRect(ParentHandle,WRect);
SetWindowPos(ParentHandle,0.0.0,
WRect.Right-WRect.Left, WRect.Bottom-WRect.Top-DeltaH,
SWP_NOMOVE+SWP_NOZORDER); Filterlndex: = 1;
end;
end;
end;
procedure TForml.FormCreate(Sender: TObject);
var s: string;
begin
s: = GraphicFilter(TBitmap)+'|'+
GraphicFilter(TJpeglmage);
OpenPictureDialogl.Filter: = s;
SavePictureDialogl.Filter: = s;
end;
procedure TForml.SavePictureDialoglShow(Sender: TObject);
begin
with Sender as TSavePictureDialog do
begin
if FindComponent('JLabel')Onil then
begin
FilterIndex: = 2;
SavePictureDialoglTypeChange(Sender);
end;
end;
end;
end.

Приведенный пример может послужить толчком, во-первых, к углубленному изучению формата JPEG, а во-вторых, – к модификации стандартных диалогов. На его базе можно создать диалоги открытия аудиозаписей, документов и других специализированных видов файлов.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.