AGB  ·  Datenschutz  ·  Impressum  







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

Wo zum ... ist das Object geblieben ?

Ein Thema von Karsten · begonnen am 22. Sep 2003 · letzter Beitrag vom 23. Sep 2003
Antwort Antwort
Karsten

Registriert seit: 5. Sep 2003
56 Beiträge
 
Delphi 6 Personal
 
#1

Wo zum ... ist das Object geblieben ?

  Alt 22. Sep 2003, 23:24
Hallo,

ich habe folgendes Problem:
Zum Drucken von Daten habe ich eine Form die eine Vor-Selektion der zu druckenden Daten enthält.

Auf dieser Form befindet sich eine CheckListBox in der ich die Datensätze über

Code:
CheckListBox.AddItem(MyDummy.Dummy1, MyDummy);
reinschreibe.

So ganz nebenbei:

Code:
type
  TDummyData = class
  public
    Dummy1: String;
    Dummy2: Integer;
    ...

    procedure ReadFromStream(aStream: TStream);
    procedure WriteToStream(aStream: TStream);
  end;
Nachdem die endgültige Selektion vorgenommen wurde und der Button 'Drucken' gedrückt wurde übernimmt wieder mein Haupt-Form und liest die Daten (Checked und die Object-Referenz) aus; wenns dann mal klappt.

Das Auslesen erfolgt über:

Code:
MyDummy := Form1.CheckListBox.Items.Objects[Index];
was aber dummerweise beim Komplieren zu einer Fehlermeldung führt.

Incompatible types: 'TDummyData' and 'TObject'

Einfügen über addItem scheint zu klappen (oder liegt da schon ein Fehler), aber das auslesen ...

Was mache ich falsch ?

Gruß,
Karsten
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Wo zum ... ist das Object geblieben ?

  Alt 23. Sep 2003, 01:06
Zitat von Karsten:
Was mache ich falsch ?
Items.Objects[] liefert immer ein TObject. Da deine Klasse von TObject abgeleitet ist (auch wenn man das nicht sieht), kannst du sie auch AddItem übergeben. Beim auslesen kann der Compiler aber nicht wissen, dass du nur Instanzen von TDummyData in Objects[] hast. Du musst es ihm also sagen und das kannst du per Typecast oder mit dem as Operator tun.
Delphi-Quellcode:
obj := Items.Objects[Index] as TDummyData; // ist langsamer
obj := TDummyData(Items.Objects[Index]);
  Mit Zitat antworten Zitat
Karsten

Registriert seit: 5. Sep 2003
56 Beiträge
 
Delphi 6 Personal
 
#3

Re: Wo zum ... ist das Object geblieben ?

  Alt 23. Sep 2003, 09:49
Danke,

funktioniert perfekt.

Gruss,
Karsten
  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 19:19 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