Hallo Zusammen,
ich habe ein Problem und weiß einfach nicht mehr weiter.
Ich greife von einer
UNIT auf eine Methode in einer anderen
UNIT über einen Pointer zu:
Code:
m_dlg.lblWerkzeug1.Caption := m_pCDeviceWerkzeugauswahl.GetWerkzeug1();
m_dlg.lblWerkzeug2.Caption := m_pCeviceWerkzeugauswahl.GetWerkzeug2();
//m_dlg.lblWerkzeug3.Caption := m_pCDeviceWerkzeugauswahl.GetWerkzeug3();
//m_dlg.lblWerkzeug4.Caption := m_pCDeviceWerkzeugauswahl.GetWerkzeug4();
Die Methoden werden zum Start aufgerufen.
Bei Methode GetWerkzeug1() und GetWerkzeug2() startet meine Anwendung ganz normal.
Jedoch sobald ich GetWerkzeug3() oder ...4() aufrufen möchte (im Code ausgekommentiert), erscheint unten stehender Fehler (siehe png im Anhang).
Ich weiß nicht was ich falsch mache.
Die Methoden sind alle in der DeviceWerkzeugauswahl vorhanden. Wird hier auf eine eine
DCU im Cache zugegriffen?
Ich habe alle DCUs gelöscht und neu erzeugt.
Hier noch einmal die
UNIT auf die ich zugreifen möchte:
Code:
unit UntDeviceWerkzeugauswahl;
interface
uses
UntDevice,
UntExtBoolean,
UntUtilities,
StrUtils,
SysUtils,
Types,
Classes;
const
_cl = $00663300;
_strSectionPrefix = 'Prog_';
_nMinLengthFA = 7;
_nLengthTLNr = 2;
_nMaxDescLength = 40;
_strAlowedChars = '0123456789-';
_splitChar = '#|#';
_splitChar2 = '#~#';
type
pCDeviceWerkzeugauswahl = ^CDeviceWerkzeugauswahl;
CDeviceWerkzeugauswahl = class(CDevice)
private
m_strWerkzeug1 : String;
m_strWerkzeug2 : String;
m_strWerkzeug3 : String;
m_strWerkzeug4 : String;
public
constructor Create(); reintroduce;
destructor Destroy(); override;
function GetWerkzeug1():String;
procedure SetWerkzeug1(i_strWerkzeug1: String);
function GetWerkzeug2():String;
procedure SetWerkzeug2(i_strWerkzeug2: String);
function GetWerkzeug3():String;
procedure SetWerkzeug3(i_strWerkzeug3: String);
function GetWerkzeug4():String;
procedure SetWerkzeug4(i_strWerkzeug4: String);
end;
implementation
constructor CDeviceWerkzeugauswahl.Create();
begin
inherited Create();
ResetData();
end;
destructor CDeviceWerkzeugauswahl.Destroy();
begin
inherited Destroy();
end;
procedure CDeviceWerkzeugauswahl.SetWerkzeug1(i_strWerkzeug1: String);
begin
m_strSetWerkzeug1 := i_strWerkzeug1;
end;
function CDeviceWerkzeugauswahl.GetWerkzeug1: String;
begin
result := m_strWerkzeug1;
end;
....restlichen Methoden
GetWerkzeug1
SetWerkzeug1
GetWerkzeug2
SetWerkzeug2
GetWerkzeug3
SetWerkzeug3
end.
Den selben Fehler hatte ich auch schon einmal, als ich in der selben
UNIT eine Zeile mit einer neuen Variable hinzugefügt habe. Als ich die Zeile wieder entfernt habe war der Fehler wieder weg.
Was könnte das nur sein ?