Dat kun je eenvoudig doen door eerst de cursorpositie in de DBMemo op te halen met SelStart
en daarna het veld in je database aan te passen met de tekst uit de popup-item.
Ondoordachte code, maar het doet wat je vraagt:
Delphi Code:
procedure TfrmMain.InsertIntoMemo(ATekst: string);
var
I: Integer;
S: string;
begin
I := DBMemo1.SelStart; // Huidige cursorpositie (0-based)
S := ClientDataSet1.FieldByName('Tekst').AsString; // Huidige tekst in dataveld
Insert(ATekst, S, Succ(I)); // Onze nieuwe tekst in huidige tekst plaatsen op de gewenst positie (dit is 1-based, dus eentje erbij optellen)
try
if ClientDataSet1.State <> dsEdit then // Als dataset nog niet in edit-modus staat...
ClientDataSet1.Edit; // ...dan in edit-modus zetten
ClientDataSet1.FieldByName('Tekst').AsString := S; // Zet nieuwe tekst in veld
ClientDataSet1.Post; // en post de data
finally
DBMemo1.SelStart := I; // Zet de cursorpositie terug (anders springt hij weer naar 0 in de memo)
end;
end;
Bookmarks