Da Du noch Neu bist mit Programmieren verrate ich Dir auch Warum
Ich zerpflücke mal Dein Text und kommentiere hier und da
Delphi-Quellcode:
uses // <- Wir fangen an Units einzubinden die hier gebraucht werden
{$IFDEF UNIX} // <- Wenn Wir Unix verwenden Bedingung
{$IFDEF UseCThreads} // <- Wenn Wir UseCThreads verwenden Bedingung
cthreads, // <- treffen beide Bedingungen zu, lade diese Datei und stelle Inhalt zur Verfügung
{$ENDIF} // das schließt die letzte $IFDEF Bedingung
{$ENDIF} // das schließt die letzte $IFDEF Bedingung
{$IFDEF Windows} // <- Wenn Wir Windows verwenden Bedinung
// Hier sollten alle Units rein die man unter Windows benötigt
// Windows,
// Da bei Dir "Windows.pas" nicht die Flags enthält brauchen Wir "Windows.pas" auch nicht zu laden
// mit zwei schrägen Strichen am Anfang kann man übrigens Kommentare im Source hinterlassen
// oder wie hier getan die Anweisung "Windows," damit rauskommentiert.
{$ENDIF} // das schließt die letzte $IFDEF Bedingung
...
{$IFDEF Windows} // <- Wenn Wir Windows verwenden Bedinung
const // const Werte sind feste Werte, alles was man hier deklariert bleibt im Normalfall so wie es ist
IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = $0400; { If Image is on removable media, copy and run from the swap file. }
IMAGE_FILE_NET_RUN_FROM_SWAP = $0800; { If Image is on Net, copy and run from the swap file. }
// Da Deinem Lazarus die Deklaration IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP und IMAGE_FILE_NET_RUN_FROM_SWAP fehlten
// haben Wir die auf diese Weise selbst hinzugefügt
// Deswegen klappt letztendlich auch das Integrieren dieser speziellen Flags
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
{$ENDIF} // das schließt die letzte $IFDEF Bedingung