Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Re: INI auslesen (https://www.delphipraxis.net/86345-re-ini-auslesen.html)

skai 12. Feb 2007 22:05


Re: INI auslesen
 
in der ini kann der benutzer den servernamen eingeben, das, was dann die caption beim radiobutton ist. Ebendso kann der benutzer eine serveradresse in die ini schreiben. mein programm soll dann per knopfdruck die serveradresse in eine txt-datei schreiben. also man kann ja dann zwischen 4 servern wechslen, je nach dem, welcher radiobutton gewählt ist.

die serveradresse soll dan hiermit ausgegeben werden:
Delphi-Quellcode:
if RadioButton1.Checked = true then
      begin
        assignfile(datei, 'test.txt');
        rewrite(datei);
        writeln(datei, server1path);
        closefile(datei);
      end;


edit:
hier kommts her

mkinzler 12. Feb 2007 22:06

Re: INI auslesen
 
Und was ist das Problem?

skai 12. Feb 2007 22:10

Re: INI auslesen
 
erstmal entschuldigung, dass ich die antwort in einen neues thread gemacht habe, war keine absicht.

mein problem: es geht leider nicht

TonyR 12. Feb 2007 22:13

Re: INI auslesen
 
gehen wir mal davon aus, dass alle radiobuttons unsichtbar sind:
Delphi-Quellcode:
if ini.readstring('server1','name','') <> '' then
  begin
  radiobutton1.show;
  radiobutton1.caption:=ini.readstring('server1','name','');
  end;
Ist jetzt nicht schön programmiert, ich weis... aber ist es das, was dir Kopferbrechen :wink: bereitet???

skai 12. Feb 2007 22:18

Re: INI auslesen
 
öhm, ich bin ein neuling.

Frage 1: <> was ist das?

aussage: mein problem ist, dass is der erstellen ettxsatei nix drin steht. auch die caption klappt nichts

TonyR 12. Feb 2007 22:25

Re: INI auslesen
 
Zitat:

Zitat von skai
... is der erstellen ettxsatei nix ...

aha :gruebel:

"<>" kleiner als, größer als... also nicht gleich :wink:

Wenn in der Inidatei unter der gleichen Rubrik, die du zum auslesen nimmst etwas drin steht, dann muss mit meinen Code im vorherigen post etwas in dem Radiobutton stehen!!!

Wegen der Textdatei: Prüfe erst mal, ob in der Variable die du in die Txt schreibst, überhaupt was drin steht! z.B. mit
Delphi-Quellcode:
showmessage(serverpath);

Blackheart 12. Feb 2007 22:30

Re: INI auslesen
 
Wozu überhaupt die Textdatei, schreibs doch in die Ini.

skai 12. Feb 2007 22:34

Re: INI auslesen
 
in der textdatei steht dann nichts drin <----- so soll das heisen //bin etwas müde^^

im radiobutton muss ja vorhernichts drin stehen. dort soll was reingeschrieben werden. das, was in der ini unter name steht, soll in die caption von radiobutton. das wa sin der ini unter path steht soll dann per kopfdruck in eine textdatei geschrieben werden.

liegt mein fehler bei dem
Delphi-Quellcode:
procedure TForm1.INI_Read;
?

was vll auch sein könnte ist, dass ih di variablen an der falschen stelle definiert habe, alsi die variable server1path is im vereinbarungsteil im hauptformular. die variable Ini in der procedure TForm1.INI_Read;

stimmt das so?



die textdatei is für ein anderes programm. diesi programm liest dort den server heraus, wo es sich anmelden soll.

edit:
entweder mach ichs mir viel zu kompliziert, oder ich bin noch zu unerfahren dafür.... wohl eher das zweite

TonyR 12. Feb 2007 22:39

Re: INI auslesen
 
mit deinen Fetzen von Quelltext und deinen uneinleuchtenden Erläuterungen komm ich im Moment gar nich klar (sorry für die Ausdrucksweise... :oops: )

Was soll z.B. das???
Delphi-Quellcode:
procedure TForm1.INI_Read;
Wenn ich das kapieren soll, dann musst du mal deinen ganzen Code posten...

skai 12. Feb 2007 22:40

Re: INI auslesen
 
Viel spaß damit^^


Delphi-Quellcode:
unit mainform;

interface

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

type
  TForm1 = class(TForm)
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    Btn_setrealmlist: TButton;
    Image1: TImage;
    btn_srartwowundenderlc: TButton;
    procedure INI_Read;
    procedure Btn_setrealmlistClick(Sender: TObject);
    procedure btn_srartwowundenderlcClick(Sender: TObject);

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

var
  Form1: TForm1;
  server1path: string;

implementation

uses Math, IniFiles;

{$R *.dfm}




procedure TForm1.INI_Read;
var
  Ini: TIniFile;
begin
    Ini:=TIniFile.Create('serverlist.ini');
    RadioButton1.Caption:=Ini.ReadString('Server1','name','keine Angabe');
    server1path:=Ini.ReadString('Server1','path','keine Angabe');
    RadioButton1.Visible:=Ini.ReadBool('Server1','show',True);
    Ini.Free;
  end;


procedure TForm1.Btn_setrealmlistClick(Sender: TObject);
var
  datei: Textfile;
begin
  if (RadioButton1.Checked = false)and
     (RadioButton2.Checked = false)and
     (RadioButton3.Checked = false)and
     (RadioButton4.Checked = false)
  then
     showmessage('Bitte wähle einen Server')
  else
   begin
    if RadioButton1.Checked = true then
      begin
        assignfile(datei, 'realmlist.wtf');
        rewrite(datei);
        writeln(datei, server1path);
        closefile(datei);
      end;
    if RadioButton2.Checked = true then
      begin
        assignfile(datei, 'realmlist.wtf');
        rewrite(datei);
        writeln(datei, 'set realmlist jeff2.no-ip.info');
        closefile(datei);
      end;
    If RadioButton3.Checked = true then
      begin
        assignfile(datei, 'realmlist.wtf');
        rewrite(datei);
        writeln(datei, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
        closefile(datei);
      end;
    if RadioButton4.Checked = true then
      begin
        assignfile(datei, 'realmlist.wtf');
        rewrite(datei);
        writeln(datei, 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy');
        closefile(datei);
      end;
  end;
end;

procedure TForm1.btn_srartwowundenderlcClick(Sender: TObject);
begin
   if FileExists('wow.exe')= true
    then
      begin
        WinExec('wow.exe',sw_show);
       end
    else ShowMessage('World of Warcraft konnte nicht gestarted werden! Bitte überprüfen sie, ob sich RealmlistChooser in ihrem World of Warcraft Installations-Ordner befindet.')

end;

end.

Blackheart 12. Feb 2007 22:46

Re: INI auslesen
 
Wo wird denn deine procedure Ini.Read aufgerufen ?

skai 12. Feb 2007 22:48

Re: INI auslesen
 
weis nich!?

skai 12. Feb 2007 22:49

Re: INI auslesen
 
war da nich wa smit oncreate? wi ein blitz schießt es durch mein kopf



wie ging das gleich?
solche klein fehler.... schlimm, oder?
geht das auch erfahren programmierern so?

TonyR 12. Feb 2007 22:52

Re: INI auslesen
 
Doppelklicken aufs Form => jetzt müsste eigentlich das OnCreate zu sehen sein... und dort die proc aufrufen!

Tut mir leid, dass ich das sagen muss, aber ich glaub es wäre besser wenn dumal bei www.dsdt.info vorbeischauen würdest und dir sämtliche Anfänger-Tuts durchlesen würdest!

skai 12. Feb 2007 22:54

Re: INI auslesen
 
ich hab ha da schon bissl drin rumgestöbert. ich bineben merh der typ "learning by doing". Nur auf kosten der nerven aderer menschen, tut mir leid.

Blackheart 12. Feb 2007 22:56

Re: INI auslesen
 
Dann ersetze diese Zeile Ini:=TIniFile.Create('serverlist.ini'); mal
durch diese
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'serverlist.ini');
Die Ini wird dann in das Verzeichnis geschrieben wo deine Exe liegt.

skai 12. Feb 2007 23:00

Re: INI auslesen
 
eins noch

Delphi-Quellcode:
Ini:=TIniFile.Create('serverlist.ini');
    RadioButton1.Caption:=Ini.ReadString('Server1','name','keine Angabe');
    server1path:=Ini.ReadString('Server1','path','keine Angabe');
    RadioButton1.Visible:=Ini.ReadBool('Server1','show',True);
    Ini.Free;

nu steht bei der Caption "keine Agabe".
wenn ich nichts hinschreibe, steht nichts da, wie amch ichs nun, dass das aus der INI dassteht?


INI:

[server1]
name=Blizzard
path=set realmlist eu.logon.worldofwarcraft.com
show=1

[server2]
name=Hyrule
path=set realmlist jeff2.no-ip.info
show=1

[server4]
name=
path=
show=0

[server5]
name=
path=
show=0

TonyR 12. Feb 2007 23:02

Re: INI auslesen
 
Delphi-Quellcode:
unit mainform;

interface

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

type
  TForm1 = class(TForm)
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    Btn_setrealmlist: TButton;
    Image1: TImage;
    btn_srartwowundenderlc: TButton;
    procedure INI_Read;
    procedure Btn_setrealmlistClick(Sender: TObject);
    procedure btn_srartwowundenderlcClick(Sender: TObject);
    procedure formcreate(sender:tobject);

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

var
  Form1: TForm1;
  server1path,server2path,server3path,server4path: string;

implementation

uses Math, IniFiles;

{$R *.dfm}




procedure TForm1.INI_Read;
var
  Ini: TIniFile;
begin
    Ini:=TIniFile.Create((ExtractFilePath(paramstr(0))+'\serverlist.ini');

    RadioButton1.Caption:=Ini.ReadString('Server1','name','');
    RadioButton2.Caption:=Ini.ReadString('Server2','name','');
    RadioButton3.Caption:=Ini.ReadString('Server3','name','');
    RadioButton4.Caption:=Ini.ReadString('Server4','name','');

    server1path:=Ini.ReadString('Server1','path','');
    server2path:=Ini.ReadString('Server2','path','');
    server3path:=Ini.ReadString('Server3','path','');
    server4path:=Ini.ReadString('Server4','path','');

    if server1path<>'' then radiobutton1.show;
    if server2path<>'' then radiobutton2.show;
    if server3path<>'' then radiobutton3.show;
    if server4path<>'' then radiobutton4.show;
   
    Ini.Free;
  end;


procedure TForm1.Btn_setrealmlistClick(Sender: TObject);
var
  datei: Textfile;
begin
  if (RadioButton1.Checked = false)and
     (RadioButton2.Checked = false)and
     (RadioButton3.Checked = false)and
     (RadioButton4.Checked = false)
  then
     showmessage('Bitte wähle einen Server')
  else
   begin
    if RadioButton1.Checked = true then
      begin
        assignfile(datei, 'realmlist.wtf');
        rewrite(datei);
        writeln(datei, server1path);
        closefile(datei);
      end;
    if RadioButton2.Checked = true then
      begin
        assignfile(datei, 'realmlist.wtf');
        rewrite(datei);
        writeln(datei, server2path);
        closefile(datei);
      end;
    If RadioButton3.Checked = true then
      begin
        assignfile(datei, 'realmlist.wtf');
        rewrite(datei);
        writeln(datei, server3path);
        closefile(datei);
      end;
    if RadioButton4.Checked = true then
      begin
        assignfile(datei, 'realmlist.wtf');
        rewrite(datei);
        writeln(datei, server4path);
        closefile(datei);
      end;
  end;
end;

procedure TForm1.btn_srartwowundenderlcClick(Sender: TObject);
begin
   if FileExists('wow.exe')= true
    then
      begin
        WinExec('wow.exe',sw_show);
       end
    else ShowMessage('World of Warcraft konnte nicht gestarted werden! Bitte überprüfen sie, ob sich RealmlistChooser in ihrem World of Warcraft Installations-Ordner befindet.');
end;

procedure Tform1.formcreate(sender:Tobject);
begin
ini_read;
end;

end.

TonyR 12. Feb 2007 23:03

Re: INI auslesen
 
guck mal ob das nun so funkt, wenn nicht dann sag, an welcher stelle es nicht geht!

skai 12. Feb 2007 23:05

Re: INI auslesen
 
@Blackheart
es geht, danke

@TonyR
auch danke, danke für die gedult mit mir ;)

TonyR 12. Feb 2007 23:07

Re: INI auslesen
 
gern geschehen... wozu gibt's dieses Forum denn...
Aber bitte versuch dir noch ein paar Tutorials durchzulesen :wink: !!!!

skai 12. Feb 2007 23:12

Re: INI auslesen
 
grob geht alles.

ich hab ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'serverlist.ini'); von blackheart genommen, deine,TonyR, ging nicht.

das mit dem verstekcne der Radiobuttins geht auich nich. da dachte ich, nehm ich meins

Delphi-Quellcode:
RadioButton1.Visible:=Ini.ReadBool('Server1','show',[b]''[/b]);
    RadioButton2.Visible:=Ini.ReadBool('Server2','show','');
    RadioButton3.Visible:=Ini.ReadBool('Server3','show','');
    RadioButton4.Visible:=Ini.ReadBool('Server4','show','');
aber an der dick markierten stelle meckert der compiler


edit:

[Fehler] mainform.pas(57): Inkompatible Typen: 'Boolean' und 'String'
[Fehler] mainform.pas(58): Inkompatible Typen: 'Boolean' und 'String'
[Fehler] mainform.pas(59): Inkompatible Typen: 'Boolean' und 'String'
[Fehler] mainform.pas(60): Inkompatible Typen: 'Boolean' und 'String'
[Fataler Fehler] Realmlistchooser.dpr(5): Verwendete Unit 'mainform.pas' kann nicht compiliert werden

TonyR 12. Feb 2007 23:16

Re: INI auslesen
 
Zitat:

Zitat von skai
...das mit dem verstekcne der Radiobuttins geht auich nich....

das liegt wahrscheinlich daran, dass du bei meiner vor der Prog-Laufzeit alle Radiobuttons auf visible:=false stellen musst!!!!!!!!


Delphi-Quellcode:
RadioButton1.Visible:=Ini.ReadBool('Server1','show',false);
RadioButton2.Visible:=Ini.ReadBool('Server2','show',false);
RadioButton3.Visible:=Ini.ReadBool('Server3','show',false);
RadioButton4.Visible:=Ini.ReadBool('Server4','show',false);

skai 12. Feb 2007 23:18

Re: INI auslesen
 
so danke, nun geht alles. danke danke danke

ich werd demnächsz bissl belesen, versprochen!

TonyR 12. Feb 2007 23:19

Re: INI auslesen
 
Tutorial lesen!!!!
Dann hättest du auch mitbekommen, dass Boolean nur 0 und 1 bzw. nur true und false als wert erhalten können!!! '' ist ja ein string!!!!

Sko 13. Feb 2007 08:16

Re: INI auslesen
 
[OT]
Ähm, berichtige mich falls ich mich irre, aber darüber:
Zitat:

Zitat von skai
[server2]
name=Hyrule
path=set realmlist jeff2.no-ip.info
show=1

dürfte sich Blizzard weniger freuen, da private Server verboten sind! (steht da irgendwo in den nicht grad kurzen Lizenzbestimungen zu WoW)
[/OT]

TonyR 13. Feb 2007 09:09

Re: INI auslesen
 
@ sko:
das ist wirklich extrem OT! Und gleube ich sollte hier auch nicht ausdiskutiert werden! :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 Uhr.

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-2025 by Thomas Breitkreuz