Использование диалогов для загрузки и сохранения графических файлов
procedure TForml.SavePictureDialoglTypeChange(Sender: TObject); var ParentHandle:THandle;wRect:TRect; PicPanel,PaintPanel:TPanel;JEdit: TEdit; Expanded: boolean; begin With Sender as TSavePictureDialog do begin PicPanel: = (FindComponent('PicturePanel') as TPanel); if not Assigned(PicPanel) then Exit; ParentHandle: = GetParent(Handle); PaintPanel: = (FindComponent('PaintPanel') as TPanel); PaintPanel.Align: = alNone; Expanded: = FindComponent('JLabel') <> nil; if Filterlndex >1 then begin if not Expanded then begin GetWindowRect(ParentHandle,WRect); SetWindowPos(ParentHandle,0.0.0, WRect.Right-WRect.Left, WRect.Bottom-WRect.Top+DeltaH, SWP_NOMOVE+SWP_NOZORDER); GetWindowRect(Handle,WRect); SetWindowPos(handle,0.0.0,WRect.Right- WRect.Left, WRect.Bottom-WRect.Top+DeltaH, SWP_NOMOVE+SWP_NOZORDER); Expanded: = True; PicPanel.Height: = PicPanel.Height+DeltaH; if FindComponent('JLabel')=nil then with TLabel.Create(Sender as TSavePictureDialog) do begin Parent: = PicPanel; Name: = 'JLabel'; Caption: = 'Quality'; Left: = 5; Height: = 25; Top: = PaintPanel.Top+PaintPanel.Height+5; end; if FindComponent('JEdit')=nil then begin JEdit: = TEdit.Create(Sender as TSavePictureDialog); with JEdit do begin Parent: = PicPanel; Name: = 'JEdit'; Text: = '75'; Left:-50;Width: = 50; Height: = 25; Top: = PaintPanel.Top+PaintPanel.Height+5; end; end; if FindComponent('JUpDown')=nil then with TUpDown.Create(Sender as TSavePictureDialog) do begin Parent: = PicPanel; Name: = 'JUpDown'; Associate: = JEdit; Increment: = 5; Min: = 1; Max: = 100; Position: = 75; end; if FindComponent('JCheck')=nil then with TCheckBox.Create(Sender as TSavePictureDialog) do begin Name: = 'JCheck'; Caption: = 'Progressive Encoding'; Parent: = PicPanel; Left: = 5;Width: = PicPanel.Width – 10; Height: = 25; Top: = PaintPanel.Top+PaintPanel.Height+35; end; end; end else SavePictureDialoglClose(Sender); end; end;