AGB  ·  Datenschutz  ·  Impressum  







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

Gleiche Variablen-Namen

Ein Thema von Delbor · begonnen am 8. Mai 2017 · letzter Beitrag vom 10. Mai 2017
Antwort Antwort
Seite 5 von 7   « Erste     345 67      
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#41

AW: Gleiche Variablen-Namen

  Alt 9. Mai 2017, 17:43
Hi Haentschman
Die ist:
TPathListEvent = procedure(Sender:TObject; const FOrdner: String; const FPathlist: TStringList) of Object; Und wie gesagt: eine Gui-Ausgabe funktioniert nach wie vor tadellos. Entweder; es liegt an der Empfängermethode oder schlicht daran, dass ich versuche, Objekte zu übergeben.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#42

AW: Gleiche Variablen-Namen

  Alt 9. Mai 2017, 17:47
Fehlermeldung?

IST Stand:
Event:
Delphi-Quellcode:
TPathListEvent = procedure(Sender:TObject; const FOrdner: String; const FPathlist: TStringList) of Object;
.
EventHandler: ?
Auslösen des Events: ?

siehe Beispiel Aviator...http://www.delphipraxis.net/1370782-post40.html

Geändert von haentschman ( 9. Mai 2017 um 17:50 Uhr)
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#43

AW: Gleiche Variablen-Namen

  Alt 9. Mai 2017, 17:55
Hi Heantschman

Ups! ich dachte, ich hätte die monströsen Dinger schon gepostet, konnte sie allerdings jetzt gerade nicht wiederfinden. Die sind:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt SQLiteTestProject.exe ist eine Exception der Klasse $C0000005 mit der Meldung 'access violation at 0x007e007d: read of address 0x0000007c' aufgetreten.
---------------------------
und
---------------------------
Im Projekt SQLiteTestProject.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 007E007D in Modul 'SQLiteTestProject.exe'. Lesen von Adresse 0000007C' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------

Ich hab in der Zeile, in der die Zuweisung stattfindet, einen Haltepunkt, die erste Fehlermeldung erscheint, wennn ich mit F8 weiterzusteppen versuche, und die zweite, wenn ich die erste mit Fortsetzen weggeklickt habe.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#44

AW: Gleiche Variablen-Namen

  Alt 9. Mai 2017, 18:01
Hi Haentschman

Der Auslöser des Events ist, wenn der Filesearcher seine Dateisuche beendet hat:
Delphi-Quellcode:
procedure TPathFinderFrame.FileSearcher1ExecuteComplete(Sender: TObject);
begin
  if Assigned(FCurrentNode) then
    FCurrentNode.Expand(false);
  if Assigned(FOnPathListEvent) then
    FOnPathListEvent(Sender, FOrdner, FPathlist);
end;
Der Eventhandler:
Delphi-Quellcode:
procedure TDMLSQLite.DoPathListEvent(Sender: TObject;
  const FOrdner: String; const FPathlist: TStringList);
begin
// FFileList.AddStrings (FPathlist);
  SQLiteTestMain.LBxPathlist.Items.AddStrings(FPathlist);
end;
Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor ( 9. Mai 2017 um 18:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#45

AW: Gleiche Variablen-Namen

  Alt 9. Mai 2017, 18:03
Hänge das Testprojekt mal an... Bevor wir weiter raten.

Ich tippe darauf das beim Absenden des Events FPathlist: TStringList (das F kommt aus dem Original) nil (0x0000007c) ist.

Wo erzeugst du die FPathlist: TStringList Instanz?

Geändert von haentschman ( 9. Mai 2017 um 18:06 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#46

AW: Gleiche Variablen-Namen

  Alt 9. Mai 2017, 18:06
Ich tippe darauf das beim Absenden des Events FPathlist: TStringList (das F kommt aus dem Original) nil (0x0000007c) ist.
Wenn das Objekt nil ist, dann wäre die Adresse eher 0x00000000. Ich kann mich aber auch täuschen. Nur kenne ich es nur so, dass die Adresse dann 0x00000000 wäre.

EDIT: @Delbor: Hast du meinen Post #40 gesehen. Dort habe ich mal ein Minimalbeispiel gemacht, wie so ein Event erstellt werden kann.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#47

AW: Gleiche Variablen-Namen

  Alt 9. Mai 2017, 18:14
Hallöle...
Zitat:
Wenn das Objekt nil ist, dann wäre die Adresse eher 0x00000000.
Zitat:
Ich kann mich aber auch täuschen
...ist leider so. Auch wenn das Objekt nil ist kannst du auch Adressen > 0 haben. In der Regel sind aber die Adressen im niedrigem 2 stelligem Bereich.
Miniaturansicht angehängter Grafiken
av1.png   av.png  

Geändert von haentschman ( 9. Mai 2017 um 18:17 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#48

AW: Gleiche Variablen-Namen

  Alt 9. Mai 2017, 18:21
Hallöle...
Zitat:
Wenn das Objekt nil ist, dann wäre die Adresse eher 0x00000000.
Zitat:
Ich kann mich aber auch täuschen
...ist leider so. Auch wenn das Objekt nil ist kannst du auch Adressen > 0 haben. In der Regel sind aber die Adressen im niedrigem 2 stelligem Bereich.
Ja ok. In deinem Fall (Screenshot) ist es allerdings ein nicht initialisiertes Objekt. Eine Variable, der explizit nil zugewiesen wurde, ist eigentlich immer an 0x00000000. Aber es kann ja gut sein, dass es bei ihm auch so ist.

Einigen wir uns einfach auf eine nicht (mehr) existierende Objekt Instanz bzw. einen dangling Pointer.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#49

AW: Gleiche Variablen-Namen

  Alt 9. Mai 2017, 18:25

Zitat:
dem explizit nil zugewiesen wurde, .... Aber es kann ja gut sein, dass es bei ihm auch so ist.
... da tippe ich auch drauf. Solange wir den QT nicht gesehen haben ist alles nur raten.
Zitat:
Einigen wir uns einfach auf eine nicht (mehr) existierende Objekt Instanz bzw. einen dangling Pointer.
... jawoll ja.
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#50

AW: Gleiche Variablen-Namen

  Alt 9. Mai 2017, 18:26
Hi Aviator

Ja, den hab ich gesehen, zwar erst kürzlich, aber...
Und eigentlich machst du da genau das, was ich versucht habe: Im Eventhandler einen andern Bezeichner verwenden, als bei der Tip-Deklaration. Wobei ich gerade sehe, dass du die abweichenden Variablen schon beim abfeuern verwendest; jene im Eventhandler sind eigentlich schon die zweite abweichende Variablengruppe, da sie anderswo deklariert sind.

Delphi-Quellcode:
TMyEvent = procedure(Street: string; Country: string) of object;
...
   if Assigned(FOnReport) then
     FOnReport(tmpStreet, tmpCountry); // Hier wird das Event ausgelöst
...
 // EventHandler für TMyClass.OnReport
 // Hier könnten die Parameter Bezeichner sogar schon von der Event-Deklaration abweichen
 // Wichtig sind die Datentypen. Die müssen in Reihenfolge und Typ mit der Event-Deklaration übereinstimmen
 procedure TForm1.ReportHandler(Street: string; Country: string);
 begin
   ShowMessage(Street + sLineBreak + Country);
 end;
Und das entspricht meinen Deklarationen.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 7   « Erste     345 67      


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 10: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