Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   PDF/XPS/Papierformat-Viewer für Delphi (https://www.delphipraxis.net/175519-pdf-xps-papierformat-viewer-fuer-delphi.html)

Sir Rufo 29. Jun 2013 07:51

AW: PDF/XPS/Papierformat-Viewer für Delphi
 
Doch, ab Windows XP ist
Delphi-Quellcode:
IPreviewHandler
bekannt

http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

rweinzierl 29. Jun 2013 11:13

AW: PDF/XPS/Papierformat-Viewer für Delphi
 
Hallo

Zitat:

Zitat von TReader (Beitrag 1219908)
Chromium kannst du direkt in die Anwendung einbinden, gibt noch die eine oder andere DLL im Programmverzeichnis mit und die Sache ist unabhängig von Drittkomponenten. Von der Anwendung her ist Chromium sehr einfach. Mich begeistert vor allem die Kommunikation zwischen dem Programm (Delphi) und dem Browser (JavaScript).


Diese Antwort interessiert mich (allerdings unabhängig vom PDF Thema). Was ich bei Chromium hinbekommen habe sind Alerts im Javascript die ich in Delphi dann abfange. Geht, aber besonders schön finde ich das nicht ==> Geht das besser? wenn ja würde ich mich über eine Antwort mit einem kleinen Beispiel freuen.

Danke

Reinhold

creed steiger 29. Jun 2013 13:51

AW: PDF/XPS/Papierformat-Viewer für Delphi
 
schau mal ob du das hier für Delphi gebrauchen kannst

http://forum.lazarus.freepascal.org/...?topic=20221.0

https://github.com/blestan/lazmupdf

https://github.com/blestan/lazmupdf/tree/master/test

jaenicke 29. Jun 2013 14:55

AW: PDF/XPS/Papierformat-Viewer für Delphi
 
Zitat:

Zitat von rweinzierl (Beitrag 1220027)
Was ich bei Chromium hinbekommen habe sind Alerts im Javascript die ich in Delphi dann abfange. Geht, aber besonders schön finde ich das nicht ==> Geht das besser? wenn ja würde ich mich über eine Antwort mit einem kleinen Beispiel freuen.

Das geht ähnlich wie bei TWebBrowser (mit dem External Objekt):
http://stackoverflow.com/questions/6...g-chromium-and

TReader 29. Jun 2013 15:06

AW: PDF/XPS/Papierformat-Viewer für Delphi
 
Zitat:

Zitat von jaenicke (Beitrag 1220055)
Zitat:

Zitat von rweinzierl (Beitrag 1220027)
Was ich bei Chromium hinbekommen habe sind Alerts im Javascript die ich in Delphi dann abfange. Geht, aber besonders schön finde ich das nicht ==> Geht das besser? wenn ja würde ich mich über eine Antwort mit einem kleinen Beispiel freuen.

Das geht ähnlich wie bei TWebBrowser (mit dem External Objekt):
http://stackoverflow.com/questions/6...g-chromium-and

Jetzt warst du zu schnell ;) hatte gerade auch den Link gesucht um ihn hier zu posten. Aber das sollte die Frage ja ausführlich genug beantworten.

rweinzierl 29. Jun 2013 18:22

AW: PDF/XPS/Papierformat-Viewer für Delphi
 
Zitat:

Zitat von TReader (Beitrag 1220058)
Zitat:

Zitat von jaenicke (Beitrag 1220055)
Zitat:

Zitat von rweinzierl (Beitrag 1220027)
Was ich bei Chromium hinbekommen habe sind Alerts im Javascript die ich in Delphi dann abfange. Geht, aber besonders schön finde ich das nicht ==> Geht das besser? wenn ja würde ich mich über eine Antwort mit einem kleinen Beispiel freuen.

Das geht ähnlich wie bei TWebBrowser (mit dem External Objekt):
http://stackoverflow.com/questions/6...g-chromium-and

Jetzt warst du zu schnell ;) hatte gerade auch den Link gesucht um ihn hier zu posten. Aber das sollte die Frage ja ausführlich genug beantworten.


Hallo

Ich habe versucht den Beispielquellcode nachzuvollziehen, leider ohne Erfog. Ich bekomme es zwar durch den Compiler aber dann klappt es leider nicht (ohne Fehlermeldung).

Ich habe einfach meine Unit drangehängt, vielleicht sieht ja jemand auf die schnelle meinen Fehler.

mfg

Reinhold




Delphi-Quellcode:
unit utestCallBack;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, cefvcl,ceflib;

type
  TForm19 = class(TForm)
    crm: TChromium;
    Panel1: TPanel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    procedure RegisterExtension;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

TMyHandler = class(TCefv8HandlerOwn)
protected
  function Execute(const name: ustring; const obj: ICefv8Value;
    const arguments: TCefv8ValueArray; var retval: ICefv8Value;
    var exception: ustring): Boolean; override;
end;

var
  Form19: TForm19;

implementation

{$R *.dfm}


procedure TForm19.RegisterExtension;
var
  Code:string;
begin
  // Register a V8 extension with the below JavaScript code that calls native
  // methods implemented in ClientV8ExtensionHandler.

  Code :=
   'var cef;'+
   'if (!cef)'+
   ' cef = {};'+
   'if (!cef.test)'+
   ' cef.test = {};'+
   '(function() {'+
   ' cef.test.__defineGetter__(''test_param'', function() {'+
   '   native function GetTestParam();'+
   '   return GetTestParam();'+
   ' });'+
   ' cef.test.__defineSetter__(''test_param'', function(b) {'+
   '   native function SetTestParam();'+
   '   if(b) SetTestParam(b);'+
   ' });'+
   ' cef.test.test_object = function() {'+
   '   native function GetTestObject();'+
   '   return GetTestObject();'+
   ' };'+
   '})();';

  CefRegisterExtension('example/v8', Code, TMyHandler.Create as ICefv8Handler);



  end;


procedure TForm19.Button1Click(Sender: TObject);
begin
//Test ob Javascript Aufgruf geht
//  if crm.Browser <> nil then
//    crm.Browser.MainFrame.ExecuteJavaScript(
//      'alert("teste javascript");', 'about:blank', 0);

crm.Browser.MainFrame.ExecuteJavaScript('cef.test.test_object().GetMessage();', 'about:blank', 0);

//  if crm.Browser <> nil then
//    crm.Browser.MainFrame.LoadUrl('www.google.de');
end;

procedure TForm19.FormCreate(Sender: TObject);
begin
RegisterExtension;
end;

{ TMyHandler }

function TMyHandler.Execute(const name: ustring; const obj: ICefv8Value;
  const arguments: TCefv8ValueArray; var retval: ICefv8Value;
  var exception: ustring): Boolean;
begin
  ShowMessage('Execute!');

end;

end.

TReader 30. Jun 2013 10:15

AW: PDF/XPS/Papierformat-Viewer für Delphi
 
Bekommst du das obere Beispiel denn zum Laufen? (das, welches ohne Extensions funktioniert)?

Wir verwenden Delphi<->JavaScript<->Delphi eigentlich nur für Dateizugriffe. Alles andere lösen wir direkt mittels JavaScript.

moonwalk55 30. Jun 2013 13:40

AW: PDF/XPS/Papierformat-Viewer für Delphi
 
Hallo Bernhard,

mit der PDF Anzeige ist das so ein Problem. Die Activex-Komponente von Foxit ist nicht schlecht, leider haben die sehr komische Preisvorstellungen.

Ich verwenden von Gnostice das PDFtoolkit (http://www.gnostice.com/PDFtoolkit_VCL.asp). Damit kann man sich prima einen PDF-Viewer bauen. Es gibt auf der Webseite auch entsprechenden Beispielcode und die Komponente kann 30 Tage getestet werden.

Gruß

moonwalk55

rweinzierl 30. Jun 2013 18:25

AW: PDF/XPS/Papierformat-Viewer für Delphi
 
Zitat:

Zitat von TReader (Beitrag 1220113)
Bekommst du das obere Beispiel denn zum Laufen? (das, welches ohne Extensions funktioniert)?

Wir verwenden Delphi<->JavaScript<->Delphi eigentlich nur für Dateizugriffe. Alles andere lösen wir direkt mittels JavaScript.


Ja geht ohne Fehlermeldung und ohne Exception, nur leider auch ohne die erhoffte Messagebox.

Mir ist klar das ich mich selber nochmals durch die Beispiele kämpfen muss, und das ich nicht erwarten das mir jemand meine Aufgaben auf dem Silbertablet löst. Ich werde mir das ganze am Montag nochmals genauer ansehen vielleicht finde ich ja noch was, mein Problem ist das ich kein logisches Problem habe welches ich debuggen kann, sondern das ich über Try und Error versuche die Sache zu verstehen. (und Chromium ist ja nun wirklich kein kleines Projekt)

mfg

Reinhold

TReader 30. Jun 2013 18:42

AW: PDF/XPS/Papierformat-Viewer für Delphi
 
Am besten machst du dazu ein neues Thema auf. Werde mir, wenn möglich, morgen auch mal ein paar Minuten Zeit nehmen, dir ein funktionierendes Beispiel zusammenzustellen.

Edit: Mir fällt gerade auf, dass du versuchst im FormCreate die Extension zu binden. Möglicherweise liegt da der Hund begraben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz