TDdeClientConv und TDdeClientItem - EAccessViolation *GELÖST* (:

    TDdeClientConv und TDdeClientItem - EAccessViolation *GELÖST* (:

    Hallöchen,

    nach stundenlangem Suchen und probieren habe ich nun heraus gefunden wie ich mit den 2 Komponenten arbeiten muss.
    Ich habe Folgendes Problem:

    Ich habe die Verbindung zum Dde Server erfolgreich aufgebaut.
    Nun möchte ich jede Sekunde Daten von ihm abfragen. Funktioniert auch super, aber
    ich bekomme immer wieder mal zwischen durch einen EAccessViolation Zugriffsverletztung beim lesen. In unregelmässigen Abständen.
    An sich kann nicht viel verkehrt an dem Programm sein die 2 Komponenten ein Timer und ein Memo wo dann das abgefragte rein geschrieben wird.
    Wenn die Fehlermeldung kommt seh ich im Hintergrund das das Programm dennoch immer wieder abfragt mit Erfolg.

    Ich hoffe ich könnt mein Problem verstehen und wisst vll. eine Lösung

    Den Fehler mit try finally und except habe ich schon ohne erfolg getestet.

    Es muss auch Dde sein da dieses Programm wo ich die Daten her bekomme keine andere Schnittstelle hat.


    Quellcode

    1. procedure TForm1.DdeClientItem1Change(Sender: TObject);
    2. begin
    3. memo1.Text:=ddeClientItem1.text;
    4. end;
    5. procedure TForm1.Timer1Timer(Sender: TObject);
    6. begin
    7. ddeClientItem1.DdeItem:='[xxx]';
    8. //memo1.Text:=ddeClientItem1.text; habe ich auch schon getestet
    9. end;


    Ich hoffe einer kann mir helfen. Schon mal vielen Dank im Voraus


    LG Bamer :)


    //EDIT *GELÖST*


    Ich brauch den Timer gar nicht. Das OnChange Ereignis aktiviert sich immer wenn ein neuer Wert erscheint. Etwas Verzweiflung und genaues nachdenken und dann ist mir eingefallen das es ja eine Verbindung ist und dieser Wert immer wieder überschrieben wird.

    Trd. Vielen Dank ! :)

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Bamer“ ()