Разработать программу для просмотра рисунков. Программа должна отражать рисунок, загруженный с помощью стандартного диалогового окна обзора. Кроме того, любой рисунок должен быть связан с данной программой, и открываться ней по двойному щелчку мыши или нажатию клавиши <Enter> в Проводнике или любой кому друг файлменеджер.

Направьте меня на путь истинный... Каким способом лучше связать картинки и программу... Пишите свои советы, может кто уже видел такое в нете, пишите... По крайней мере я не нашел(

Решение:

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Buttons, ExtDlgs, jpeg, Registry, ShlObj;

type
  TForm1 = class(TForm)
    pnl1: TPanel;
    pnl2: TPanel;
    pnl3: TPanel;
    img1: TImage;
    btn2: TSpeedButton;
    btn3: TSpeedButton;
    btn1: TBitBtn;
    dlgOpenPic1: TOpenPictureDialog;
    chk1: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure chk1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  dir: string;
  PicturesName: array of string;
  Count: Integer;
  Reg: TRegistry;

implementation

{$R *.dfm}

function Load(FName:string): boolean;
begin
  form1.img1.Picture.LoadFromFile(FName);
end;


procedure Associate;
var s:string;
begin
  dir:=ExtractFileDir(Application.ExeName);
  Reg:=TRegistry.Create;
  Reg.RootKey := HKEY_CLASSES_ROOT; 

  Reg.OpenKey('.jpg\OpenWithProgids\', true);
  Reg.WriteString('TestApplication.jpg', '');

  Reg.OpenKey('\TestApplication.jpg\DefaultIcon\', true);
  s:=dir+Application.ExeName+',0';
  Reg.WriteString('', s);

  Reg.OpenKey('\TestApplication.jpg\Shell\Open\', true);
  Reg.WriteString('', 'Îòêðûòü â TestApplication');

  Reg.OpenKey('command\', true);
  s:=dir+Application.ExeName+'" "%1"';
  Reg.WriteString('', s);

  Reg.Free;

  SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;

procedure DeleteAssociate;
begin
  Reg:=TRegistry.Create;
  Reg.RootKey := HKEY_CLASSES_ROOT;

  reg.DeleteKey('.jpg');
  reg.DeleteKey('TestApplication.jpg');

  Reg.Free;

  SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  if ParamCount <> 0 then Load(ParamStr(1));
end;



procedure TForm1.chk1Click(Sender: TObject);
begin
  if(chk1.Checked) then
  Associate else
  DeleteAssociate;
end;

end.