AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Lazarus (IDE) Netzwerkabbrüche oder Programm schließt sich einfach
Thema durchsuchen
Ansicht
Themen-Optionen

Netzwerkabbrüche oder Programm schließt sich einfach

Ein Thema von Matthias LE · begonnen am 2. Jul 2018 · letzter Beitrag vom 6. Jul 2018
Antwort Antwort
Seite 2 von 4     12 34      
Matthias LE

Registriert seit: 2. Jul 2018
16 Beiträge
 
#11

AW: Netzwerkabbrüche oder Programm schließt sich einfach

  Alt 2. Jul 2018, 14:07
Sorry - Ja der Server und die Clients sind alles Windows Maschinen

-habe es nochmal mit deinem letzten Beitrag versucht, da kommt aber wieder die Fehlermeldung "project1.lpr(21,2) Error: Identifier not found "IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP""


Code >>>

program project1;

{$mode objfpc}{$H+}

uses

{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}

{$IFDEF Windows}
Windows,
{$ENDIF}

Interfaces, // this includes the LCL widgetset
Forms, datetimectrls, printer4lazarus, Unit1, Unit2, Unit3, Unit4, Unit5,
Unit6, Unit7, Unit8, Unit9, Unit10, Unit11, Unit12, Unit13, Unit14
{ you can add units after this };

{$IFDEF Windows}
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
{$ENDIF}


{$R *.res}


begin
RequireDerivedFormResource := True;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6);
Application.CreateForm(TForm7, Form7);
Application.CreateForm(TForm8, Form8);
Application.CreateForm(TForm9, Form9);
Application.CreateForm(TForm10, Form10);
Application.CreateForm(TForm11, Form11);
Application.CreateForm(TForm12, Form12);
Application.CreateForm(TForm13, Form13);
Application.CreateForm(TForm14, Form14);
Application.Run;
end.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Netzwerkabbrüche oder Programm schließt sich einfach

  Alt 2. Jul 2018, 14:19
Dann fehlen Deiner "Windows.pas" diese Deklarationen oder in Lazarus ist das woanders abgelegt, da bin ich überfragt.
Hier ist die uses wieder bereinigt und die PE-Flags werden nur gesetzt wenn ein Windows Kompilat entsteht.
Ich empfehle Dir mal nach IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP in zusammenhang mit Lazarus zu Suchen, das ist keine so abnormale Konstante.
Delphi-Quellcode:
uses

{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
{$IFDEF Windows}
//Windows,
{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, datetimectrls, printer4lazarus, Unit1, Unit2, Unit3, Unit4, Unit5,
Unit6, Unit7, Unit8, Unit9, Unit10, Unit11, Unit12, Unit13, Unit14
{ you can add units after this };

{$IFDEF Windows}
const
  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. }

{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
{$ENDIF}


{$R *.res}
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Matthias LE

Registriert seit: 2. Jul 2018
16 Beiträge
 
#13

AW: Netzwerkabbrüche oder Programm schließt sich einfach

  Alt 2. Jul 2018, 14:32
Großes Lob an dich!! So funktioniert es ohne Fehlermeldungen.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Netzwerkabbrüche oder Programm schließt sich einfach

  Alt 2. Jul 2018, 14:53
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
Gruß vom KodeZwerg

Geändert von KodeZwerg ( 2. Jul 2018 um 14:55 Uhr)
  Mit Zitat antworten Zitat
Matthias LE

Registriert seit: 2. Jul 2018
16 Beiträge
 
#15

AW: Netzwerkabbrüche oder Programm schließt sich einfach

  Alt 2. Jul 2018, 15:17
Das nenne ich ja mal eine ausführliche Erklärung. DANKE

Gehen wir mal zurück zum Anfang. Was mich da interessiert ist, wenn wir all diese Anweisungen nicht in den Sourcecode hinterlegen (wie am Anfang geschehen) wie oder was wird denn da überhaupt geladen? (nur ein Teil des Programmes )
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Netzwerkabbrüche oder Programm schließt sich einfach

  Alt 2. Jul 2018, 15:31
Ohne diese Flags lädt Windows Deine .exe nur bei Bedarf in Speicher, was bei Netzlaufwerken oder CDRoms Fehler verursachen kann.
Beispiel man startet eine Datei von einem Usb-Laufwerk, wenn man das Usb-Laufwerk rauszieht stürzt früher oder später das Programm ab weil es an entsprechender Stelle keine Daten mehr findet.
Mit diesen Flags gesetzt lädt Windows die Datei komplett in den Speicher was zur Folge hat das ein trennen des Laufwerks nicht gleich die Applikation crashen lässt da die Daten nun aus dem Speicher geholt werden.

Dein Problem kann natürlich auch an völlig anderer Stelle sein, das hier wäre nur eine generelle Empfehlung für .exen die nicht Lokal vorliegen.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Matthias LE

Registriert seit: 2. Jul 2018
16 Beiträge
 
#17

AW: Netzwerkabbrüche oder Programm schließt sich einfach

  Alt 2. Jul 2018, 15:36
Super Sache. Ich werde es in Zukunft mit beachten. Danke nochmal an dieser Stelle an dich.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Netzwerkabbrüche oder Programm schließt sich einfach

  Alt 2. Jul 2018, 15:45
Ja gern geschehen. Wenn es das schon war, wars ja einfach
Teste mal ausgiebig, bei weiteren Fehlern muss man sich den Code anschauen, aber wenn ich schon unit1, unit2, unit3 usw. Lese ahne ich schlimmes ^_^

Ps: Der Text-Editor von diesem Forum für Nachrichten hat als Knopf ein Delphi-Symbol, wenn Du wieder Code hier zeigst drücke vorher auf den Knopf und schreibe Deinen Code zwischen die [ Delphi]...Dein Code...[ /Delphi]. Dann liest es sich einfacher und formatierung bleibt ein wenig bei.
Gruß vom KodeZwerg

Geändert von KodeZwerg ( 2. Jul 2018 um 15:49 Uhr)
  Mit Zitat antworten Zitat
Matthias LE

Registriert seit: 2. Jul 2018
16 Beiträge
 
#19

AW: Netzwerkabbrüche oder Programm schließt sich einfach

  Alt 2. Jul 2018, 20:33
Oha... , das mit den Units würde ich gerne mal näher erläutert haben. Erstellt doch Lazarus diese Units mit jedem neuen Formular von alleine. Das Thema passt aber leider nicht zu diesem Thread.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Netzwerkabbrüche oder Programm schließt sich einfach

  Alt 2. Jul 2018, 22:03
Meine schlimme Vorahnung hast Du ja bereits mit "Erstellt doch Lazarus diese Units mit jedem neuen Formular von alleine." bewahrheitet.
Es ist ratsam jedes Element Sinnvoll zu benennen, wenn Du in 5 Jahren noch Spass an Lazarus hast und Deinen alten Code rausbuddelst möchtest Du bestimmt nicht erst Tagelang checken "ach was ist Unit666; ist CheckBox666 für Button666 zuständig; wie lautet der Name im allgemeinen". Das hilft Dir selbst und ist für jeden der damit zu tun hat einfach leserlicher. Ein wenig Struktur kann nie Schaden.
Nun brauchst Du dafür keinen neuen Thread erstellen, nur im Hinterkopf behalten das Standardnamen doof sind :-]
Wenn man es sich gleich "gut" angwöhnt schadet es nach hinten hin nie.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz