![]() |
TExcelApplication-OnWorkbookBeforeSave - Parameterproblem
Ich habe ein Problem:
Ich vesuche über Delphi in Excel das "Speichern unter ..." bei einer schreibgschützten Datei zu unterbinden. Über ExcelApplication1.OnWorkbookBeforeSave kommt man, meines Wissens nach genau an diese benötigte Funktion. Man kann ihr 4 Parameter übergeben:
Delphi-Quellcode:
Wie zu erwarten funktioniert das natürlich nicht, sondern es kommt der Fehler "E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen." :wiejetzt:
ExcelApplication1.OnWorkbookBeforeSave(ExcelApplication1, _WorkBook(ExcelApplication1.Application.Workbooks), True, True);
Nun steh ich da und weiß nicht mehr weiter, was denn da eingesetzt werden muss :gruebel: Ich erbitte Eure Hilfe MfG Webo PS: Wenn ihr einen besseren/anderen Weg kennt, das "Speichern unter ..." zu verhindern, dann ist der Vorschlag auch sehr willkommen. |
Re: TExcelApplication-OnWorkbookBeforeSave - Parameterprobl
Diese Methode ist ein callback; d.h du musst/darfst sie nicht Aufrufen, sondern musst eine entsprechende Methode implementieren, die dann Aufgerufen wird.
|
Re: TExcelApplication-OnWorkbookBeforeSave - Parameterprobl
Jetzt, wo du es sagst, seh ich das auch ;-) Aber: Wie müsste im Groben so eine Methode aussehen ? Ich kann mir da beim Besten Willen nichts drunter vorstellen ...
|
Re: TExcelApplication-OnWorkbookBeforeSave - Parameterprobl
Mach einfach einen Klick auf den Event im OI, dann legt die IDE die Methode an und verbindet diese mit der Eventproperty.
Setzte in der Methode Cancel auf True um ein Schreiben zu verhindern |
Re: TExcelApplication-OnWorkbookBeforeSave - Parameterprobl
Oh nein, wie peinlich, ich hab ganz vergessen, dass die Komponente auf der Form liegt und man ja, wie du schriebst, ganz einfach im Objektinspektor das einstellen kann ... Daran hab ich gar nicht mehr gedacht :oops:
Gut jetzt funktioniert es, aber nur beim "Speichern" Menüpunkt, der "Speichern unter ..." Punkt funktioniert weiterhin. Weiß jemand, woran das lieben könnte ? |
Re: TExcelApplication-OnWorkbookBeforeSave - Parameterprobl
Setze SaveAsUI mal auf False.
Das ganze funktioniert natürlich auch mit dynamisch erzeugten Komponenten. hier muss man die Methode halt manuell anlegen und
Delphi-Quellcode:
mit dem Event verbinden
<Komp>.on<Event> := <Klasse>.Methode;
|
Re: TExcelApplication-OnWorkbookBeforeSave - Parameterprobl
Zitat:
SaveAsUI hatte ich gleich schon auf False gehabt, weil ich das schon irgendwo gelesen hatte, aber funktionieren tut es trotzdem nicht. |
Re: TExcelApplication-OnWorkbookBeforeSave - Parameterprobl
Folgende kleine Einstellung brachte den Erfolg:
in ExcelApplication1 den Wert ConnectKind auf ckRemote stellen ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 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