Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Shellexecute(pdf) und DBedit (https://www.delphipraxis.net/31561-shellexecute-pdf-und-dbedit.html)

1tb30309 11. Okt 2004 11:05


Shellexecute(pdf) und DBedit
 
Moinsen,

Habe folgendes Problem:
in einer Datenbank (access) stehen in einer Spalte dateinamen (XXX.pdf)
diese Dateinamen lasse ich mittels ADO,SQL in einem DBedit-feld anzeigen
(natürlich nach einer Suche; es wird auch immer nur ein Datensatz angezeigt)

nun rufe ich in der folgenden Procedure den AcrobatReader auf:

procedure TForm1.Button2Click(Sender: TObject);
begin
shellexecute(application.Handle,'open','c:\beispie l.pdf',nil,nil, sw_show);
end;

so eingegeben klappt das auch...
nur müsste statt "beispiel.pdf" dann dort der Sring stehen der im besagtem DBEdit steht.
Aber irgndwie klappt das nicht.
wenn ich edit.text benutze klappt es
(ich will aber nicht dass der Benutzer den Dateinamen eintippen muss)


Thanks a lot for your help!!

Gruss
Johannes

Sharky 11. Okt 2004 11:21

Re: Shellexecute(pdf) und DBedit
 
Hai Johannes,

versuche es mal so:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  myPDF : String;
begin
  myPDF := TDataSet.FieldByName ('feldname_des_pdf').AsString;
  shellexecute(application.Handle,'open',PChar (myPDF),nil,nil, sw_show);
end;

1tb30309 11. Okt 2004 15:30

Re: Shellexecute(pdf) und DBedit
 
hmm
hört sich ganz ok an.
nur bei mir kommt folgende Fehlermeldung:

myPDF := TDataSet.FieldByName ('sz').AsString;
[Error] Unit1.pas(39): This form of method call only allowed for class methods
[Fatal Error] pdf.dpr(5): Could not compile used unit 'Unit1.pas'

Auch liegen die PDF-Dateien in einem anderem Verzeichnis wie die Datenbank und später die Exe.
in der access-tabelle stehen nur die Dateinamen und nicht der Ort

Achja meine Dtenank öffne ich per Adoquery und Datasource -komponenten.

gruss Johannes

Sharky 11. Okt 2004 15:36

Re: Shellexecute(pdf) und DBedit
 
*ggg*

Hai,

TDataSet musst Du durch deine von TDataSet abgeleitete Komponente (Query oder Table) erstzen.

z.B:
Delphi-Quellcode:
myPDF := Query1.FieldByName ('sz').AsString;

1tb30309 11. Okt 2004 15:43

Re: Shellexecute(pdf) und DBedit
 
:thumb:
es ist montag: :drunken:

nur wie gesagt die pdf-dateien sind nicht im Verzeichnis wo später die exe-datei ist
(bzw nicht in dem Verzeichnis wo der ganze quatsch(unit1,unit2,... jetzt ist)

wie gesagt es ist montag und das wochenende war schön aber hart

Gruss Johannes

Sharky 11. Okt 2004 15:50

Re: Shellexecute(pdf) und DBedit
 
[quote="1tb30309...sind nicht im Verzeichnis wo später die exe-datei ...[/quote]
Aber Du weisst doch wo die PDFs sind oder?
Also einfach den Pfad vor den Namen den Du aus der Tabelle liest eintragen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 Uhr.

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