TProcess und Focus

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Joh
Lazarusforum e. V.
Beiträge: 177
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

TProcess und Focus

Beitrag von Joh »

Moin,
ich habe hier eine Anwendung, in der PDF-Datenblätter hinterlegt werden.
Leider werden die Datenblätter nur in der Form "Artikel-Nr Bez.pdf" gespeichert. Also z.B. "150 Diesel.pdf"
So weit, so schlecht. Problem: doppelte / veralterte Datenblätter.

Jetzt möchte ich dem Anwender eine Form zur Hand geben, in der in einer Liste (Stringlist) die Artikel angezeigt werden und beim Klick auf die Zeile die zugehörige Datei geöffnet und nach dem Text "Version" gesucht wird, damit man entscheiden kann, welches Datenblatt veraltet ist.
Screenshot.PNG
(36.52 KiB) Noch nie heruntergeladen
Das ganze klappt mit Sumatra-pdf so weit ganz ok. Bis auf einen Haken: Ich öffne SumatraPDF mit

Code: Alles auswählen

PDFProcess.CommandLine := 'SumatraPDF.exe'
                        + ' -plugin ' + IntToStr(PanelPDFEdit.Handle)
                        + ' "' + pdfName + '"'
                        + ' -search "Version"'
                        + ' -view "single page"';
PDFProcess.Execute;
in einem Panel. Dann bekommt aber SumatraPDF den Focus und ich kann nicht wieder in mein Fenster klicken...
Andere Steuerelemente können den Focus bekommen <grmbl$%!>

Damit der Focus erstmal nicht verschwindet, habe ich mir ein Panel im Panel gebaut, um das Unterpanel nach PDFProcess.Execute; disablen zu können...
Klappt sogar. Beim Klick auf das obere Panel wird das untere enabled und man kann durchs Datenblatt scrollen. (Sind meist 8-10 Seiten)
Um zurück zu kommen, kann ein Klick auf den zurück-Button den Focus zurückholen in meine Lazarus-Welt...

Wie bekomme ich den Focus sauber ohne diese Krücken gesetzt?

BTW: PDFProcess.CommandLine is deprecated,

Code: Alles auswählen

PDFProcess.Executable := 'SumatraPDF.exe'
PDFProcess.add('-plugin ' + IntToStr(PanelPDFEdit.Handle))
öffnet leider SumatraPDF in einem neuen Fenster statt im angegebenen Panel.


Hier ein Beispiel-Standalone-Projekt ohne Datenbank, dafür mit Array...
sdbCheck.zip
(228.53 KiB) 44-mal heruntergeladen
Für SumatraPDF unter Windows reicht es, die portable Version von https://www.sumatrapdfreader.org/downlo ... pdf-viewer ins Projektverzeichnis zu kopieren und den Dateinamen anzupassen. Linux???
just my two Beer

paweld
Beiträge: 9
Registriert: So 11. Jun 2023, 16:01
OS, Lazarus, FPC: Lazarus trunk, FPC fixes

Re: TProcess und Focus

Beitrag von paweld »

Hallo,
Wenn es nur unter MS Windows funktionieren soll, können Sie pdfium verwenden. Im Anhang finden Sie ein Beispiel - es lädt auch die Dateiversionen selbst herunter und zeigt sie im Raster an.
Bild
Die dll-Dateien können von hier heruntergeladen werden: https://paweld.ovh/pdfium_dll.7z
Dateianhänge
test pdfium get version from files.7z
(152.65 KiB) 34-mal heruntergeladen
Grüße / Pozdrawiam
paweld

Joh
Lazarusforum e. V.
Beiträge: 177
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: TProcess und Focus

Beitrag von Joh »

na ja, wenn ich mir die Lizenzbedingungen und Preise so angucke: https://pdfium.patagames.com/de-DE/Purchase/, dann lieber nicht...
just my two Beer

paweld
Beiträge: 9
Registriert: So 11. Jun 2023, 16:01
OS, Lazarus, FPC: Lazarus trunk, FPC fixes

Re: TProcess und Focus

Beitrag von paweld »

@Joh: Es geht um die PDFium-Bibliothek von Google, die unter die Apache-2.0-Lizenz fällt, so dass Sie sie kostenlos in Ihren eigenen Anwendungen verwenden können, auch in Closed-Source-Anwendungen.
Link zur Lizenz: https://github.com/chromium/pdfium/blob/main/LICENSE
Die kompilierten Bibliotheken können auf github gefunden werden: https://github.com/bblanchon/pdfium-binaries
Ich habe einen Link zu den von mir verwendeten Bibliotheken angegeben, da die Komponente eine bestimmte Version der Bibliothek benötigt (ich bin nicht der Autor der Komponente).
Grüße / Pozdrawiam
paweld

Joh
Lazarusforum e. V.
Beiträge: 177
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: TProcess und Focus

Beitrag von Joh »

ok, danke...

Ich hab' mir das erstmal angetestet. Prinzipiell ganz gut, leider von etlichen Grafikfehlern beim zoomen und markieren von Texten behaftet.
Es funktioniert ja nicht mit einer aktuelleren Version der dll.

Aber ich bleibe am Ball.
just my two Beer

Antworten