Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 5 von 7 ErsteErste ... 34567 LetzteLetzte
Ergebnis 41 bis 50 von 64

Thema: Libnodave Anwendung schliessen

  1. #41
    Registriert seit
    19.09.2005
    Ort
    Freudenstadt
    Beiträge
    811
    Danke
    64
    Erhielt 101 Danke für 64 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Ralle Beitrag anzeigen
    Nach meiner bisherigen Erfahrung passiert das tatsächlich nie mit kleinen Testanwendungen. Erst wenn es dann größer und verwickelter wird (Clientfenster, viele Komponenten etc.) passiert das dann irgendwann.
    Mit der Größe der Anwendung hat das IMHO wenig zu tun (meine Systemdienste sind auch recht komplex), aber mit Sicherheit steigt mit der Anzahl der eingesetzten (Fremd-) Bibliotheken und Komponenten die Wahrscheinlichkeit des Auftretens von Fehlern. Nach meinen Erfahrungen übrigens bei gekauften Bibliotheken genau so häufig wie bei Freien (auch wenn QM oft einen anderen Standpunkt vertritt). Bei Fehlern, für die man auch noch bezahlt hat, tut man sich allerdings wesentlich leichter, dem Verantwortlichen die Pest an den Hals zu wünschen ...


    Gruß Axel
    Man muß sparn wo mn knn!

  2. #42
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    @afk

    Nicht zu vergessen, das auch die VLC diverse Fehler enthält!
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #43
    Registriert seit
    15.09.2008
    Beiträge
    25
    Danke
    0
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Hallo Snopy123123!
    In VB beende ich die Verbindung wie folgt:

    Private Sub Trennen()
    ' Verbindung abbauen
    Dim RetCode As Long
    If hConnection <> 0 Then
    RetCode = daveDisconnectPLC(hConnection)
    daveFree hConnection
    hConnection = 0
    End If
    If hInterface <> 0 Then
    RetCode = daveDisconnectAdapter(hInterface)
    daveFree hInterface
    hInterface = 0
    End If
    If hSocket <> 0 Then
    RetCode = closePort(hSocket)
    hSocket = 0
    End If
    End Sub

    Das hat von Anfang an auf Anhieb funktioniert. Habe noch nie eine
    Beschwerde von Windows (98,WIN2000,XP und Vista) gesehen.
    m.f.G. alfonsmoeller

  4. #44
    Registriert seit
    22.02.2007
    Ort
    Sponheim
    Beiträge
    190
    Danke
    3
    Erhielt 10 Danke für 9 Beiträge

    Standard

    Zeig doch mal etwas Quellcode, wenn dein Projekt nicht zu geheim ist. Ich verwende TNoDave relativ oft und hatte noch nie Probleme damit im OnClose der Anwendung die Verbindung zu trennen.

    Evtl. ist dein Problem, dass der Thread noch läuft, du die Verbindung aber schon getrennt hast.

    Versuch's mal mit WaitFor beim Beenden des Threads.
    Wie kann es sein, dass am Ende des Geldes noch Monat übrig ist?
    Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück!
    engbarth.es

  5. #45
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard

    Zitat Zitat von marcengbarth Beitrag anzeigen
    Zeig doch mal etwas Quellcode, wenn dein Projekt nicht zu geheim ist. Ich verwende TNoDave relativ oft und hatte noch nie Probleme damit im OnClose der Anwendung die Verbindung zu trennen.

    Evtl. ist dein Problem, dass der Thread noch läuft, du die Verbindung aber schon getrennt hast.

    Versuch's mal mit WaitFor beim Beenden des Threads.
    In der TNoDave wird der Thread beim schließen der Verbindung der Thread geschlossen und die Verbindung wird beim freigeben geschlossen...
    „Software wird schneller langsamer als Hardware schneller wird.“ - Niklaus Wirth (1995)

  6. #46
    Snoopy123123 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.08.2006
    Beiträge
    125
    Danke
    15
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von marcengbarth Beitrag anzeigen
    Zeig doch mal etwas Quellcode, wenn dein Projekt nicht zu geheim ist. Ich verwende TNoDave relativ oft und hatte noch nie Probleme damit im OnClose der Anwendung die Verbindung zu trennen.

    Evtl. ist dein Problem, dass der Thread noch läuft, du die Verbindung aber schon getrennt hast.

    Versuch's mal mit WaitFor beim Beenden des Threads.


    Von geheim hat da niemand was gesagt ! Hier mal ein paar Schnipsel, Die Fehlermeldung beim Schliessen bekomme ich übrigens immer noch.



    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
    vtest.Terminate;
    vtest.WaitFor;
    vtest.free;
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    vTest := tTest.Create(false);
    end;


    procedure TTest.execute;
    var
    MyNoDave : TNoDave;
    begin

    MyNoDave := TNoDave.Create(nil);
    MyNoDave.IPAddress:= 'XXX.X.XX.XX';
    MyNoDave.BufLen:= 100;
    MyNoDave.CPUSlot:= 2;
    MyNoDave.IntfName:= 'IF1';
    MyNoDave.IntfTimeout:= 1500000;
    MyNoDave.Protocol:= daveProtoISOTCP;
    MyNoDave.Active:= True;

    while not Terminated do begin
    beendet := true;
    i:=i+1;
    Zaehl:= Zaehl+1;
    Form1.Edit2.Text:= intToStr(Zaehl);

    update(MyNoDave);
    //self.free;
    end; //while


    mynodave.Active:= false;
    MyNoDave.Free;

    end;

  7. #47
    Registriert seit
    07.07.2004
    Beiträge
    3.285
    Danke
    38
    Erhielt 584 Danke für 382 Beiträge

    Standard

    Hallo,

    lese doch einfach nochmal den letzten Beitrag von delfiphan in diesem Fred durch ...

    http://www.delphi-forum.de/printview...a022f8a62b4bb3

    Das mit dem threadsafe kann afk bestimmt beantworten.

    Gruß

    Question_mark
    ''Ich habe wirklich keine Vorurteile.
    Meine Meinung ist nur die Summe der Erfahrungen" ... (Question_mark)
    Zitieren Zitieren Ist Delphi LibNoDave Komponente threadsafe ???  

  8. #48
    Registriert seit
    07.07.2004
    Beiträge
    3.285
    Danke
    38
    Erhielt 584 Danke für 382 Beiträge

    Standard

    Hallo,

    @snoopy123123

    versuche mal folgendes :

    Code:
    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      vtest.FreeOnTerminate := FALSE;
      vtest.Terminate;
      vtest.WaitFor;
      vtest.free;
    end;
    Delphi hat da manchmal noch einige kleine Probleme mit dem Beenden von Threads, da läuft manchmal nicht alles so rund wie gewünscht.

    Gruß

    Question_mark
    ''Ich habe wirklich keine Vorurteile.
    Meine Meinung ist nur die Summe der Erfahrungen" ... (Question_mark)
    Zitieren Zitieren Ein Versuch, mehr nicht ..  

  9. #49
    Registriert seit
    07.07.2004
    Beiträge
    3.285
    Danke
    38
    Erhielt 584 Danke für 382 Beiträge

    Idee

    Hallo,

    und hier noch ein kleines Tut von 'Luckie' aus einem Delphi-Forum. Ich denke mal, da wird einiges etwas klarer und verständlicher. Was Luckie in seinem Tut leider nicht berücksichtigt hat, sind diese kleinen Fehler in Delphi, u.a. beim WaitFor

    http://www.delphi-library.de/topic_T...771939cc05e609

    Gruß

    Question_mark
    ''Ich habe wirklich keine Vorurteile.
    Meine Meinung ist nur die Summe der Erfahrungen" ... (Question_mark)
    Zitieren Zitieren Delphi und Threads  

  10. #50
    Registriert seit
    07.07.2004
    Beiträge
    3.285
    Danke
    38
    Erhielt 584 Danke für 382 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    und das hier :

    MyNoDave.Free;
    gehört mit Sicherheit nicht in die Execute Methode des Threads rein, sondern eher in das CanClose des Hauptformulars.

    Gruß

    Question_mark
    ''Ich habe wirklich keine Vorurteile.
    Meine Meinung ist nur die Summe der Erfahrungen" ... (Question_mark)
    Zitieren Zitieren ...  

Ähnliche Themen

  1. Antworten: 39
    Letzter Beitrag: 06.04.2011, 19:55
  2. WinCC 5.1 Externe Anwendung schliessen
    Von repök im Forum HMI
    Antworten: 0
    Letzter Beitrag: 01.10.2009, 08:32
  3. Themen schliessen
    Von Brro87 im Forum Stammtisch
    Antworten: 15
    Letzter Beitrag: 14.01.2009, 08:47
  4. WinCC: Faceplate schliessen mit C-Sript
    Von kipphase im Forum HMI
    Antworten: 0
    Letzter Beitrag: 08.04.2008, 07:46
  5. WinCC: Meldearchiv per Skript schliessen
    Von Grosser im Forum HMI
    Antworten: 1
    Letzter Beitrag: 02.05.2007, 06:42

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •