Регистрация расширений происходит через реестр. Ниже приведен пример, который открывает написанную вами программу для файлов с расширениями TXT.
Uses
.., Registry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey('.txt',True);
Reg.WriteString('','txtfile');
Reg.CloseKey;
Reg.OpenKey('txtfile',True);
Reg.WriteString('','Текстовый документ');
Reg.OpenKey('DefaultIcon',True);
Reg.WriteString('',ParamStr(0)+',0');
Reg.CloseKey;
Reg.OpenKey('txtfileshellopencommand',True);
Reg.WriteString('',ParamStr(0)+' %1');
Reg.Free;
end
;