Hallo allerseits...
also ich bau mir nen Objekt meines Tpys und speichere dieses in `ner Listbox und in einer eigenen Liste vom Typ TList. Dann will ich beim anklicken auf die Listbox einfach nur das das programm meine liste durchsucht und wenn es das gewählte objekt findet (identifiziert nach der Eingenschaft "Name") soll es "Laut geben"
(sowohl die Liste wie auch das Objekt sind vorsichtshalber globale Variablen)
Beim Zugriff auf Tmp_objekt.name krieg ich aber ne Fehlermeldung, weis wer wieso und wie das zu beheben ist?
Tmp_Objekt is doch auch nur ein Zeiger aufs Objekt, genmauso wie der TListinhalt - also müsst ich das doch zuweisen können oder?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37:
| Var ToDoObjekt : TToDo; todo_objekte_liste : TList; ...
procedure TAlarmform.BitBtn_hinzufuegenClick(Sender: TObject); begin if todo_objekte_liste = NIL then todo_objekte_liste := TList.create; ToDo_Objekt := TToDo.create; ToDo_Objekt.Kategorie := 'NIL'; ToDo_Objekt.Text := 'NIL'; ToDo_Objekt.AnzeigeText := 'NIL'; ToDo_Objekt.Name := 'NIL'; ToDo_Objekt.Kategorie := Edit_todo_kategorie.text; ToDo_Objekt.Anzeigetext := Edit_todo_anzeigetext.text; ToDo_Objekt.text := Memo_todo_text.Text; todo_objekte_liste.add(ToDo_Objekt); ListBox_todo.items.addobject(ToDo_Objekt.Kategorie + '-->' + ToDo_Objekt.Anzeigetext, ToDo_Objekt); todo_objekt.Name := 'TDO'+inttostr((Listbox_todo.items.IndexOfObject(ToDo_Objekt))); showmessage('Objektname :' + Todo_objekt.name) end;
procedure TAlarmform.ListBox_todoClick(Sender: TObject); Var Tmp_Objekt : TToDo; i : word; begin if Listbox_todo.ItemIndex <> -1 then begin Tmp_Objekt := TToDo.create; for i := 0 to (todo_objekte_liste.count-1) do begin Tmp_Objekt := TToDo(todo_objekte_liste.items[i]); if Tmp_Objekt.Name = ('TDO'+inttostr(Listbox_todo.itemindex)) then showmessage('bla'); end; Tmp_objekt.free; end; end; |
Moderiert von
Motzi: Code- durch Delphi-Tags ersetzt.