Installation von OnGuard, Unit Forms
Hallo,
ich versuche die OnGuard Komponenten auf Delphi XE3 zu installieren. Bisher habe ich die Quelldateien in dem Verzeichnis Source zu dcu dateien kompiliert. Moechte ich diese nun als Komponente installieren dann scheitert es daran dass Unit-Name 'Forms' nicht aufgeloest werden kann. Hat jemand einen Tipp warum das so nicht klappt? Oder kann mir jemand sagen wie ich die packages im package Verzeichnis direkt installieren kann? |
AW: Installation von OnGuard, Unit Forms
In XE3 wurden die RTL/VCL/FMX-Units mit einem Namespace versehen.
Die alte VCL-Unit "Forms" heißt jetzt Vcl.Forms und die vom FMX Fmx.Forms ... wenn man keinen Namespace angibt, dann wird die genommen, deren Namespace als Erstes in den Projektoptionen > Unit-Aliase deklariert ist. Fazit: Bei dir fehlen die Unit-Aliase ('neues VCL-Projekt erstellen und da rauskopieren), oder den NameSpace in der Uses-Klausel mit angeben. |
AW: Installation von OnGuard, Unit Forms
Danke Himitsu,
nun bleibt er an folgender Stelle haengen:
Code:
Das kann doch auch eigentlich garnicht funktionieren der Konstanten Busy einen Wert zuzuweisen ...
procedure TModifierFrm.ModifierClick(Sender: TObject);
const Busy : Boolean = False; var L : LongInt; D : TDateTime; begin if Busy then Exit; {set busy flag so that setting "Checked" won't recurse} Busy := True; |
AW: Installation von OnGuard, Unit Forms
Funktionieren schon ... aber man sollte es nicht machen.
Zur Abwärtskompatibilität zu urururururalten Programmen kann man den Schreibschutz für typisieren Konstanten deaktivieren, womit die wie eine private globale Variable arbeiten. Typisierte Konstanten sind intern eigentlich schreibgeschützte Variablen.
Delphi-Quellcode:
Wende dich an den Ersteller und der soll gefälligst den Schrott beheben,
const
IchBinTypisiert: Boolean = False; IchBinEsNicht = False; oder mach daraus eine Globale Variable in der Implementation, damit es schnell funktioniert, es könnte aber auch sein, daß es eigentlich ein privates Feld in TModifierFrm sein müsste, also an die Instanz gebunden und garnicht global. |
AW: Installation von OnGuard, Unit Forms
Vielen Dank :)
Nachdem ich die Konstante Busy aus der Funktion raus habe und als globale Variable in der Unit definiert habe konnte ich das OnGuard Paket endlich installieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 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