Seite 1 von 1

Delphi PLugin Submaster Setzen

Verfasst: 15.07.2014, 16:46
von Tortenotto
Nabend,
Bin grad dabei ein Plugin zu schreiben das über Rs232 empfangene Werte an die Submaster "sendet"
(Ich hab ein altes Lichtpult auf USB umgebaut).
Um die Submaster einzustellen nutze ich folgendes:

Code: Alles auswählen

var
  Datar: Ansichar;
  Datare:SmallInt ;
  Submasterarray:Variant;

...

   Submasterarray:=VarArrayCreate([0,6], varString);
   Submasterarray[0]:=('{4EFFB244-68E6-4B1E-AE56-2D2050BD1B22}');
   Submasterarray[1]:=('1')   ;
   Submasterarray[2]:=('0')   ;
   Submasterarray[3]:=('NULL');
   Submasterarray[4]:=('NULL');
   Submasterarray[5]:=('{00000000-0000-0000-0000-000000000000}');
   Submasterarray[6]:=('{00000000-0000-0000-0000-000000000000}');
   SendMSG(MSG_STARTCOMMAND,Submasterarray,datare)  ;
Der Plugintester und Pc Dimmer melden aber "Fehler bei Erzeugen von Variant oder sicherem Array".
Hat jemand ne Idee was ich falsch mache?(Ich habe keine Ahnung von Delphi :? )

MfG Henning

Re: Delphi PLugin Submaster Setzen

Verfasst: 15.07.2014, 18:26
von Christian
Probiers mal so:

Code: Alles auswählen

var
  Data2:Byte;
  Submasterarray:array[0..6] of string[38];

...

   Submasterarray[0]:='{4EFFB244-68E6-4B1E-AE56-2D2050BD1B22}';
   Submasterarray[1]:='1';
   Submasterarray[2]:='0';
   Submasterarray[3]:='NULL';
   Submasterarray[4]:='NULL';
   Submasterarray[5]:='{00000000-0000-0000-0000-000000000000}';
   Submasterarray[6]:='{00000000-0000-0000-0000-000000000000}';

   Data2:=128;

   SendMSG(MSG_STARTCOMMAND,Submasterarray,Data2);
Dies sollte den entsprechenden Befehl auf 128 setzen.

"Submasterarray" ist kein VarArray, sondern ein einfaches String-Array. Auf der entsprechenden Wiki-Seite habe ich dies entsprechend gekennzeichnet: http://www.pcdimmer.de/wiki/index.php/Nachrichtensystem
MSG_STARTCOMMAND=42; // Data1=array[0..6] of string[38], Data2=byte (Sollwert 0..255)
{
Data[0]=ID des aufzurufenden Befehls
Data[1]=Integer-Wert 1 als String
Data[2]=Integer-Wert 2 als String
Data[3]=String-Wert 1
Data[4]=String-Wert 2
Data[5]=GUID 1 als String
Data[6]=GUID 2 als String
}
viele Grüße,
Christian

Re: Delphi PLugin Submaster Setzen

Verfasst: 15.07.2014, 19:10
von Tortenotto
Vielen Dank erstmal,
mit der Lösung lässt es sich allerding nicht Compilieren:
[dcc32 Fehler] main.pas(311): E2010 Inkompatible Typen: 'Variant' und 'array[0..6] of ShortString'
MfG Henning

Re: Delphi PLugin Submaster Setzen

Verfasst: 15.07.2014, 20:58
von Christian
Sorry, ich hab nicht nachgedacht. Natürlich ist Dein Ansatz korrekt. Allerdings solltest Du das Variant-Array nicht als Typ "varString", sondern als "varVariant" definieren:

Code: Alles auswählen

var
  Submasterarray:Variant;
  Data2:Byte;
begin
  Submasterarray:=VarArrayCreate([0,6], varVariant);
  Submasterarray[0]:='{4EFFB244-68E6-4B1E-AE56-2D2050BD1B22}';
  Submasterarray[1]:='1';
  Submasterarray[2]:='0';
  Submasterarray[3]:='NULL';
  Submasterarray[4]:='NULL';
  Submasterarray[5]:='{00000000-0000-0000-0000-000000000000}';
  Submasterarray[6]:='{00000000-0000-0000-0000-000000000000}';

  Data2:=128;

  SendMSG(MSG_STARTCOMMAND,Submasterarray, Data2);
end;
beste Grüße,
Christian

Re: Delphi PLugin Submaster Setzen

Verfasst: 03.08.2014, 20:19
von Tortenotto
Nabend ich hätte noch eine Frage
ich möchte im Plugin die ID einer Szene aus der Szenenverwaltung aus lesen.
Weiß jemand wie das geht?

MfG Henning