Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#2

Re: Objectlist wie eine DB verwenden?

  Alt 26. Jun 2005, 22:33
Zitat von Taladan:
Oder sollte ich lieber auf .Net umschwenken, da es da wohl noch Datenobjecte gibt...
Das würde ich dir wirklich empfehlen!
Nimmst du D2005 oder #develop (und somit .Net 1.1) würde ich dir für den Anfang die ArrayList als Grundlage empfehlen.
Sie ist etwas prökelig, aber du kannst deine abgeleitete Klasse später immer noch ändern.

Das schöne ist nun, dass du mit jeder Implementierung von IList DataBinding für Listen bekommst.
Du wirst später noch IBindingList ( ) entdecken, aber Anfangs solltest du es möglichst simpel halten.
Cool am DataBinding ist, dass es fast _jedes_ Control unterstützt.

Als abstraktes Beispiel wäre folgendes möglich:
Delphi-Quellcode:
type
  TSomeClass = class
  private
    fFirstvalue :Integer;
    fSecondValue :string;
  public
    // Die properties sind grundlegend wichtig für DataBinding!
    property Firstvalue :Integer read fFirstvalue write fFirstvalue;
    property SecondValue :string read fSecondValue write fSecondValue;
    constructor Create(firstValue :Integer; secondValue :string);
    // hier packst du irgendwas rein, was dein Objekt in der ComboBox repräsentieren soll
    // z.Bsp.: result := SecondValue;
    function ToString :string; override;
  end;
Der Code würde ein paar Objekte in die Liste packen und diese an eine ComboBox binden.
Außerdem bekommen 2 Textboxes (TextBox = TEdit für .Net) jeweils eine der beiden Eigenschaften des ausgewählten Objektes der Liste an ihre Text Eigenschaften gebunden.
Delphi-Quellcode:
var
  List :ArrayList;
begin
  List := new ArrayList();
  List.Add(SomeClass.Create(1, 'a'));
  List.Add(SomeClass.Create(2, 'b'));
  List.Add(SomeClass.Create(3, 'c'));
  List.Add(SomeClass.Create(4, 'd'));

  ComboBox.DataSource := List;

  FirstValueTextbox.DataBindings.Add('Text', List, 'FirstValue');
  SecondValueTextbox.DataBindings.Add('Text', List, 'SecondValue');
end;
Man kann sich nun den Datensatz in der ComboBox auswählen und mit den 2 TextBoxes bearbeiten.
  Mit Zitat antworten Zitat