Programmcode Befehle Syntax Beispiele: Unterschied zwischen den Versionen

Aus PC_DIMMER
Wechseln zu: Navigation, Suche
(Zeile mit ; abschließen)
(CodeSzene - Prinzipieller Aufbau)
Zeile 7: Zeile 7:
 
=Grundlegendes=
 
=Grundlegendes=
 
==CodeSzene - Prinzipieller Aufbau==
 
==CodeSzene - Prinzipieller Aufbau==
Sobald eine neue CodeSzene in der Szenenverwaltung hinzugefügt wird beinhaltet sie bereits diesen grundlegenden Programmcode.<code>
+
Sobald eine neue CodeSzene in der Szenenverwaltung hinzugefügt wird beinhaltet sie bereits diesen grundlegenden Programmcode.
unit CodeScene;
+
interface
interface
+
procedure InitScene;
procedure InitScene;
+
procedure StartScene;
procedure StartScene;
+
procedure StopScene;
procedure StopScene;
+
implementation
implementation
+
 
+
procedure InitScene;
procedure InitScene;
+
begin
begin
+
end;
end;
+
 
+
procedure StartScene;
procedure StartScene;
+
  var
  var
+
  MIDI_last_MSG, MIDI_last_Data1, MIDI_last_Data2, MIDI_last_in:variant;
  MIDI_last_MSG, MIDI_last_Data1, MIDI_last_Data2, MIDI_last_in:variant;
+
begin
begin
+
  MIDI_last_in := get_lastmidi();
  MIDI_last_in := get_lastmidi();
+
  MIDI_last_MSG := Ord(Copy(MIDI_last_in,1,1));  
  MIDI_last_MSG := Ord(Copy(MIDI_last_in,1,1));  
+
  MIDI_last_Data1 := Ord(Copy(MIDI_last_in,2,1));
  MIDI_last_Data1 := Ord(Copy(MIDI_last_in,2,1));
+
  MIDI_last_Data2 := Ord(Copy(MIDI_last_in,3,1));
  MIDI_last_Data2 := Ord(Copy(MIDI_last_in,3,1));
+
   
+
  ShowMessage( IntToStr(MIDI_last_MSG) + '-' + IntToStr(MIDI_last_Data1) + '-' + IntToStr(MIDI_last_Data2));
  ShowMessage( IntToStr(MIDI_last_MSG) + '-' + IntToStr(MIDI_last_Data1) + '-' + IntToStr(MIDI_last_Data2));
+
   
+
end;
end;
+
 
+
procedure StopScene;
procedure StopScene;
+
begin
begin
+
end;
end;
+
 
+
end.
end.</code>
 
  
 
==Zeile mit ; abschließen==
 
==Zeile mit ; abschließen==

Version vom 25. Mai 2022, 14:48 Uhr

Programmcode Befehle Syntax Beispiele

Vorwort:

Seit 05/2022 gibt es Code-Szenen in der Szenenverwaltung. Vorher konnte Code nur bei einem Button im Kontrolpanel hinterlegt werden. Dieses Tutorial ist deshalb vermutlich für beides gültig.
Hier werden die Befehle beschrieben die in einer Code-Szene verwendet werden können. Es wird auch auf Delphi Befehle eingegangen. Möglichst immer mit einem Beispiel. Ich erweitere dieses Tutorial Befehl für Befehl. Immer dann wenn ich den Befehl in der Praxis selbst probiert habe. Eine Kurzhilfe hat Christian jeweils im "Edit-Modus" hinterlegt.

Grundlegendes

CodeSzene - Prinzipieller Aufbau

Sobald eine neue CodeSzene in der Szenenverwaltung hinzugefügt wird beinhaltet sie bereits diesen grundlegenden Programmcode.

interface
procedure InitScene;
procedure StartScene;
procedure StopScene;
implementation

procedure InitScene;
begin
end;

procedure StartScene;
  var
  MIDI_last_MSG, MIDI_last_Data1, MIDI_last_Data2, MIDI_last_in:variant;
begin
  MIDI_last_in := get_lastmidi();
  MIDI_last_MSG := Ord(Copy(MIDI_last_in,1,1)); 
  MIDI_last_Data1 := Ord(Copy(MIDI_last_in,2,1));
  MIDI_last_Data2 := Ord(Copy(MIDI_last_in,3,1));

  ShowMessage( IntToStr(MIDI_last_MSG) + '-' + IntToStr(MIDI_last_Data1) + '-' + IntToStr(MIDI_last_Data2));

end;

procedure StopScene;
begin
end;

end.

Zeile mit ; abschließen

Jede Programmcode Zeile muss mit ; (Strichpunkt) enden. Der Hintergrund ist, dass der Programmcode nicht Zeilenweise abgearbeitet wird. Der Strichpunkt löst die Befehlsabarbeitung aus.

Sollte man diesen vergessen, vermischt der Befehlsinterpreter euren Code. Es kommt zu den irrsinnigsten Fehlermeldungen.

Es gibt jedoch Ausnahmen. Befehle die wiederum Code enthalten. Zum Beispiel "if". Dieser Code wird meist in geschweifte Klammern gesetzt.

 for (int i=0;i<10;i++)
   if( values[i]>0&&values[ i+1 ]>0 )
   {
     out.println ("found!");
     break;
   }

Befehle

PCDimmer

Befehle Delphi/Pascal