![]() |
Delphi-Version: 11 Alexandria
Shellexecute in 'Neubau'
Hi zusammen
Folgenden Code soll in einem 'Neubau' übernommen werden:
Delphi-Quellcode:
'Corpus Delicti' ist hier 'Shellexecute', das hier im Originalcode absolut korrekt arbeitet. Probleme macht 'ShellExecute' erst im 'Neubau':
procedure TRogersPdfFrame.FOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const Tolerance = 2.0; var WebLinkIndex: Integer; LdfView : TPdfView; begin LdfView := (Sender as TPdfView); Pdf1.PageNumber := LdfView.PageNumber; if not LdfView.Active then Exit; LdfView.SetFocus; WebLinkIndex := LdfView.WebLinkAtPos(X, Y); if WebLinkIndex <> -1 then ShellExecute(0, 'open', PChar(string(LdfView.WebLink[WebLinkIndex].Url)), '', '', SW_SHOWNORMAL) else begin ...
Delphi-Quellcode:
Hier ist ShellExecute schon zur Designzeit als unbekannt markiert, der Deklaration unter uses zum Trotz:
procedure TAlexPdfFrame.FOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const Tolerance = 2.0; var WebLinkIndex: Integer; LdfView : TPdfView; begin LdfView := (Sender as TPdfView); Pdf1.PageNumber := LdfView.PageNumber; if not LdfView.Active then Exit; LdfView.SetFocus; WebLinkIndex := LdfView.WebLinkAtPos(X, Y); if WebLinkIndex <> -1 then ShellExecute(0, 'open', PChar(string(LdfView.WebLink[WebLinkIndex].Url)), '', '', SW_SHOWNORMAL) else begin
Delphi-Quellcode:
Der Usesteil in TRogersPdfFrame ist bis auf die Unit RzTabs identisch.
unit AlexPdfFrameUnit;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, PDFium, GenericObjectListUnit, Vcl.StdCtrls, ExtDlgs, ImgList, ComCtrls, ToolWin, RzTabs; Als Fehlerquelle könnte ich mir vorstellen, einen Flüchtigkeitsfehler bei der Anordnung der begin..end-Blöcke gemacht zu haben, aber das scheint nicht der Fall zu sein. Was könnte noch Ursache für den Fehler sein? Ach ja - der 'Neubau' besteht aus völlig neu aufgebauten Formularen,Frames und Units unter Übernahme bestehenden Codes, anstelle der Suche nach einem Fehler, den ich wahrscheinlich nie finden würde...(vermutlich: in Sydney entwickelt, in Alexandria geöffnet und dann in Sydney weiterbearbeitet...) Komponenten wie TPanel hab ich teilweise per Copy&Paste übernommen, jedoch Events neu per OI erzeugt. Wichtig war für mich, nichts zu übernehmen, was irgendwie irgendwann compiliert worden war. Gruss Delbor |
AW: Shellexecute in 'Neubau'
ShellExecute ist in ShellAPI deklariert, das finde ich nicht in Deiner uses–Klausel.
|
AW: Shellexecute in 'Neubau'
Hi DeddyH
Ok, mal für mich, zum gaaanz langsam mitschreiben (weil ich wirklich gestern Nacht dachte, genau darauf geachtet zu haben):
Delphi-Quellcode:
Die Help von Alexandria
unit RogersPdfFrameUnit;
interface uses [b]Winapi.Windows, Winapi.Messages,[/b] System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, PDFium, GenericObjectListUnit, Vcl.StdCtrls, ExtDlgs, ImgList, ComCtrls, ToolWin; Zitat:
Delphi-Quellcode:
Vielen Dank!
implementation
{$R *.dfm} uses HomeOfficerFeMainUnit, Printers, ClipBrd, Types, ShellApi; // Settings, Gruss Delbor |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz