AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Objekt innerhalb Event zuweisen

Ein Thema von Pfoto · begonnen am 15. Jan 2007 · letzter Beitrag vom 15. Jan 2007
Antwort Antwort
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#1

Objekt innerhalb Event zuweisen

  Alt 15. Jan 2007, 19:22
Hallo zusammen,

ich habe eine Problem, folgenden Fehler zu verstehen:

Nehmen wir an, es gibt unten aufgeführte Event-Methode:

Ich übergebe das Objekt "aJob" und wollte diesem ein anderes
Objekt, das hier gerade erstellt wurde, zuweisen (hier: DBSession)
Das Event geht übriges von "aJob" selbst aus!

Delphi-Quellcode:
procedure TFrmMain.GetDBSession(aJob: TJob);
begin
  aJob.DBSession:= TDBSession.Create;
end;
Warum gibt es hier eine Fehlermeldung?
"aJob" ist doch ein Pointer auf ein Objekt. Warum kann ich
diesem Objekt hier nicht wie üblich etwas zuweisen?


Ich weiß, dass es mit einer solchen Deklarierung funktioniert:
Delphi-Quellcode:
procedure TFrmMain.GetDBSession(var aDBSession: TIDBIntf);
begin
  aDBSession:= TDBSession.Create;
end;

Falls aber jemand weiß, *warum* das so ist, würde ich gerne dazulernen.
Vielleicht ist ja bei obiger Variante nur ein Lese-Zugriff erlaubt etc.


Dank und Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Objekt innerhalb Event zuweisen

  Alt 15. Jan 2007, 19:25
Ich Vermute mal Das TJob nicht zu TDBSession kompatibel ist.
Markus Kinzler
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Objekt innerhalb Event zuweisen

  Alt 15. Jan 2007, 19:33
Zitat von mkinzler:
Ich Vermute mal Das TJob nicht zu TDBSession kompatibel ist.
Doch, dafür ist gesorgt.
Ich weise in der zweiten Methode die Variable DBSession später auch TJob zu.

Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Objekt innerhalb Event zuweisen

  Alt 15. Jan 2007, 19:37
Was für ein Fehler tritt auf?
Was für ein Event?
Markus Kinzler
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Objekt innerhalb Event zuweisen

  Alt 15. Jan 2007, 19:55
Zitat von mkinzler:
Was für ein Fehler tritt auf?
Was für ein Event?
Es ist ein Event des Jobs selbst.
Dieser soll eine Datenbankverbindung (DBSession) holen.

Da diese Jobs von mehreren Threads ausgeführt werden,
soll jeder Job sich per synchroniziertem Event eine
Instanz von DBSession holen und damit arbeiten.

Ich ging davon aus, dass der Fehler (eine Schreibschutz-
Verletzung) allgemeiner Natur sei, weil ich hier etwa
einen logischen Fehler gemacht habe... (weil man z.B.
nur lesend auf übergebene Objekte zugreifen kann)

Gibt es da etwas in dieser Richtung?

Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Objekt innerhalb Event zuweisen

  Alt 15. Jan 2007, 20:00
Meinst du mit Schreibschutzverletzung ne AV? Hast du schon mal versucht durch Debuggen herauszufinden wo der Fehler genau auftritt?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#7

Re: Objekt innerhalb Event zuweisen

  Alt 15. Jan 2007, 21:35
evtl. ist der Fehler auch nur daas var?
im ersten fall übergibst du den Parameter als const somit kannst du den Parameter selbst durch die Funktion nicht manipulieren...(Delphi erzeugt eine neue lokal gültige Variable mit gleichen Namen, aber der Parameter selbst wird nicht verändert).

sollte in dem Fall so funktionieren...
Delphi-Quellcode:
procedure TFrmMain.GetDBSession(var aJob: TJob);
begin
  aJob.DBSession:= TDBSession.Create;
end;
HTH Frank
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Objekt innerhalb Event zuweisen

  Alt 15. Jan 2007, 23:40
... aber da er aJob nicht ändert, braucht er das nicht. Es wird eine Kopie des "Instanzenzeigers" angelegt, aber trotzdem zeigen beide (Aufrufer Variable & Parameter) auf die gleiche Instanz. Daher wäre eine Zuweisung auf die Eigenschaft der Klasse in beiden Fällen ohne Probleme möglich und valid.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:34 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