Aloha allerseits,
ich will mir ein kleines Lexikon basteln. Dazu habe ich ein Datenmodul eingefügt auf dem eine Table- und eine Source-Komponente platziert sind. Der TableType vom Table ist ttParadox. Dann hab ich ein Eingabeformular und ein Ansichtsformular. Auf dem Eingabeformular gibt es ein DBEdit (für den Begriff) und ein DBMemo (für die Erklärung). Auf dem Ansichtsformular gibt es eine DBListbox (in der sollen sämtliche Begriffe aufgelistet werden) und ein DBText (für die Erklärung). Nun möchte ich, dass beim Markieren eines Eintrages in der Listbox die dazugehörige Erklärung in dem DBText erscheint. Und da happerts. und zwar wird mir nur die Erklärung vom letzten zugefügeten Eintrag angezeigt, die anderen Begriffe haben als Erklärung dann immer MEMO bzw. wenn der letzte Eintrag markiert wird und danach die davor erstellten, haben diese dann die Erklärung vom letzten Eintrag.
Das Hinzufügen eines Datensatzes realisier ich durch:
Code:
LexikonModul.LexikonTableBegriff.AsString:=Form3.DBEdit1.Text;
LexikonModul.LexikonTableErklaerung.AsString:=Form3.DBMemo1.Text;
LexikonModul.LexikonTable.Post;
Form1.DBListBox1.Items.Add(LexikonModul.LexikonTableBegriff.AsString);
und der Zugriff dann auf die Erklärung durch
Code:
procedure TForm1.DBListBox1Click(Sender: TObject);
var x,i:integer;
begriff:string;
begin
try
for x:=0 to DBListBox1.Items.Count-1 do
begin
if DBListBox1.Selected[x] then
begin
begriff:=DBListBox1.Items.Strings[x];
for i:=0 to LexikonModul.LexikonTableBegriff.Index-1 do
begin
if begriff=LexikonModul.LexikonTableBegriff.AsString then
Form1.DBText1.Caption:=LexikonModul.LexikonTableErklaerung.AsString;
end;
end;
end;
except showmessage('Fehler');
end;
end;
Ich weiß es sind ein paar begin's und end's zuviel. Wär echt gut, wenn mir jemand sagen könnte, wie ich diesen Zugriff richtig hinkriege.
Kann es sein, dass ich immer nur den erstens Datensatz überschreibe? wenn ja, wie kann ich da ein Zähler oder was ähnliches einbauen, damit mir immer den nächsten Eintrag am einfügen und nicht den anderen überschreibe.