WoW Launcher - Delphi

10/08/2009 19:52 seraph1n#16
Lad am besten Mal dein ganzes Projekt hoch, ich blicke in deinem Geschriebenen nicht wirklich durch.
10/08/2009 19:58 D00MR4ZR#17
Very nice, thanks bro!
10/09/2009 14:57 Proace#18
Code:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls,inifiles;

type
  TForm2 = class(TForm)
    Image1: TImage;
    ComboBox1: TComboBox;
    label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    Label2: TLabel;
    Label3: TLabel;
    Button3: TButton;
    Memo2: TMemo;
    Label4: TLabel;
    Memo3: TMemo;
    Button4: TButton;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}
  procedure writetoini (filename,section,key,value:string);
  var
 ini:tinifile;
 begin
    ini:=tinifile.create(filename);

    try
      ini.writestring(section,key,value);
    finally
         ini.free;
    end;
 end;
   function readfromini(filename,section,key:String): string;

   var
   ini:tinifile;
   begin
     ini:=tinifile.create(filename);
     try
       result:=ini.readstring(section,key, '' )
     finally
        ini.free;
     end;
   end;

procedure TForm2.Button1Click(Sender: TObject);
var
filename: string;
begin
  filename:=extractfilepath(application.exename) + 'realmlist.ini';

 writetoini (filename,'myverse','name',combobox1.Text);
writetoini (filename,'myverse','name1',memo1.text)    ;
    writetoini (filename,'myverse','realmlist',memo2.text);
      writetoini (filename,'myverse','homepage',memo3.text);







   begin
     combobox1.items.add(memo1.text);


end;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
combobox1.DeleteSelected;
memo1.lines.clear;
memo2.lines.clear;
memo3.lines.clear;

end;





procedure TForm2.Button4Click(Sender: TObject);

  var
   filename: string;



begin


filename:=extractfilepath(application.exename)+'realmlist.ini';
if fileexists (filename) then
  begin

 combobox1.Text:=readfromini(filename,'myverse','name');
     memo1.text:=readfromini(filename,'myverse','name1');
    memo2.text:=readfromini(filename,'myverse','realmlist');
  memo3.text:=readfromini(filename,'myverse','homepage');



end;


    end;





  procedure TForm2.Button5Click(Sender: TObject);
begin
memo1.lines.clear;
memo2.lines.clear;
memo3.lines.clear;
end;

end.
Weiss einer was der fehler is?
10/14/2009 19:00 Adroxxx#19
Bitte das nächste mal CODE Tags benutzten und Edit Funktion. Doppelposts sind verboten.
10/14/2009 19:30 Cencil#20
Du solltest deine Controls umbenennen, zumindest die wichtigen ist sauberer und übersichtlicher. Statt Button1 z.B. btnLoad.

Bei Button4Click überschreibst du den gesamten Text in der Combobox, was denke ich mal dein Problem war?
Code:
combobox1.Text:=
Wenn du mehrere ComboBox Einträge in einer ini sichern möchtest, würde ich die Anzahl der Einträge in die ini schreiben und mit einer Schleife für jeden einzelnen Eintrag in der ComboBox eine neue Zeile in der Ini anlegen.

Hab den Code mal zusätzlich durch ne Schönheits OP geschickt :)

Edit: Hier nochmal als Projekt Datei: [Only registered and activated users can see links. Click Here To Register...]

Code:
procedure WriteToIni(filename, section, key, value: string);
var
  ini: TIniFile;
begin
  ini := TIniFile.create(filename);
  try
    ini.WriteString(section, key, value);
  finally
    ini.free;
  end;
end;

function ReadFromIni(filename, section, key: string): string;
var
  ini: TIniFile;
begin
  ini := TIniFile.create(filename);
  try
    result := ini.ReadString(section, key, '')
  finally
    ini.free;
  end;
end;

procedure TForm1.btnSaveClick(Sender: TObject);
var
  i: Integer;
  filename: string;
begin
  filename := ExtractFilePath(Application.Exename) + 'realmlist.ini';
  WriteToIni(filename, 'myverse', 'NumEntrys', IntToStr(ComboBox1.Items.Count));
  for i := 0 to ComboBox1.Items.Count - 1 do
  begin
    WriteToIni(filename, 'myverse', Format('name_%d', [i]), combobox1.Items[i]);
  end;
end;

procedure TForm1.btnLoadClick(Sender: TObject);
var
  filename: string;
  i, NumEntrys: Integer;
begin
  filename := ExtractFilePath(Application.Exename)+'realmlist.ini';
  if FileExists(filename) then
  begin
    NumEntrys := StrToInt(ReadFromIni(filename, 'myverse', 'NumEntrys'));
    for i := 0 to NumEntrys - 1 do
    begin
      ComboBox1.Items.Add(ReadFromIni(filename, 'myverse', Format('name_%d', [i])));
    end;
  end;
end;