Entwickler-Ecke

Datenbanken - Datenbankfeld in gleichem STATE auf 2 verschiedenen Forms


Bitburki - Fr 09.01.09 20:54
Titel: Datenbankfeld in gleichem STATE auf 2 verschiedenen Forms
Hi,

habe ein Problem: Ich habe ein Tagebuch programmiert, wo diverse Felder auf einem Form per ADO-DB-Beziehung platziert sind. Also mit Datasetbindung und ADO-Tabel Beziehung.
Wenn ich aber auf die RTF-DB-Kompo klicke, dann öffnet sich ein Popup, mit diversen Editoroptionen (Fett, Kursiv, Farbe usw.). Die Sache ist aber, daß ich der RTF-DB-Kompo im Popup das gleiche Dataset und Datafield noch vor dem Öffnen mitgebe. Funktioniert auch soweit, daß der bisherige Inhalt auch im Popup im Editor steht. Wenn ich hier aber Änderungen durchführe, aktualisiert sich nicht meine RTF-DB-Kompo auf dem Ursprungsform. Habe schon den umgekehrten Weg mit Zuweisung, Refresh und sonstigem probiert, es funkioniert aber nicht.
Auf Deutsch: Ich will beim schließen des Popups den gleichen Inhalt im RTF-Editor auf dem Ursprungsform haben wie im Popup eingegeben.
ACHTUNG: Es soll während dem ganzen Prozedere noch nichts auf der DB weggeschrieben werden (also kein Commit, Update), da der DS noch nicht vom Nutzer bestätigt wurde (Speichern-Button).

War das jetzt zu verwirrend, oder wißt ihr was ich meine?


Delete - Sa 10.01.09 00:52

Ich kann mich jetzt irren, aber wenn beide Verbindungen auf die gleiche Transaktion zugreifen, sollte ein Refresh die geänderten Daten anzeigen. Wenn nicht, wird es ohne Commit wohl nicht funktionieren (wie auch?).


Bitburki - Sa 10.01.09 10:03

Tut es aber leider nicht. Eine Notlösung wäre meines Erachtens noch, wenn ich irgendwie an den Inhalt des RichEdits rankommen würde. Den normalen Text würd ich ja bekommen, aber leider nicht mit Formatierungen. Zumindest weiß ich nicht wie? Bei Memo gibts ja keine Formatierungen (memo.lines.text oder so ähnlich) aber wie kann ich den Inhalt von einem RichEdit in ein anderes "moven"?


jaenicke - Sa 10.01.09 12:42

user profile iconBitburki hat folgendes geschrieben Zum zitierten Posting springen:
Den normalen Text würd ich ja bekommen, aber leider nicht mit Formatierungen.
SaveToStream + LoadFromStream funktioniert z.B.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  tmp: TMemoryStream;
begin
  tmp := TMemoryStream.Create;
  RichEdit1.Lines.SaveToStream(tmp);
  tmp.Position := 0;
  RichEdit2.Lines.LoadFromStream(tmp);
  tmp.Free;