Yorumları: 7
Konuları: 3
Kayıt Tarihi: 07-08-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 0 Başlangıç
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
Yorumları: 16
Konuları: 2
Kayıt Tarihi: 22-05-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 99 Başlangıç
07-10-2019, Saat: 17:47
(Son Düzenleme: 07-10-2019, Saat: 17:57, Düzenleyen: TescilsizUzman.)
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
Yorumları: 7
Konuları: 3
Kayıt Tarihi: 07-08-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 0 Başlangıç
09-10-2019, Saat: 17:23
(Son Düzenleme: 09-10-2019, Saat: 17:23, Düzenleyen: bsogulcan.)
(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 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 teşekkür ederim
|