Zitat:
Delphi-Quellcode:
if VisCounter = 0 then
VisWinCounter := VisCounter;
das ist nicht verständlich - auch weil du so viele globale Variablen benutzt.
Schwierig zu erklären ich versuchs aber trotzdem mal.
VisCounter = 0 ist reserviert für Plugins welche nicht initialisiert(gestartet) wurden.
VisWinCounter ist der zähler welcher übergreifend im ganzen Code zur identifizierung des in
der PluginListe angeklickten Plugin gilt.
Wurde das Plugin nicht gestartet dann ist VisWinCounter immer null.
Muss also wie oben den wert 0 bekommen.
Dadurch kann ich die configuration der Plugins starten editieren welche selbst nicht initialisiert(gestartet) wurden.
Code:
tmpvis = BASS_WINAMPVIS_CreateVis(alist(IntI), module, BASS_VIS_NOINIT, 0, False, "0")
Hier wird aus der Hauptanwendung tmpvis ermittelt.
BASS_VIS_NOINIT bedeutet das das Plugin nicht gestartet wird deshalb wird VisCounter mit 0 übergeben.
Nun kann ich alle namen der module und des Plugins selbst ermitteln ohne das ein Plugin gestartet wurde.
VisCounter = 0 geht also nie ins leere ..
Wenn 0 dann kann ich mit allen Plugins arbeiten .. config usw.. ohne das die gestarteten
Plugins davon betroffen oder beeinflusst werden.
VisWinCounter wird zweimal übergeben einmal 0 wenn kein Plugin gestartet wird
und hier
Delphi-Quellcode:
if (VisInfo[VisCounter]^.Init) then
begin
VisWinCounter := VisCounter;
VisInfo[VisWinCounter]^.VisInfoCount := VisWinCounter;
wenn eins gestartet wurde. erst dann wird es hochgezählt.
Zitat:
Jetzt muss ich erstmal eine Pause machen - deine Probleme sind immer so umfangreich...
In diesen Fall bis auf die kleinen konvertierungsfehler eigentlich nicht.
Bin halt übervorsichtig
Also beim ersten start 1 Plugin läuft gibt es keinen
AV keine anderen Fehler!
Beim zweiten Plugin muss ich nur dafür sorgen das der erste eintrag Array(1) nicht von Array(2) überschrieben wird.
Andere probs habe ich nicht.
gruß