Announcement

Collapse
No announcement yet.

Kann den Fehler nicht finden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Kann den Fehler nicht finden

    Hi, allerseits!

    Die Voraussetzungen: W2K, D6E, MSSQL 2K, UPdate-Packs installiert

    Die Vorbedingung:

    Über TADODataset wird ein Datensatz angezeigt. Ein TDBRichEdit zeigt den Inhalt eines MSQL Feldes [TEXT] an. Bis hierhin alles fein.

    Mittels eines Buttons kann eine Editor-Form mit WordPad ähnlichen Funktionen aufgerufen werden. Auf dem Editor ist ebenfalls ein TDBRichEdit[RichEdit]. Nach dem Create der Form (frmBlobEdit) wird mittels

    <PRE>
    .....
    try
    frmBlobEdit.RichEdit.Datasource := ActSrc;
    frmBlobEdit.RichEdit.DataField := ADODataset.fields.fields[ThisFieldNr].FieldName;
    frmBlobEdit.ShowModal
    finally.....
    </PRE>

    die Zuweisung vorgenommen.

    Das Problem:

    Egal, wie, aber

    1. der angezeigte Text im Editor (frmBlobEdit] verliert bis auf die Farbeinstellungen alle Informationen

    2. Änderungen werden nicht zurückgeschrieben, OBWOHL sich bei Änderungen der Zustand vom ADODataSet auf dsEdit ändert ! deFacto wird gar nichts zurückgeschrieben

    WARUM?, Ich suche unbd suche und finde nicht die Lösung. Es ändert nichts, die Datasource vorher zu entkoppeln, ein andere Instanz zu erstellen und soweiter.

    Es liegt auch nicht an den Einstellungen des Editors, denn die gleichen Einstellungen funktionieren mit Interbase bestens.

    Für Hilfe, bzw Hinweise zur Lösung des Problems bin ich wirklich sehr dankbar.

    Gruß

    Bernhard

  • #2
    Hi,
    <br>
    <br>ein paar Vorschläge:
    <br>1)
    <br>ggf. erstmal mit einem minimal RTF Edit Fenster anfangen, das so wenig Funktionen wie möglich bietet (am besten nur ein Form mit einem DBRichEdit).
    <br>2)
    <pre>
    procedure TfrmRTFEdit.FormShow(Sender: TObject);
    begin
    If Not (Editor.DataSource.DataSet.State In [dsEdit,dsInsert]) Then
    Editor.DataSource.DataSet.Edit;
    end;
    </pre>
    <br>3)
    <pre>
    procedure TfrmRTFEdit.FormClose(Sender: TObject; var Action: TCloseAction);
    Var
    Temp : Integer;
    begin
    If (Editor.DataSource.DataSet.State In [dsEdit,dsInsert]) Then
    Begin
    Temp := Application.MessageBox('Daten übernehmen?','übernehmen?', MB_YESNOCANCEL);
    If Temp = IDYES Then
    Begin
    Editor.DataSource.DataSet.Post;
    Editor.DataSource.DataSet.Refresh;
    End
    Else If Temp = IDNo Then
    Editor.DataSource.DataSet.Cancel
    Else
    Abort;
    End;
    .
    .
    .
    </pre>
    <br>
    <br>So funktioniert es bei mir (95/98/NT/W2K D5E ADO MSSQL 7 und natürlich alle updates).
    <br>Kleiner Schönheitsfehler an dieser Lösung ist erstmal, das man generell ein edit anstöst. Wenn ich mich recht erinnere habe ich das gemacht, da manchmal bei Font Änderung kein Edit ausgelöst wurde. Aber das bekommt man wohl auch noch in den Griff.
    Noch ein Nachteil ist, das wenn man drei Stunden ununterbrochen Prosa ein tippt das DataSet die ganze zeit im dsEdit State ist.
    <br>
    <br>Ich hoffe das hilft dir weiter.
    <br>
    <br>mfg
    <br>P

    Comment


    • #3
      Hi Patrick

      Danke für Deine Hilfsbemühungen ! Der Fehler lag mal wieder im Detail.

      Um ihn letztlich zu beheben, waren zwei Änderungen am Source-Code notwendig. Ich zähle diese hier auf, falls mal jemand ein ähnliches Problem hat.

      1.) SelectionChange: Ist in diesem Ereignis gecoded -> Ist die Source nicht in dsedit dann Fehler
      2.) OnActivate : Stellt bei mir einen Font ein und zeigt ihn an. Ist ja alles schön und gut, darf es aber nur machen, wenn KEIN TEXT im Feld, sonst wird der gesamte Text in den Font eingestellt (Deshalb blieben die Farben erhalten, aber die Fonts waren weg)

      @Patrick: Drei Stunden Prosa kommen in unserem Geschäft nicht vor, deshalb kann ich diesen Weg beschreiten; und ohne Eingabe schließen sich ohnehin alle Fenster nach drei Minuten

      Nochmals Dank für Deine Bemühung

      Gruß
      Bernhar

      Comment


      • #4
        Hallo Bernhard,
        <br>
        <br>der Editor, ist das eine Fremdkomponente? Wenn ja welche?
        <br>Oder selbst programmiert (basierend auf dem RTF Demo von Borland)?
        <br>
        <br>mfg
        <br>P

        Comment


        • #5
          auf dem rtf-demo von borland von mir selbst vor längerer zeit etwas schlampig aufgesetzt und dann einfach ....

          jaja, wenn man sich arbeit sparen will, kommt manchaml mehr dabei raus

          , gruß, bernhar

          Comment

          Working...
          X