Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi IniFile wird nicht erstellt (https://www.delphipraxis.net/126930-inifile-wird-nicht-erstellt.html)

Luckie 5. Jan 2009 14:22

Re: IniFile wird nicht erstellt
 
Und es wird keine Datei erstellt? Und wenn du das in einem ButtonClick Ereignis ausführst?

implementation 5. Jan 2009 14:42

Re: IniFile wird nicht erstellt
 
Geht immer noch nicht.
Ich hab das OnClick-Event von TGraphicControl benutzt

Luckie 5. Jan 2009 14:59

Re: IniFile wird nicht erstellt
 
Delphi-Quellcode:
Ini.WriteInteger('Colors', 'Workspace', Workspace);
Überprüf mal im Debugger den Wert von Workspace.

taaktaak 5. Jan 2009 15:14

Re: IniFile wird nicht erstellt
 
Moin, Moin.
Da das Ganze so seltsam ist, habe ich es mal nachgestellt - das funktioniert bei mir einwandfrei!?

Luckie 5. Jan 2009 15:17

Re: IniFile wird nicht erstellt
 
Gib ihm mal deinen Code zum Testen. Dass der Wert von Workspace ungültig ist und deswegen nichts geschrieben wird, ist auch meine letzte Hoffnung.

taaktaak 5. Jan 2009 16:27

Re: IniFile wird nicht erstellt
 
Liste der Anhänge anzeigen (Anzahl: 1)
Sorry, hatte gerade keine Zeit.
Anbei das Testprogramm...

DeddyH 5. Jan 2009 16:30

Re: IniFile wird nicht erstellt
 
Haltepunkte hast Du schon probiert, d.h. die entsprechenden Stellen werden auch tatsächlich angesprungen?

nahpets 5. Jan 2009 16:52

Re: IniFile wird nicht erstellt
 
Hallo,

was wird denn hier ausgegeben?
Delphi-Quellcode:
 
  initialization
  Ini := TIniFile.Create(ExtractFilePath(Application.Exename) + 'Config.ini');
  ShowMessage(ExtractFilePath(Application.Exename) + 'Config.ini');
  try
    try
      Workspace := Ini.ReadInteger('Colors', 'Workspace', PaintGreen);
      ShowMessage('Workspace ist: ' + IntToStr(Workspace));
    except
      on e : Exception do begin
        ShowMessage('Es ist ein Fehler beim Lesen aufgetreten: ' + e.Message);
      end;
    end;
  finally
    FreeAndNil(Ini);
  end;
finalization
  Ini := TIniFile.Create(ExtractFilePath(Application.Exename) + 'Config.ini');
  try
    Try
      Ini.WriteInteger('Colors', 'Workspace', Workspace);
      ShowMessage('Workspace ist: ' + IntToStr(Workspace));
    except
      on e : Exception do begin
        ShowMessage('Es ist ein Fehler beim Schreiben aufgetreten: ' + e.Message);
      end;
    end;
  finally
    FreeAndNil(Ini);
  end;
end.

implementation 6. Jan 2009 09:50

Re: IniFile wird nicht erstellt
 
@Luckie: Der Wert von Workspace (Variable von TColor) soll dem Plan nach im ersten Teil gesetzt werden. Wenn das nicht funktioniert - dann müsste der Wert entweder 0 (Standardwert) oder PaintGreen (angegeben) sein.

@taaktaak: Bei dir funktioniert er? Bei mir nicht. Es scheint also nicht am Code zu liegen.

@DeddyH: Ja, es wird alles angesprungen.

@nahpets: Der sagt mir Workspace sei 0. In ReadInteger scheint also gar nichts zu passieren. Ansonsten wäre es ja zumindest der Wert von PaintGreen.
Eine Exception wird nicht ausgelöst.

Delphi-Quellcode:
var Workspace : TColor;      // in Unit Windesk.Colors
const PaintGreen = $00ddffdd;

nahpets 6. Jan 2009 10:03

Re: IniFile wird nicht erstellt
 
Hallo,
Zitat:

Zitat von implementation
@nahpets: Der sagt mir Workspace sei 0. In ReadInteger scheint also gar nichts zu passieren. Ansonsten wäre es ja zumindest der Wert von PaintGreen.
Eine Exception wird nicht ausgelöst.

Dann liegt die Vermutung nahe, dass die INI-Datei irgendwo erstellt wird/wurde, aber nicht an der vermuteten Stelle.
Weise dem ReadInteger mal einen festen Vorgabewert zu und schau dann, ob immernoch die 0 geliefert wird. Wenn ja, muss die aus irgendeiner INI gelesen werden, dann hilft Dir (vermutlich) nur, mal die Festplatte nach 'ner Config.ini zu durchsuchen.

Delphi-Quellcode:
initialization
  Ini := TIniFile.Create(ExtractFilePath(Application.Exename) + 'Config.ini');
  ShowMessage(ExtractFilePath(Application.Exename) + 'Config.ini');
  try
    try
      Workspace := Ini.ReadInteger('Colors', 'Workspace', 4711); // <- festen Vorgabewert zuweisen
      ShowMessage('Workspace ist: ' + IntToStr(Workspace)); // wenn 0, muss es irgendwo die INI-Datei geben!!!
      // und jetzt noch mal 'nen Test mit einem Wert, den es höchstwahrscheinlich nicht gibt:
      Workspace := Ini.ReadInteger('IstDochEgalWasHierSteht', 'HauptsacheGibtEsNicht', 4812);
      ShowMessage('Workspace ist: ' + IntToStr(Workspace)); // Hier sollte jetzt aber als Ergebnis 4812 kommen!!!
    except
      on e : Exception do begin
        ShowMessage('Es ist ein Fehler beim Lesen aufgetreten: ' + e.Message);
      end;
    end;
  finally
    FreeAndNil(Ini);
  end;
finalization
  Ini := TIniFile.Create(ExtractFilePath(Application.Exename) + 'Config.ini');
  try
    Try
      Ini.WriteInteger('Colors', 'Workspace', Workspace);
      ShowMessage('Workspace ist: ' + IntToStr(Workspace));
    except
      on e : Exception do begin
        ShowMessage('Es ist ein Fehler beim Schreiben aufgetreten: ' + e.Message);
      end;
    end;
  finally
    FreeAndNil(Ini);
  end;
end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 Uhr.
Seite 3 von 5     123 45      

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