AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit Objektinstanzpointer

Ein Thema von sott1981 · begonnen am 13. Sep 2011 · letzter Beitrag vom 13. Sep 2011
Antwort Antwort
sott1981

Registriert seit: 13. Sep 2011
6 Beiträge
 
#1

AW: Probleme mit Objektinstanzpointer

  Alt 13. Sep 2011, 13:56
Ok langsem lerne ich.
Danke schon mal Blup. Ihc wußte das Instanzen Objekte darstellen und wollte das mach um die Adresse vergleichen zu können.

Schließlich ist mein problem folgendes im EventHandler.
Der Vergleich mit dem ich Quelle meines Events erwischen will passt nicht.
Habe auch schon @I = @E probiert bringt nichts.

Langsam habe ich den verdacht das mir die TList den Ärger bereitet.

Delphi-Quellcode:
procedure TFormChart(Sender:TObject; Value:Double)
var I:Integer;
begin
   for I := 0 to FItemLineSeries.Count - 1 do
   begin
      if FDeviceList[I].Item = TSpsItem(Sender) then
      begin
            FItemLineSeries[I].Data.Add(data); // Wert anfügen;
            break;
      end;
   end;
end;


Hier nochmal das Grundgerüst

Delphi-Quellcode:
Type TFormMain = class(TForm)

   DeviceList : TList<TDevice>;
end;

type TDevice = class

   ItemList : TList<Item>;
end;

type TItem = class

   public Text : String;
end;

procedure TFormMain.Create()
var   d:TDevice;
   i:Titem;
begin


   
   DeviceList := TList<TDevice>.Create;
   
   d := TDevice.create;
   
   DeviceList.Add(d);
   
   
   i:=TItem.Create;
   i.Text = IntToHex(integer(@i),8);
   d.ItemList.add(i);
   

end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#2

AW: Probleme mit Objektinstanzpointer

  Alt 13. Sep 2011, 13:58
Müsste es nicht

ItemList : TList<TItem>; heißen? Und ich bin etwas erstaunt, dass der Compiler wegen der fehlenden Forward-Deklarationen nicht meckert. Allerdings bin ich ehrlich gesagt immer noch Newbee, was Generics angeht, vielleicht ist das da ja etwas anders.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
sott1981

Registriert seit: 13. Sep 2011
6 Beiträge
 
#3

AW: Probleme mit Objektinstanzpointer

  Alt 13. Sep 2011, 14:03
Gut bin selber erst seit ner Woche mit Delphi drann.

Aber ItemList stellt doch noch nur den Bezeichner dar ?

Also Name : GenericType<DatenType>


Ach je ich will zurück an mein C# das war vorhin das 394356mal das ich

var Integer:I; geschrieben hab.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#4

AW: Probleme mit Objektinstanzpointer

  Alt 13. Sep 2011, 14:09
Was ich meinte: statt TList<Item> TList<TItem>, es soll ja eine Liste der Instanzen der Klasse TItem sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
sott1981

Registriert seit: 13. Sep 2011
6 Beiträge
 
#5

AW: Probleme mit Objektinstanzpointer

  Alt 13. Sep 2011, 14:14
ach jetzt ne TItem stimmt schon
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#6

AW: Probleme mit Objektinstanzpointer

  Alt 13. Sep 2011, 14:23
Dennoch ist Blups Einwand sehr wichtig! Der @-Operator gibt dir die Adresse der folgenden Variablen. In deinem Fall dort also die Adresse auf dem Stack, an der "i" liegt, aber du willst den Inhalt von "i" - der ist nämlich die Adresse auf dem Heap, an der deine Instanz liegt. Lass einfach das @ mal komplett weg, überall. Das braucht man i.A. höchstens mal bei Records und Arrays, und auch dann nur, wenn man mit C-like APIs arbeitet, die gerne mal Pointer auf ein erstes Element erwarten. Zusammen mit Objektinstanzen und nur innerhalb Delphi ist @ eigentlich nie wirklich sinnvoll einsetzbar. (Ausser bei so manch fiesem Hack, aber du bewegst dich ja noch weit innerhalb der Abstraktion des OOP-Kissens )
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#7

AW: Probleme mit Objektinstanzpointer

  Alt 13. Sep 2011, 14:41
Nachdem ich mir die ursprüngliche Intention noch einmal durchgelesen habe, denke ich, das Bei Google suchenObserver Pattern könnte hier hilfreich sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 03:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz