AGB  ·  Datenschutz  ·  Impressum  







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

Zugriff auf Objekt in TObjectList

Ein Thema von Ykcim · begonnen am 9. Dez 2019 · letzter Beitrag vom 10. Dez 2019
Antwort Antwort
Seite 3 von 5     123 45      
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#21

AW: Zugriff auf Objekt in TObjectList

  Alt 10. Dez 2019, 08:56
Hallo,
Freimatz
genau das meinte ich mit "Verwendung von lokalen Variablen".
Heiko
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
831 Beiträge
 
Delphi 10.4 Sydney
 
#22

AW: Zugriff auf Objekt in TObjectList

  Alt 10. Dez 2019, 09:00
Guten Morgen Zusammen,

vielen Dank für die Unterstützung. Leider klappt es noch immer nicht...
Ich habe jetzt Folgendes gemacht:

Delphi-Quellcode:
Type
   TDesign=class
      private
         FListe_Button: TObjectList;
Delphi-Quellcode:
constructor TDesign.Create;
begin
   FListe_Button:= TObjectList.Create;
end;
Delphi-Quellcode:
procedure TDesign.Design_LogIn;
begin
   FListe_Button.Add(Form_LogIn.btn_login_abbruch);
   FListe_Button.Add(Form_LogIn.btn_login_ok);
   Labeling_GlowButtons;
end;
Delphi-Quellcode:
procedure TDesign.Labeling_GlowButtons;
var
   I: integer;
   MyButton: TTMSFNCToolBarButton;
   Button_Text: string;
begin
   for I := 0 to FListe_Button.Count -1 do begin
      MyButton:=FListe_Button.Items[I] as TTMSFNCToolBarButton;
      Button_Text:=Data_Module.xDST_Sprache.FieldByName(MyButton.Name).AsString;
      MyButton.Text:=Button_Text;
   end;
end;
Ich bekomme leider nach wie vor die Fehlermeldung:
Zitat:
ERROR
Uncaught TypeError: Cannot read property 'FName' of null | TypeError: Cannot read property 'FName' of null at Object.Labeling_GlowButtons (http://localhost:8000/NedCom_Web/Ned...b.js:119380:52) at Object.Design_LogIn
Aus irgendeinem Grund kann er auf die Objekte in der TObjectList anscheinend nicht zugreifen. Ich habe aber mit
ShowMessage('Anzahl Buttons: '+IntToStr(FListe_Button.Count)); geprüft, dass 2 Objekte in der Liste enhalten sind und haben mit
ShowMessage(Data_Module.xDST_Sprache.FieldByName('btn_login_abbruch').AsString); geprüft, dass die Daten aus der DB auch vorhanden sind.

Ich weiß nicht, wo es hakt...

Gruß
Patrick
Patrick
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#23

AW: Zugriff auf Objekt in TObjectList

  Alt 10. Dez 2019, 09:57
Zitat:
Aus irgendeinem Grund kann er auf die Objekte in der TObjectList anscheinend nicht zugreifen. Ich habe aber mit
Die Fehlermeldung sagt nichts über die TObjectList aus.
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
831 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: Zugriff auf Objekt in TObjectList

  Alt 10. Dez 2019, 10:12
Der Fehler tritt aber auf, sobald ich versuche auf ein Objekt zuzugreifen.
Delphi-Quellcode:
MyButton:=FListe_Button.Items[I] as TTMSFNCToolBarButton; //Das funktioniert noch
ShowMessage(MyButton.Name);//Hier knallt es
Ich habe alle Schritte davor getestet!
Patrick

Geändert von Ykcim (10. Dez 2019 um 10:17 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: Zugriff auf Objekt in TObjectList

  Alt 10. Dez 2019, 10:13
und warum? Kannst Du debuggen?

Ist "FListe_Button.Items[I]" leer oder hat es den falschen Typ oder ist das Objekt schon wieder weg.
Mache davor ein "if Assigned(FListe_Button.Items[I]). Wenn ok lass dir "FListe_Button.Items[I].Classname"anzeigen.


Hallo,
Freimatz
genau das meinte ich mit "Verwendung von lokalen Variablen".
Ja. Danke für Deinen Hinweis. Ich dachte dann ein Beispiel wäre für nicht schlecht.

Geändert von freimatz (10. Dez 2019 um 10:15 Uhr)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#26

AW: Zugriff auf Objekt in TObjectList

  Alt 10. Dez 2019, 10:13
.. hat MyButton denn eine Adresse oder null?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#27

AW: Zugriff auf Objekt in TObjectList

  Alt 10. Dez 2019, 10:43
Hallo,


Zitat:
FListe_Button.Add(Form_LogIn.btn_login_abbruch);
Mach mal danach

ShowMessage(Form_LogIn.btn_login_abbruch.Name); und

Delphi-Quellcode:
if FListe_Button.Items[0] is TTMSFNCToolBarButton then
begin
  ShowMessage('OK');
end;
Heiko

Geändert von hoika (10. Dez 2019 um 10:45 Uhr)
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
831 Beiträge
 
Delphi 10.4 Sydney
 
#28

AW: Zugriff auf Objekt in TObjectList

  Alt 10. Dez 2019, 10:51
Wie es aussieht, ist das Objekt schon wieder weg...

Delphi-Quellcode:
for I := 0 to FListe_Button.Count -1 do begin
      if Assigned(FListe_Button.Items[I]) then
         ShowMessage(FListe_Button.Items[I].ClassName)
      else
         ShowMessage('Not assigned');
   end;
Ergebnis lautet: Not assigned...

Aber warum ist das so? Vorher frage ich die Anzahl der Objekte in der Liste ab und bekomme das Ergebnis 2.
ShowMessage('Anzahl Buttons: '+IntToStr(FListe_Button.Count));
Delphi-Quellcode:
      if FListe_Button.Items[I] is TTMSFNCToolBarButton then
         ShowMessage('OK')
      else
         ShowMessage('Not OK');

Auch hier lautet das Ergebnis: Not OK!

Ich gebe die Liste aktuell auch nicht wieder frei...

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#29

AW: Zugriff auf Objekt in TObjectList

  Alt 10. Dez 2019, 10:52
Zeig mal deinen abgeänderten Code. Also alles meine ich was wichtig ist.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#30

AW: Zugriff auf Objekt in TObjectList

  Alt 10. Dez 2019, 10:54
Für mich sieht das so aus, als ob du in die Liste schon ein Nil-Object reinpackst. Sprich gibt es die Button zu dem Zeitpunkt wo die Prozedur läuft schon?
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 5     123 45      


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 22:47 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