Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problemm bei .ini datei [E2010] (https://www.delphipraxis.net/121106-problemm-bei-ini-datei-%5Be2010%5D.html)

Thendo 22. Sep 2008 14:13


Problemm bei .ini datei [E2010]
 
Mittag^^,

da ich ma wieder ein Problemm hab und nicht checke woran es liegt (~.~):

Ich hab heute angefangen mich mit .Ini datein zu beschäftigen und diese in Programme einzubauen/verwenden.
Es geht um 2 Buttons: Der 1. soll den inhalt der angekreuzten Checkbox in der Ini Datei speichern
Der 2. soll den inhalt bei drücken den(der) Checkbox aus der .ini nehmen
und ihn wieder zuweisen.

Der 1.Button klappt genau so wie gewünscht aber bei dem 2.Button kommt folgende Fehlermeldung:
Zitat:

[DCC Fehler] Unit4.pas(114): E2010 Inkompatible Typen: 'Integer' und 'Char'
Hier ma der Quellcode von den 2 Button: ( hab da wo der fehler ist rot makiert^^)
Delphi-Quellcode:
// -----------------------------------------------------------------------------//
// Button zum speichern der Einstellungen aus den Checkboxen in die .ini       //           
// -----------------------------------------------------------------------------//

procedure TForm4.Button2Click(Sender: TObject);
var ini: TIniFile;
    adresse : string;
    ordner : string;
begin
ordner := Edit2.text;  // Pfad zum Ordner wo die Death.exe liegt!
adresse := Edit1.text; // Adresse des Servers der in Realmlist geändert werden soll

  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
    'Launcher.ini');

if Checkbox1.Checked then
   begin
     ini.WriteString('CheckboxInhalt','Checkbox1.Text ', ordner);
   end;
end;

// ---------------------------------------------------------------------------//
// Button zum laden der Einstellungen der Checkboxen aus der .ini            //
// ---------------------------------------------------------------------------//

procedure TForm4.Button4Click(Sender: TObject);
var ini: TIniFile;
begin
  ini:=TIniFile.Create('Launcher.ini');
  try
    Checkbox1.Caption:=ini.ReadInteger('Checkbox1','Text', '0'); [color=#ff001f]<--Fehler[/color]
  finally
    ini.free;
  end;
end;
// ---------------------------------------------------------------------------//
// ---------------------------------------------------------------------------//
// ---------------------------------------------------------------------------//

MfG Thendo

DeddyH 22. Sep 2008 14:17

Re: Problemm bei .ini datei [E2010]
 
Versuch es mal mit Ini.ReadString

Thendo 22. Sep 2008 14:27

Re: Problemm bei .ini datei [E2010]
 
Ahh danke xD jetzt klappts
nur leider ändert er jetzt immer die Checkbox.Caption in 0.
Er soll aber eig den Pfad:

[CheckboxInhalt]
Checkbox1.Text=C:\Programme\Test

in die Caption schreiben.
Wenn ich die 0 weglasse schreibt er nix rein und wenn ich den parameter lösche meckert er rum^^

Benedikt 22. Sep 2008 14:29

Re: Problemm bei .ini datei [E2010]
 
Wenn du den gleichen Code wie oben gepostet noch verwendest, dann liest da ja auch von einer anderen Stelle in der Ini als wo du hinschreibst...
Delphi-Quellcode:
ini.WriteString('CheckboxInhalt','Checkbox1.Text ', ordner);
...
ini.ReadString('Checkbox1','Text', '0');
Kein Wunder dass er dir dann den Default-Wert, also 0 in deinem Fall, rausgibt...

DeddyH 22. Sep 2008 14:29

Re: Problemm bei .ini datei [E2010]
 
Du liest ja auch etwas anderes aus, als Du reinschreibst. Das müsste so lauten:
Delphi-Quellcode:
Checkbox1.Caption := ini.ReadString('CheckboxInhalt','Checkbox1.Text ','Wuppdi');
[edit] Einen Tick zu langsam [/edit]

Thendo 22. Sep 2008 14:48

Re: Problemm bei .ini datei [E2010]
 
Aber dan kommt der Pfad (C:\Programme\Test) ja nicht wieder in die Checkbox1.Caption oO.

Evt habt ihr mich falsch verstanden:

Ich möchte z.b einen Pfad in einem Edit angeben den dan auf Knopfdruck in die .ini Datei speichern:

[CheckboxInhalt]
Checkbox1.Text=C:\Programme\Test

Soweit gehts ja auch.

So dan wenn man das Programm beendet und es wieder starten soll man per einem anderem Button den gespeicherten Pfad (C:\Programme\Test) aus der .ini datei suchen und in die Checkbos übertragen:
_
|_|C:\Programme\Test

---------------------------------------------------------------------------------------
MfG Thendo

DeddyH 22. Sep 2008 14:57

Re: Problemm bei .ini datei [E2010]
 
Wir haben Dich schon richtig verstanden. Allerdings scheinst Du etwas falsch zu machen. Zeig doch nochmal den aktuellen Quältext.

Thendo 22. Sep 2008 15:04

Re: Problemm bei .ini datei [E2010]
 
Delphi-Quellcode:
unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, shellapi, Menus, jpeg, IniFiles, ExtCtrls;

type
  TForm4 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    MainMenu1: TMainMenu;
    Programmbeenden1: TMenuItem;
    Info1: TMenuItem;
    Label3: TLabel;
    CheckBox3: TCheckBox;
    Label4: TLabel;
    CheckBox1: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox6: TCheckBox;
    CheckBox7: TCheckBox;
    CheckBox8: TCheckBox;
    Button2: TButton;
    Button3: TButton;
    CheckBox9: TCheckBox;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Programmbeenden1Click(Sender: TObject);
    procedure Info1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure CheckBox7Click(Sender: TObject);
    procedure CheckBox4Click(Sender: TObject);
    procedure CheckBox9Click(Sender: TObject);
    procedure CheckBox6Click(Sender: TObject);
    procedure CheckBox8Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form4: TForm4;
  adresse : string;
  ordner : string;

implementation

uses Unit1;

{$R *.dfm}

// -----------------------------------------------------------------------------
//  Button zum Starten und ändern der Realmlist
// -----------------------------------------------------------------------------
procedure TForm4.Button1Click(Sender: TObject);
var
  myFile : TextFile;
  text  : string;
  adresse : string;
  ordner : string;

begin
ordner := Edit2.text;  // Pfad zum Ordner wo die wow.exe liegt!
adresse := Edit1.text; // Adresse des Servers der in Realmlist geändert werden soll

 AssignFile(myFile, ordner+'\realmlist.wtf');
  ReWrite(myFile);

  WriteLn(myFile, 'set realmlist ', adresse);
  WriteLn(myFile, 'set patchlist 127.0.0.1');

  WriteLn(myFile);
  CloseFile(myFile);
  ShellExecute(Handle, nil, PChar( Edit2.Text+'\Rechner.exe'), nil, nil, SW_SHOW);
  end;

// -----------------------------------------------------------------------------
//  Button zum speichern in die .ini datei
// -----------------------------------------------------------------------------

procedure TForm4.Button2Click(Sender: TObject);
var ini: TIniFile;
    adresse : string;
    ordner : string;
begin
ordner := Edit2.text;  // Pfad zum Ordner wo die WoW.exe liegt!
adresse := Edit1.text; // Adresse des Servers der in Realmlist geändert werden soll

  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
    'Launcher.ini');

if Checkbox1.Checked then
   begin
     ini.WriteString('CheckboxInhalt','Checkbox1.Text ', ordner);
   end;
end;

// ---------------------------------------------------------------------------//
// Button zum laden der Einstellungen der Checkboxen aus der .ini            //
// ---------------------------------------------------------------------------//

procedure TForm4.Button4Click(Sender: TObject);
var ini: TIniFile;
begin
  ini:=TIniFile.Create('Launcher.ini');
  try
    Checkbox1.Caption := ini.ReadString('CheckboxInhalt','Checkbox1.Text ', '');
  finally
    ini.free;
  end;
end;
// ---------------------------------------------------------------------------//
// ---------------------------------------------------------------------------//
// ---------------------------------------------------------------------------//
(Am Ende soll es ein Realmlistchanger für WoW werden der auf Wunsch das Game nach dem ändern zu starten)

So das ist der Hauptteil des Quellcode dahinter der Teil bezieht sich nur auf Checkboxen das nur 1ne ausgewählt werden kann.

DeddyH 22. Sep 2008 15:06

Re: Problemm bei .ini datei [E2010]
 
Du verwendest einmal einen absoluten und einmal einen relativen Pfad. Außerdem wird im Button2Click die Ini nicht wieder freigegeben.

taaktaak 22. Sep 2008 15:07

Re: Problemm bei .ini datei [E2010]
 
Du holst den Inhalt eines Edits und schreibst diesen Text in eine INI. Dann holst du den Wert aus der INI und verwendest diesen Text um die Beschriftung der Checkbox zu ändern. Wo liegt denn da der tiefere Sinn????


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:06 Uhr.
Seite 1 von 2  1 2      

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