Hallo liebe Mitstreiter,
beim Test der neuen Funktionen (NumInputsEx, NumOutputsEx) ist mir folgendes aufgefallen:
- die Funktionen werden im RUN-Modus permanent aufgerufen, ist das gewollt und sinnvoll ?
- beim Umschalten zwischen Schaltung und Frontplatte im Entwurfsmodus werden die Funktionen nicht aufgerufen, das schränkt die Funktionen unnötig ein
- beim löschen einer DLL aus der Schaltung fehlt mir der Aufruf ebenfalls, hier wäre eventuell eine function DeleteEx(PUser: PDLLParams): Byte; sehr hilfreich
Hintergrund ist die Darstellung der MGR.DLL auch im Entwurfsmodus. Ich will hier keine Kritik üben, vielleicht ist das ja auch erst eine Anregung für PL 5.0.
Gruß BKGMX
Neue Funktionen NumInputsEx und NumOutputsEx
Re: Neue Funktionen NumInputsEx und NumOutputsEx
"Die Funktionen werden im RUN-Modus permanent aufgerufen, ist das gewollt und sinnvoll ?"
- Nein, das muss ich mir anschauen. Darauf sollte man sich also nicht verlassen.
"beim Umschalten zwischen Schaltung und Frontplatte im Entwurfsmodus werden die Funktionen nicht aufgerufen, das schränkt die Funktionen unnötig ein"
- Die Funktionen machen nur beim Laden/Speichern, Kopieren/Einfügen und nach dem Konfigurationsdialog Sinn.
"beim löschen einer DLL aus der Schaltung fehlt mir der Aufruf ebenfalls, hier wäre eventuell eine function DeleteEx(PUser: PDLLParams): Byte; sehr hilfreich"
- Gelöscht ist gelöscht. Was soll da noch passieren?
- Nein, das muss ich mir anschauen. Darauf sollte man sich also nicht verlassen.
"beim Umschalten zwischen Schaltung und Frontplatte im Entwurfsmodus werden die Funktionen nicht aufgerufen, das schränkt die Funktionen unnötig ein"
- Die Funktionen machen nur beim Laden/Speichern, Kopieren/Einfügen und nach dem Konfigurationsdialog Sinn.
"beim löschen einer DLL aus der Schaltung fehlt mir der Aufruf ebenfalls, hier wäre eventuell eine function DeleteEx(PUser: PDLLParams): Byte; sehr hilfreich"
- Gelöscht ist gelöscht. Was soll da noch passieren?
ABACOM support
Re: Neue Funktionen NumInputsEx und NumOutputsEx
So, jetzt bin ich schlauer. Die vermeintlichen Aufrufe kommen nicht aus ProfiLab, sondern aus der Counter-DLL selbst.Die Funktionen werden im RUN-Modus permanent aufgerufen, ist das gewollt und sinnvoll ?
In dem Counter-Beispiel wird in der CALCULATE-Procedure für die Berechnung die Anzahl der Ausgänge benötigt:
Code: Alles auswählen
Procedure Calculate(PInput,POutput,PUser: PDLLParams); //called regularly from ProfiLab
var i: Integer;
NumBits: Integer;
MaxCount: Word;
begin
NumBits:=NumOutputsEx(PUser); ///////// DLL-Interner Aufruf ///////////
(...)
end;
ABACOM support
Re: Neue Funktionen NumInputsEx und NumOutputsEx
Danke für die schnelle Antwort,
vielleicht habe ich mich zu kurz ausgedrückt.
zu Punkt 1:
ist also erledigt. NumBits:=NumOutputsEx..., das hatte ich inzwischen auch gesehen. Wer lesen kann, ist klar im Vorteil, also Sorry.
zu Punkt 2:
Beim Einfügen einer neuen DLL und anschließender Configuration ist alles ok. Der neue DLLIndex wird angezeigt.
Beim Kopieren/Einfügen bzw. Duplizieren wird NumOutputsEx in der neu eingefügten DLL nicht aufgerufen, der aktuelle DLLIndex bleibt bei 1 stehen, egal welche DLL ich dupliziere.
(Siehe Anhang, einfach mal die DLL duplizieren und die Ausgabe anschauen)
Ein neues graphisches Element kann ich dann also nicht auf der Frontplatte einfügen.
Kein DLLIndex -> welche Nummer soll das neue Bauteil bekommen?
zu Punkt 3:
Wird die DLL im Entwurfsmodus gelöscht, muß ja auch das zugehörige Bauteil auf der Frontplatte gelöscht werden. Keine Nachricht -> kein DLLIndex -> welches Bauteil soll ich dann löschen?
vielleicht habe ich mich zu kurz ausgedrückt.
zu Punkt 1:
ist also erledigt. NumBits:=NumOutputsEx..., das hatte ich inzwischen auch gesehen. Wer lesen kann, ist klar im Vorteil, also Sorry.
zu Punkt 2:
Beim Einfügen einer neuen DLL und anschließender Configuration ist alles ok. Der neue DLLIndex wird angezeigt.
Beim Kopieren/Einfügen bzw. Duplizieren wird NumOutputsEx in der neu eingefügten DLL nicht aufgerufen, der aktuelle DLLIndex bleibt bei 1 stehen, egal welche DLL ich dupliziere.
(Siehe Anhang, einfach mal die DLL duplizieren und die Ausgabe anschauen)
Ein neues graphisches Element kann ich dann also nicht auf der Frontplatte einfügen.
Kein DLLIndex -> welche Nummer soll das neue Bauteil bekommen?
zu Punkt 3:
Wird die DLL im Entwurfsmodus gelöscht, muß ja auch das zugehörige Bauteil auf der Frontplatte gelöscht werden. Keine Nachricht -> kein DLLIndex -> welches Bauteil soll ich dann löschen?
- Dateianhänge
-
- NumOutPutsExTest.zip
- (194.36 KiB) 348-mal heruntergeladen
Re: Neue Funktionen NumInputsEx und NumOutputsEx
zu Punkt 2 und 3:
evtl. auch zur Verwaltung von Indizierten Einträgen in eine Ini-Datei.
Mike
evtl. auch zur Verwaltung von Indizierten Einträgen in eine Ini-Datei.
Mike
Re: Neue Funktionen NumInputsEx und NumOutputsEx
@Mike D
Ini-Datei ist schwierig, da ich ja DLLs im Entwurfsmodus löschen und hinzufügen kann und sich dadurch die Nummerierung der DLL ändert. Mit Namen versehen kann man sie ja nicht. Bei compilierten Dateien an Kunden sicher kein Problem, daß würde die Konfiguration erheblich erleichtern, da eventuell einfach nur die Ini-Datei getauscht werden muß.
Gruß BKGMX
Ini-Datei ist schwierig, da ich ja DLLs im Entwurfsmodus löschen und hinzufügen kann und sich dadurch die Nummerierung der DLL ändert. Mit Namen versehen kann man sie ja nicht. Bei compilierten Dateien an Kunden sicher kein Problem, daß würde die Konfiguration erheblich erleichtern, da eventuell einfach nur die Ini-Datei getauscht werden muß.
Gruß BKGMX