Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Ich würde gerne mitzählen, wie oft Form1 geöffnet wurde! (https://www.delphipraxis.net/118961-ich-wuerde-gerne-mitzaehlen-wie-oft-form1-geoeffnet-wurde.html)

BullsEye 19. Aug 2008 15:53

Re: Ich würde gerne mitzählen, wie oft Form1 geöffnet wurde!
 
Oder du machst ne Variable, speicherst die in ner INI FIle und bei jedem Mal wo das Formular aufgerufen wird, wird diese hochgezählt. Beim beenden speicherst du die Variable denn.

Micha88 21. Aug 2008 15:18

Re: Ich würde gerne mitzählen, wie oft Form1 geöffnet wurde!
 
Was hast du denn da vor?

Ich würde es so machen:
- Form 1 öffnen
- Integerwert in INI-File speichern
- Beim wiederöffnen, INI-Wert lesen, um eins erhöhen usw


Das sähe so aus
Delphi-Quellcode:
uses
 {...,} IniFiles;

procedure TForm1.FormCreate(Sender: TObject);
var
 ini: TiniFile;
 iCount: Integer;
begin
 try
  ini := TIniFile.Create('C:\count.ini');
  iCount := ini.ReadInteger('Openings', 'Counts', 1);
  iCount := iCount + 1;
  ini.WriteInteger('Openings', 'Counts', iCount);
 finally
  ini.Free;
 end;
end;

BullsEye 21. Aug 2008 15:37

Re: Ich würde gerne mitzählen, wie oft Form1 geöffnet wurde!
 
Zitat:

Zitat von MichaelLinden
Was hast du denn da vor?

Ich würde es so machen:
- Form 1 öffnen
- Integerwert in INI-File speichern
- Beim wiederöffnen, INI-Wert lesen, um eins erhöhen usw

Genau so meinte ich das ja auch, nur halt ohne Code^^

Hier ne kleine Verbesserung deines Codes weil es sonst unter Vista ggf zu komplikationen kommen kann und es auch nie gut ist was auf C oder sonstwelche Verzeichnisse zu speichern!


Delphi-Quellcode:
uses
 {...,} IniFiles;

procedure TForm1.FormCreate(Sender: TObject);
var
 ini: TiniFile;
 iCount: Integer;
begin
 try
  ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'count.ini');
  iCount := ini.ReadInteger('Openings', 'Counts', 1);
  iCount := iCount + 1;
  ini.WriteInteger('Openings', 'Counts', iCount);
 finally
  ini.Free;
 end;
end;

Micha88 21. Aug 2008 16:48

Re: Ich würde gerne mitzählen, wie oft Form1 geöffnet wurde!
 
Das mit "C" war nur so dahin geklatscht :D

Natürlich schreibe ich selbst IMMER ExtractFilePath(Application.ExeName) oder ExtractFilePath(ParamStr(0))

BUG 21. Aug 2008 17:41

Re: Ich würde gerne mitzählen, wie oft Form1 geöffnet wurde!
 
Zitat:

Zitat von MichaelLinden
Das mit "C" war nur so dahin geklatscht :D

Natürlich schreibe ich selbst IMMER ExtractFilePath(Application.ExeName) oder ExtractFilePath(ParamStr(0))

:warn: Sehr gut, besonders wenn dein Programm im Programmverzeichnis liegt, wo der normale Benutzer keine Schreibrechte hat.
Dann sperrt man die ganzen Nicht-Administrator-Loser nämlich aus ( :mrgreen: ).

MfG,
Bug

Micha88 21. Aug 2008 21:26

Re: Ich würde gerne mitzählen, wie oft Form1 geöffnet wurde!
 
Hä? Verstehe ich grad nicht ..

Ich habs noch nie ausprobiert (werde ich gleich machen).

Was passiert denn, wenn ein Nicht-Admin-Looser versucht in dieses Verzeichnis zu schreiben?

mkinzler 21. Aug 2008 21:29

Re: Ich würde gerne mitzählen, wie oft Form1 geöffnet wurde!
 
Er bekommt eine Exception um die Ohren geschlagen.

Micha88 21. Aug 2008 22:12

Re: Ich würde gerne mitzählen, wie oft Form1 geöffnet wurde!
 
Mhhh... wie kann man sowas denn umgehen?
Ich meine, dass das Setup vorher schon weis, dass es nicht in "Programme" schreiben kann/darf?

mkinzler 21. Aug 2008 22:16

Re: Ich würde gerne mitzählen, wie oft Form1 geöffnet wurde!
 
Gleich in eine Verzeichnis mit Benutzerschreibrechten schreiben. Z.B. im Benutzerprofil

Micha88 21. Aug 2008 23:25

Re: Ich würde gerne mitzählen, wie oft Form1 geöffnet wurde!
 
Für meinen Installer habe ich folgende Lösung gefunden:

Ich überprüfe via
if ForceDirectories(InstallVerz) then ..
ob das Verzeichnis beschreibbar ist oder nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz