Einzelnen Beitrag anzeigen

Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Fehlermeldung bei Schreiben nach CSIDL_APPDATA

  Alt 16. Apr 2011, 13:07
Zitat:
.. ich verstehe nicht genau was Du damit sagen willst.
initialization wird genau einmal ausgeführt.
Wenn mehrere Units einen initialization Abschnitt haben entscheidet die Reihenfolge
in der uses-Klausel darüber wann welcher initialization Abschnitt ausgeführt wird.
Klaus, ich meinte, ob das Applicationsweit gilt, auch z.B. dann, wenn Komponenten, die modale Ereignisse sind und den gleichen initialization Abschnitt benutzen. Wird der dann bei Komp.Execute nocheinmal ausgeführt? Kann ich aber auch durch ein einfaches Showmessage im initialization Abschnitt selbst testen.

Auf alle Fälle erst mal ein kräftiges Dankeschön für deinen Support, auch an Philip.

Jetzt habe ich gesehen, daß mache Programme gleichzeitig gestartet werden und im OnShow Ereignis erst mal kräftig iniDateien lesen, und zwar die selben. Da bleibt wohl nur diese Variante.

Delphi-Quellcode:
procedure Wait (var N: integer);
var
  fTime: Cardinal;
begin
  fTime:=GetTickCount;
  repeat until (GetTickCount-fTime) > 500;
  N:=N+1;
end;

function TStrIniFile.TryOpenFile (var f: TextFile; const fWrite: boolean): boolean;
var
  N,IO: integer;
begin
  N:=0;
  AssignFile(f,FileName);
  if not fWrite then
  begin
    Repeat
      {$I-} Reset(f); {$I+}
      IO:=IOResult;
      if IO<>0 then Wait(N);
    Until ((IO=0) or (N=10));
  end
  else
  begin
    Repeat
      {$I-} Rewrite(f); {$I+}
      IO:=IOResult;
      if IO<>0 then Wait(N);
    Until ((IO=0) or (N=10));
  end;
  RESULT:=(IO=0);
  if not RESULT then
    MessageDlg(Application.ExeName+': '+FileName+' ['+SysErrorMessage(IO)+'].',mtWarning,[mbOk],0);
end;
  Mit Zitat antworten Zitat