Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#5

AW: Herauslösen eines Strings im string

  Alt 28. Feb 2014, 16:17
Warum zerlegst du es erst wenn das angeklickt wird, wieso hängst du nicht gleich einen Datensatz an das Item und liest dann bequem die Infos aus dem Datensatz?
Delphi-Quellcode:
Type
  TDatensatz = class
    ID: String; //oder Integer
    HEADLINE: String;
    TEXT1: String;
    TEXT2: String;
  end;

procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
  Datensatz: TDatensatz;
begin
  s := '12345,[WASSER],Wasser ist, wie es ist=Muss geschützt werden, oder?';

  Datensatz := TDatensatz.Create;
  Datensatz.ID := '12345';
  Datensatz.HEADLINE := 'WASSER';
  Datensatz.TEXT1 := 'Wasser ist, wie es ist';
  Datensatz.TEXT2 := 'Muss geschützt werden, oder?';

  with ListBox2 do Items.AddObject(s, Datensatz);
end;

procedure TForm1.ListBox2Click(Sender: TObject);
var
  s: String;
  Datensatz: TDatensatz;
begin
  with ListBox2 do if ItemIndex < 0 then Exit;

  with ListBox2 do s := Items[ItemIndex];
  with ListBox2 do Datensatz := TDatensatz(Items.Objects[ItemIndex]);

  ShowMessage(
   'Item-String: ' + s + #13#10 +
   'ID: ' + Datensatz.ID + #13#10 +
   'HEADLINE: ' + Datensatz.HEADLINE + #13#10 +
   'TEXT1: ' + Datensatz.TEXT1 + #13#10 +
   'TEXT2: ' + Datensatz.TEXT2
    );
end;
Evtl. mußt du vorher noch OwnsObjects auf True setzten. Bei Delphi 7 geht das nicht, bei deiner Version sollten die Eigenschaft vorhanden sein. Wenn OwnsObjects auf True ist, mußt du die Objekte beim Löschen der Items nicht vorher freigeben.
  Mit Zitat antworten Zitat