AGB  ·  Datenschutz  ·  Impressum  







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

Kein Zugriff auf privates Symbol

Ein Thema von Delbor · begonnen am 8. Apr 2022 · letzter Beitrag vom 9. Apr 2022
Antwort Antwort
Delbor

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

Kein Zugriff auf privates Symbol

  Alt 8. Apr 2022, 22:46
Delphi-Version: 11 Alexandria
Hi zusammen

Die Deklaration:

Delphi-Quellcode:
  private { Private-Deklarationen }
    FInsertPdfDocument : TInsertPdfDocument;
    FReportList: TStringList;
    FAppDataPath: string;
    FProjectPath: string;
    FOwnFolderList: TStringList; //<==
    FTextSelection: string;
    procedure ShowCategoryPanel(Sender: TObject);
    procedure WriteBookmarkMemo;
    procedure DoTextSelectionEvent(Sender: TObject; const ATextSelection: String);
    function projectfolder : String;


    { Public-Deklarationen }
    property OwnFolderList : TStringlist read FOwnFolderList write FOwnFolderList; //<===
    property Appdatapath: String read FAppDataPath write FAppDataPath;
  end;
Der Zurgriff:
Delphi-Quellcode:
    if OfficerAlexMain.OwnFolderList <> nil then //<== Fehler
    begin
      if OfficerAlexMain.OwnFolderList.IndexOf(aRealName) <> -1 then
      begin
        Node.ImageIndex := 3;
        Node.SelectedIndex := 3;
      end
    end;
Die Fehlermeldung:
Zitat:
[dcc32 Fehler] AlexOpenfileFrameUnit.pas(199): E2361 Auf private-Symbol TOfficerAlexMain.OwnFolderList kann nicht zugegriffen werden
Das hat funktioniert, bis ich heute abend einen TDateTimePicker und ein DateTimeEdit auf ein leeres Tabsheet zog, um sie optisch zu vergleichen.


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. Apr 2022 um 00:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

AW: Kein Zugriff auf privates Symbol

  Alt 9. Apr 2022, 06:42
Moin...

Frage:

1. Breakpoint: if OfficerAlexMain.OwnFolderList.IndexOf(aRealName) <> -1 then -> kommt er da an?
2. Wo ist die OwnFolderList erzeugt?
3. Ist die OwnFolderList übergeben?
4. Gibt es keinen constructor der Klasse? -> zeigen.
5. Welchen Pointer Wert hat: OfficerAlexMain.OwnFolderList hier if OfficerAlexMain.OwnFolderList <> nil then
// besser Assigned(OfficerAlexMain.OwnFolderList)

Mein Gefühl sagt:
OwnFolderList ist nicht "initialisiert". Da steht ein ungültiger Pointer.
Lösung:
Im constructor FOwnFolderList := nil setzen.
PS:
Zitat:
Das hat funktioniert, bis ich heute abend
...das riecht auch danach.
  Mit Zitat antworten Zitat
hotrs02

Registriert seit: 7. Apr 2022
38 Beiträge
 
#3

AW: Kein Zugriff auf privates Symbol

  Alt 9. Apr 2022, 07:36
Das ist ein Fehler bei der Übersetzung, nicht zur Laufzeit. Mit einem Breakpoint wird er da nicht weit kommen. Des weiteren werden Felder einer Instanz automatisch initialisiert, eine Zuweisung von FOwnFolderList := NIL im Konstruktor ist also unnötig.

Was mir direkt auffällt: da steht im Kommentar vor der Eigenschaft OwnFolderList „Puplic-Declarationen“, aber es fehlt der Bezeichner public. Das kann so nicht funktionieren - zumindest nicht ausserhalb der Unit.

Gruß

Geändert von hotrs02 ( 9. Apr 2022 um 07:47 Uhr)
  Mit Zitat antworten Zitat
completestranger

Registriert seit: 7. Okt 2018
25 Beiträge
 
#4

AW: Kein Zugriff auf privates Symbol

  Alt 9. Apr 2022, 08:08
Also wenn dein Code ein 1:1 copy & pizza pasta ist, dann fehlt da eindeutig "public".

https://i.imgur.com/tswjTS3.png

Geändert von completestranger ( 9. Apr 2022 um 08:10 Uhr)
  Mit Zitat antworten Zitat
Delbor

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

AW: Kein Zugriff auf privates Symbol

  Alt 9. Apr 2022, 08:28
Hi zusammen

@completestranger und hotrs02
Zitat:
Was mir direkt auffällt: da steht im Kommentar vor der Eigenschaft OwnFolderList „Puplic-Declarationen“, aber es fehlt der Bezeichner public.
Ich hatte auskommentierten älteren Code gelöscht, aber das habe ich doch gestern abend tatsächlich übersehen:

Delphi-Quellcode:
    { Public-Deklarationen }
    property OwnFolderList : TStringlist read FOwnFolderList write FOwnFolderList;
Kein Wunder, war das Property privat! Danke, completestranger!!

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. Apr 2022 um 08:30 Uhr)
  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 04:51 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