AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi objekte als Stringliste bzw. Strings mit Daten erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

objekte als Stringliste bzw. Strings mit Daten erstellen

Ein Thema von Taladan · begonnen am 26. Feb 2004 · letzter Beitrag vom 27. Feb 2004
Antwort Antwort
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#1

objekte als Stringliste bzw. Strings mit Daten erstellen

  Alt 26. Feb 2004, 19:04
Hab hab es mal vor einen Jahr geschaft, einen String Objekte zu zu ordnen. Doch leider weiß ich nemmer wie. Hintergrund ist derer, das in einen Combofeld Bücher stehen, doch diese Bücher sollen bestimmte Rückgabe-Werte haben. Also beispiel:

Buch 1:
Name (als socher wird es auch in die Stringliste eingetragen): Normans Lexikon
Buchnr: 1
Seiten: 135
...
Buch2:
Name: Bertelsmann Bibliothek
Buchnr: 7
Seiten: 199
..

Wer kann helfen?
Marco
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: objekte als Stringliste bzw. Strings mit Daten erstellen

  Alt 26. Feb 2004, 19:08
Moin Taladan,

schau Dir mal die Methode AddObect der ComboBox.Items an.

Das Objekt muss dann nur in irgendeiner Form die zusätzlichen Daten enthalten, z.B. in dem es sich um die Adresse einer Variablen handelt. Die Variable wiederum ist von einem selbstdefinierten (Record-) Typ, der die Zusätzlichen Daten enthält.

Wichtige Einschränkung:
Mit TMemo bzw. TRichEdit Lines funktioniert das nicht, da hier immer nil Objekt gespeichert wird.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
heiopei
(Gast)

n/a Beiträge
 
#3

Re: objekte als Stringliste bzw. Strings mit Daten erstellen

  Alt 26. Feb 2004, 19:12
hallo,
also am einfachsten wär es wahrscheinlich, ein arrayzu vereinbaren:

Tbooks = record
name: string;
pages: Integer;
end;
...
var
books: array of Tbooks;
...

ich finds so am einfachsten. außerdem find ich, dass man wegen der struktur sehr leicht auf die daten zugreifen kann.

Du kannst aber auch die einzelnen wörter durch trennzeichen in ein string schreiben:

buch1/seiten1-buch2/seiten2...

das find ich allerdings immer n' bisschen viel auslese-arbeit(string zerpflücken...)

tschüss,
heiopei
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: objekte als Stringliste bzw. Strings mit Daten erstellen

  Alt 26. Feb 2004, 19:30
Delphi-Quellcode:
type
  TBuch = record
    bezeichnung: String;
    alter: Byte;
  end;
[...]
  TMyClass = class(TObject)
  private
    function fgetBuchbez(AValue: String): TBuch;
    { Private declarations }
  public
    property Buch[Buchbez: String]: TBuch read fgetBuchbez;
  end;

[...]

function TMyClass.fgetBuchbez(AValue: String): TBuch;
begin
  if AValue = 'Buch1then
  begin
    result.bezeichnung := 'Delphi Kochbuch';
    result.alter := 5;
  end else begin
    result.bezeichnung := 'undefined';
    result.alter := 0;
  end;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: objekte als Stringliste bzw. Strings mit Daten erstellen

  Alt 26. Feb 2004, 19:33
http://www.delphipraxis.net/internal...ight=addobject
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#6

Re: objekte als Stringliste bzw. Strings mit Daten erstellen

  Alt 27. Feb 2004, 17:41
Hab eine eigene Unit dafür Angelegt.
Delphi-Quellcode:
unit UnitInclude;

interface

type
    TBuch = record
          BuchName : String;
          BuchNr : Integer;
end;

type
    TBuecher = class(TObject)
             private
                    function fgetBuchbez(AValue: String): TBuch;
                    { Private declarations }
             public
                   property Buch[Buchbez: String]: TBuch read fgetBuchbez;
    end;

implementation

function TBuecher.fgetBuchbez(AValue: String): TBuch;
begin
  if AValue = '1then begin
    result.BuchName := 'Helden';
    result.BuchNr := 1;
  end
  else
  begin
    result.BuchName := 'undefined';
    result.BuchNr := 0;
  end;
end;

end.
Dann in der Formularunit
Delphi-Quellcode:
[..]
var buch : Tbuch;
begin
  ComboBoxBuch.Items.Clear;
  ComboBoxBuch.Items.AddObject(Buch.BuchName[1], Buch[1]);
end;
[..]
Aber ich bekomme immer Fehlermeldung das ein Array-Typ benötigt wird.
Marco
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: objekte als Stringliste bzw. Strings mit Daten erstellen

  Alt 27. Feb 2004, 18:52
du definierst buch so
property Buch[Buchbez: String]: TBuch read fgetBuchbez; und versuchst dann
Buch.BuchName[1] Wenn du dir das genau anschaust wirst du sehen das bei der Definition ein String in der Klammer steht. Sollte folgendermaßen aussehen
ComboBoxBuch.Items.AddObject(Buch['1'].BuchName, TObject(@Buch['1'])); oder du änderst die Definition in
property Buch[Buchbez: Integer]: TBuch read fgetBuchbez; so das der Aufruf dann
ComboBoxBuch.Items.AddObject(Buch[1].BuchName, TObject(@Buch[1])); lautet. Allerdings müsstest du dazu auch noch "fgetBuchbez" anpassen (von String auf Integer)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 02: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