Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Installation von OnGuard, Unit Forms (https://www.delphipraxis.net/178511-installation-von-onguard-unit-forms.html)

Gutelo 12. Jan 2014 02:58

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?

himitsu 12. Jan 2014 03:23

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.

Gutelo 12. Jan 2014 03:37

AW: Installation von OnGuard, Unit Forms
 
Danke Himitsu,

nun bleibt er an folgender Stelle haengen:

Code:
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;
Das kann doch auch eigentlich garnicht funktionieren der Konstanten Busy einen Wert zuzuweisen ...

himitsu 12. Jan 2014 05:12

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:
const
  IchBinTypisiert: Boolean = False;
  IchBinEsNicht = False;
Wende dich an den Ersteller und der soll gefälligst den Schrott beheben,
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.

Gutelo 12. Jan 2014 05:29

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