Ich bin nicht sicher, ob ich dies das Beste, was ich kann aber explaned habe, hier gehen wir ...AV Wenn eine Prozedur von einer Komponente von einem anderen genannt
Ich habe 2 kundenspezifische Komponenten auf einer Form, die Verbindung sind zusammen zur Design-Zeit durch die IDE. Immer, wenn ich eine Prozedur aus auf der Komponente aufrufen bekomme ich die Zugriffsverletzung,
Zugriffsverletzung bei Adresse 0049A614 in Modul ‚Project2.exe‘. Lesen von Adresse 00000034.
Dies ist ein kleiner Teil meines Code
TMyClient = class(TClientSocket)
{...}
end;
und ...
TPresence = class(TComponent)
private
ftheClient: TMyClient
public
procedure SetStatus(status: string);
published
property UserName : string read fUserName write fUserName;
property theClient: TMyClient read ftheClient write ftheClient;
end;
procedure TPresence.SetStatus(status: string);
begin
try
***** if theClient = nil then
Exception.Create('theClient is Nil');
except
on e:Exception do
MessageDlg(e.classname+', '+e.message, mtWarning, [mbOK], 0);
end;
{...}
end;
0049A614 bei der ist ***** und die Die IDE bleibt hier stehen.
Ich habe auch versucht mit
Presence1.theClient := MyClient1;
ohne Glück
unter Verwendung von Verfahren aus Präsenz1 oder MyClient1 die assign zur Laufzeit zu tun, die auf einander funktionieren verlassen Sie sich nicht.
Delphi 7
Follow Up: von mghie Kommentare, wo ich darüber überdacht.
Ich habe die TPresence-Komponente aus dem Formular entfernt (was einige seltsame IDE-Fehler verursacht hat, die etwas damit zu tun haben könnten) und die Entwurfszeit erstellt und alles zugewiesen, was benötigt wurde. Jetzt funktioniert es, aber die TPresence Component zurück auf den from bringt den Fehler zurück.
Vielen Dank für Ihre Hilfe Jungs, ich soll diese erarbeiten nun in der Lage sein, wenn ich nicht krank andere Frage wieder öffnen kann :)
Erstellen Sie nicht nur die Ausnahme. Sie müssen es auch heben. Und fangen Sie es nicht in derselben Prozedur ab. Lassen Sie es laufen, bis es einen Code erreicht, der die Ausnahme richtig behandeln kann. –
yeh ich habe diesen Code in Frustration und eine Menge kopieren irgendwelche einfügen von anderen Orten usw. Ive haben die Ausnahme Handler jetzt seine Arbeit entfernt, Danke –