Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
ShareSheetAction ile döküman paylaşmak mümkün mü?
#1
Herkese iyi çalışmalar dilerim

Sürdürmekte olduğum projem için rapor oluşturup paylaşmak istiyorum, oluşturduğum raporu png olarak TImage ile gösterip ShowShareSheetAction ile pngyi paylaşabiliyorum. Fakat yapmak istediğim veritabanında binary cinsinde tuttuğum pdfleri döküman olarak göndermek. 

Kullandığım kod:
ShowShareSheetAction.Bitmap:=Image1.Bitmap;

Stream oluşturup 
Stream := qryGenel.CreateBlobStream(qryGenel.FieldByName('Rapor'), bmRead);
ShowShareSheetAction.Bitmap.LoadFromStream(Stream );

Kodun bu kısmında bitmape yüklerken hata alıyorum pdfi.
Yardımlarınızı bekliyorum Smile
Cevapla
#2
Merhaba,

Aşağıdaki kodda image harici dosyaların paylaşılabilirliği sağlanmış fakat Android ve Windows tarafında. iOS ile ilgili bir talebiniz varsa biraz araştırmak gerekiyor. 

unit share_text;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes,
  System.Variants, FMX.Types, FMX.Controls, FMX.Forms,
  FMX.Graphics, FMX.Dialogs, System.IOUtils, FMX.StdCtrls

  {$IFDEF Android}
  , Androidapi.JNI.Os
  , Androidapi.JNI.GraphicsContentViewText
  , Androidapi.JNI.JavaTypes
  , Androidapi.Helpers
  , Androidapi.JNI.Net
  , Androidapi.JNI.Webkit
  {$ENDIF}
  {$IF DEFINED (MSWINDOWS)}
  , ShellApi
  , Windows
  {$ENDIF}

  ;

type
  TForm1 = class(TForm)
    cmdShare: TButton;
    procedure cmdShareClick(Sender: TObject);
    procedure ShareFile (file_name: string);
  private
    { Private declarations }
    {$IFDEF Android}
      an_intent: JIntent;
      function findMimeType (file_extension : string) : JString;
    {$ENDIF}

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

{$IFDEF Android}
function TForm1.findMimeType (file_extension : string) : JString;
begin
    file_extension := StringReplace (file_extension, '.', '', []);
    result := TJMimeTypeMap.JavaClass.getSingleton.getMimeTypeFromExtension
        (StringToJString (file_extension));
end;
{$ENDIF}

procedure TForm1.ShareFile (file_name: string);
  {$IFDEF Android}
  var
      fileuri: JParcelable;
  {$ENDIF}
begin
  {$IFDEF Android}
    an_intent := TJIntent.Create;
    an_intent.setAction (TJIntent.JavaClass.ACTION_SEND);
    an_intent.setType (findMimeType (TPath.GetExtension (file_name)));
    fileuri := JParcelable (TJNet_Uri.JavaClass.fromFile
      (TJFile.JavaClass.init (StringToJString (file_name))));
    an_intent.putExtra (TJIntent.JavaClass.EXTRA_STREAM, fileuri);
    SharedActivity.startActivity (TJIntent.JavaClass.createChooser
      (an_intent, StrToJCharSequence ('Share With')));
  {$ENDIF}
  {$IF DEFINED (MSWINDOWS)}
    ShellExecute (0, 'open', PChar (file_name), nil, nil, SW_SHOWNORMAL);
  {$ENDIF}
end;

procedure TForm1.cmdShareClick(Sender: TObject);
var
    file_name : string;
    a_file : TextFile;
begin
    file_name := System.IOUtils.TPath.GetTempPath +
        System.IOUtils.TPath.DirectorySeparatorChar + 'text_file.txt';

    // open a file for writing
    AssignFile (a_file, file_name);
    ReWrite (a_file);

    // write to a file
    WriteLn (a_file, 'share a text file on a mobile device');

    // close the file
    CloseFile (a_file);

    ShareFile (file_name);
end;

end.


Kaynak : http://aziga.x10.mx/delphi/index.php?opt...&Itemid=27
Cevapla
#3
(07-10-2019, Saat: 17:47)caoster Adlı Kullanıcıdan Alıntı: Merhaba,

Aşağıdaki kodda image harici dosyaların paylaşılabilirliği sağlanmış fakat Android ve Windows tarafında. iOS ile ilgili bir talebiniz varsa biraz araştırmak gerekiyor. 

unit share_text;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes,
  System.Variants, FMX.Types, FMX.Controls, FMX.Forms,
  FMX.Graphics, FMX.Dialogs, System.IOUtils, FMX.StdCtrls

  {$IFDEF Android}
  , Androidapi.JNI.Os
  , Androidapi.JNI.GraphicsContentViewText
  , Androidapi.JNI.JavaTypes
  , Androidapi.Helpers
  , Androidapi.JNI.Net
  , Androidapi.JNI.Webkit
  {$ENDIF}
  {$IF DEFINED (MSWINDOWS)}
  , ShellApi
  , Windows
  {$ENDIF}

  ;

type
  TForm1 = class(TForm)
    cmdShare: TButton;
    procedure cmdShareClick(Sender: TObject);
    procedure ShareFile (file_name: string);
  private
    { Private declarations }
    {$IFDEF Android}
      an_intent: JIntent;
      function findMimeType (file_extension : string) : JString;
    {$ENDIF}

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

{$IFDEF Android}
function TForm1.findMimeType (file_extension : string) : JString;
begin
    file_extension := StringReplace (file_extension, '.', '', []);
    result := TJMimeTypeMap.JavaClass.getSingleton.getMimeTypeFromExtension
        (StringToJString (file_extension));
end;
{$ENDIF}

procedure TForm1.ShareFile (file_name: string);
  {$IFDEF Android}
  var
      fileuri: JParcelable;
  {$ENDIF}
begin
  {$IFDEF Android}
    an_intent := TJIntent.Create;
    an_intent.setAction (TJIntent.JavaClass.ACTION_SEND);
    an_intent.setType (findMimeType (TPath.GetExtension (file_name)));
    fileuri := JParcelable (TJNet_Uri.JavaClass.fromFile
      (TJFile.JavaClass.init (StringToJString (file_name))));
    an_intent.putExtra (TJIntent.JavaClass.EXTRA_STREAM, fileuri);
    SharedActivity.startActivity (TJIntent.JavaClass.createChooser
      (an_intent, StrToJCharSequence ('Share With')));
  {$ENDIF}
  {$IF DEFINED (MSWINDOWS)}
    ShellExecute (0, 'open', PChar (file_name), nil, nil, SW_SHOWNORMAL);
  {$ENDIF}
end;

procedure TForm1.cmdShareClick(Sender: TObject);
var
    file_name : string;
    a_file : TextFile;
begin
    file_name := System.IOUtils.TPath.GetTempPath +
        System.IOUtils.TPath.DirectorySeparatorChar + 'text_file.txt';

    // open a file for writing
    AssignFile (a_file, file_name);
    ReWrite (a_file);

    // write to a file
    WriteLn (a_file, 'share a text file on a mobile device');

    // close the file
    CloseFile (a_file);

    ShareFile (file_name);
end;

end.


Kaynak : http://aziga.x10.mx/delphi/index.php?opt...&Itemid=27

Dostum incelemiştim bu linki ama işime yarayacağını anlayamamıştım Smile teşekkür ederim

(07-10-2019, Saat: 17:47)caoster Adlı Kullanıcıdan Alıntı: Merhaba,

Aşağıdaki kodda image harici dosyaların paylaşılabilirliği sağlanmış fakat Android ve Windows tarafında. iOS ile ilgili bir talebiniz varsa biraz araştırmak gerekiyor. 

unit share_text;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes,
  System.Variants, FMX.Types, FMX.Controls, FMX.Forms,
  FMX.Graphics, FMX.Dialogs, System.IOUtils, FMX.StdCtrls

  {$IFDEF Android}
  , Androidapi.JNI.Os
  , Androidapi.JNI.GraphicsContentViewText
  , Androidapi.JNI.JavaTypes
  , Androidapi.Helpers
  , Androidapi.JNI.Net
  , Androidapi.JNI.Webkit
  {$ENDIF}
  {$IF DEFINED (MSWINDOWS)}
  , ShellApi
  , Windows
  {$ENDIF}

  ;

type
  TForm1 = class(TForm)
    cmdShare: TButton;
    procedure cmdShareClick(Sender: TObject);
    procedure ShareFile (file_name: string);
  private
    { Private declarations }
    {$IFDEF Android}
      an_intent: JIntent;
      function findMimeType (file_extension : string) : JString;
    {$ENDIF}

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

{$IFDEF Android}
function TForm1.findMimeType (file_extension : string) : JString;
begin
    file_extension := StringReplace (file_extension, '.', '', []);
    result := TJMimeTypeMap.JavaClass.getSingleton.getMimeTypeFromExtension
        (StringToJString (file_extension));
end;
{$ENDIF}

procedure TForm1.ShareFile (file_name: string);
  {$IFDEF Android}
  var
      fileuri: JParcelable;
  {$ENDIF}
begin
  {$IFDEF Android}
    an_intent := TJIntent.Create;
    an_intent.setAction (TJIntent.JavaClass.ACTION_SEND);
    an_intent.setType (findMimeType (TPath.GetExtension (file_name)));
    fileuri := JParcelable (TJNet_Uri.JavaClass.fromFile
      (TJFile.JavaClass.init (StringToJString (file_name))));
    an_intent.putExtra (TJIntent.JavaClass.EXTRA_STREAM, fileuri);
    SharedActivity.startActivity (TJIntent.JavaClass.createChooser
      (an_intent, StrToJCharSequence ('Share With')));
  {$ENDIF}
  {$IF DEFINED (MSWINDOWS)}
    ShellExecute (0, 'open', PChar (file_name), nil, nil, SW_SHOWNORMAL);
  {$ENDIF}
end;

procedure TForm1.cmdShareClick(Sender: TObject);
var
    file_name : string;
    a_file : TextFile;
begin
    file_name := System.IOUtils.TPath.GetTempPath +
        System.IOUtils.TPath.DirectorySeparatorChar + 'text_file.txt';

    // open a file for writing
    AssignFile (a_file, file_name);
    ReWrite (a_file);

    // write to a file
    WriteLn (a_file, 'share a text file on a mobile device');

    // close the file
    CloseFile (a_file);

    ShareFile (file_name);
end;

end.


Kaynak : http://aziga.x10.mx/delphi/index.php?opt...&Itemid=27

Dostum incelemiştim bu linki ama işime yarayacağını anlayamamıştım Smile teşekkür ederim
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Geliştirici hesabı olmayan bir telefonda iPhone uygulamasını çalıştırmak mümkün müdür gbg 7 1.800 28-08-2023, Saat: 09:44
Son Yorum: yhackup
  Android platformda excel baglantisi mumkun mu ? 41linea41 5 3.865 01-01-2020, Saat: 14:22
Son Yorum: 41linea41
  Portable program mümkün mü CesuR 1 1.794 28-01-2019, Saat: 14:22
Son Yorum: mcuyan
  Delphi - FireMonkey İçin Genymotion Kullanmak Mümkün mü? Ya da Alternatif Var Mı? İbrahim 0 3.416 19-09-2016, Saat: 00:21
Son Yorum: İbrahim



Konuyu Okuyanlar: 1 Ziyaretçi