Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Frage zu IsConnectedToInternet, Speicher freigeben? (https://www.delphipraxis.net/86966-frage-zu-isconnectedtointernet-speicher-freigeben.html)

Hallo_Thomas 21. Feb 2007 16:14


Frage zu IsConnectedToInternet, Speicher freigeben?
 
Hallo,
ich verwende folgenden Code, der klappt auch wunderbar. Nur ist nach der Abfrage die Datei ca 1MB grösser, wie kann ich den Speicher wieder freigeben?

Delphi-Quellcode:
uses
  WinInet;

{...}

function IsConnectedToInternet: Boolean;
var
  dwConnectionTypes: DWORD;
begin
  dwConnectionTypes :=
    INTERNET_CONNECTION_MODEM +
    INTERNET_CONNECTION_LAN +
    INTERNET_CONNECTION_PROXY;
  Result := InternetGetConnectedState(@dwConnectionTypes, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if IsConnectedToInternet then
    ShowMessage('Connected.')
  else
    ShowMessage('Not Connected.')
end;

DGL-luke 21. Feb 2007 16:26

Re: Frage zu IsConnectedToInternet, Speicher freigeben?
 
öhm... "die datei"?

Wenn es die eingebundene WinInet.pas ist, die den Speicher verbraucht, musst du InternetGetConnectedState statisch einbinden. dann kannst du die unit rausschmeißen.

Wenn du von Speicherverbrauch zur runtime redest, dann weiß ich nicht, wo der herkommen sollte...

Hallo_Thomas 21. Feb 2007 17:31

Re: Frage zu IsConnectedToInternet, Speicher freigeben?
 
Hatte gerad noch ein bisschen gegooglt, aber bin nicht wirklich am weitergekommen!



Nachtrag: Die Datei(Exe)wird zur Laufzeit nach Button klick um 1MB grösser.

Wie meinst Du Statisch einbinden?? =>unit rausschmeißen(die WinInet.pas hab ich in den uses dabei)



hab leider wirklich nix gefunden?

DGL-luke 21. Feb 2007 18:25

Re: Frage zu IsConnectedToInternet, Speicher freigeben?
 
Die Datei wird ganz sicher nicht nach dem buttonclick um 1MB größer! :shock:

Du meinst wohl den Verbrauch an Arbeitsspeicher... könnte sein, dass da in der API-Funktion was alloziiert wird und der Delphi-Speichermanager behält das, um es später wieder zu verwenden. Kann mir nicht vorstellen, dass Microsoft da Speicherlecks fabriziert hat. :gruebel:

Aber du kannst auf jeden Fall nichts dagegen tun außer einen anderen Speichermanager zu verwenden :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 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