Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Manche Befehle funktionieren nicht(Delphi 7)


Lucas9988 - Mo 06.10.08 10:57
Titel: Manche Befehle funktionieren nicht(Delphi 7)
Guten Tag liebe Community
Ich habe ein ziemlich großes Problem
nämlich funktionieren bei mir ziemliche viele befehle nicht

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
unit Unit1;

interface

uses
  IniFiles, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, Buttons;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
var_realm : String;
//Wenn Options.ini noch nicht existiert, erstellen!
if not FileExists('options.ini'then
begin
Ini:=TIniFile.Create(ExtractFilePath(Paramstr(0)) + 'options.ini');
try
Ini.WriteString('Realmlist''RealmIP''92.51.140.12');
Ini.WriteString;('WoW''WoWPath''C:\Programme\World of Warcraft\');
Ini.WriteString('WoW Cache Cleaner''Enabled''no');
var_realm := ini.ReadString('Realmlist''RealmIP''')
finally
Ini.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
var_wow : String;
begin
try
Ini.WriteString('WoW''WoWPath','MaskEdit1.Text')
var_wow:= Edit1.Text

end;

end;
procedure TForm1.Button2Click(Sender: TObject);
var
var_wow : String;
begin
Ini:=TIniFile.Create(ExtractFilePath(Paramstr(0)) + 'options.ini');
try
var_wow := ini.ReadString('WoW''WoWPath''')
finally
Ini.Free;
end;

end;


procedure TForm1.Button3Click(Sender: TObject);
var
SL: TStringList;
var_Realm : string;
Pfad1 : string;
begin
if FileExists('realmlist.wtf'then
DeleteFile('realmlist.wtf');

var_Realm := '                                                             ';

  SL := TStringList.Create;
  SL.Text := 'set realmlist '+ var_realm;
  SL.SaveToFile('realmlist.wtf');
  SL.Free;


Pfad1:=var_wow+'\Cache';
try
DelDir(Pfad1);
except
end;


if not FileExists('Wow.exe'then begin
ShowMessage('Bitte in den WoW Spiele Ordner kopieren.');
end
else
try
ShellExecute(Handle, 'open',
'Wow.exe'nilnil, SW_SHOWNORMAL);
finally
application.Terminate;
end;
end;


Meine Probleme:
[Fehler] Unit1.pas(36): Deklaration erwartet, aber 'IF' gefunden
[Fehler] Unit1.pas(38): Undefinierter Bezeichner: 'Ini'
[Fehler] Unit1.pas(40): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(41): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(41): ')' erwartet, aber ',' gefunden
[Fehler] Unit1.pas(52): Undefinierter Bezeichner: 'Ini'
[Fehler] Unit1.pas(53): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(55): EXCEPT oder FINALLY erwartet
[Fehler] Unit1.pas(62): Undefinierter Bezeichner: 'Ini'
[Fehler] Unit1.pas(64): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(66): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(92): Undefinierter Bezeichner: 'DelDir'
[Fehler] Unit1.pas(102): Undefinierter Bezeichner: 'ShellExecute'
[Fehler] Unit1.pas(109): Deklaration erwartet, aber Dateiende gefunden

Dies sind meine fehler wäre erfreut wenn mir jemand helfen könnte


Horschdware - Mo 06.10.08 11:00

Zeile 36:
if xxx then steht vor dem begin

Zeile 43: Semikolon

Zeile 46: Ein end fehlt

usw..


Rücke das Ganze doch erst einmal vernpnftig ein.
Dann dürftest du die meisten Fehler schon auf den ersten Blick erkennen


Für das ShellExecute musst du noch "ShellAPI" unter "uses" hinzufügen,
für TInifile noch "Inifiles" hinzufügen


Lucas9988 - Mo 06.10.08 11:03

sorry habs versucht is halt um eine zeile verutsch aba ich check nit was das programm die ganze zeit mit if will


Horschdware - Mo 06.10.08 11:04

user profile iconHorschdware hat folgendes geschrieben Zum zitierten Posting springen:
Zeile 36:
if xxx then steht vor dem begin


Lucas9988 - Mo 06.10.08 11:07

ok das ging aba die Semikolons kommen da hin wo schon welche sind
und das mit Ini weiß ich auch net was ich da noch machen soll
zb


Delphi-Quelltext
1:
2:
3:
4:
5:
try
Ini.WriteString('WoW''WoWPath','MaskEdit1.Text')
var_wow(hier2):= Edit1.Text;
finally
Ini.Free(hier1);


bei hier ein fehlt en semikolon o.O

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt


Horschdware - Mo 06.10.08 11:10

Lies doch mal, was ich in meinem ersten Beitrag geschrieben habe:

Inifiles und ShellAPI unter "uses" eintragen.
Damit fallen schon einmal einige Fehler weg.

Dann das ganze vernünftig einrücken und eine Leerzeile zwischen einzelne Prozeduren.
Damit kannst du selbst deinen Code erst mal lesen. So findest du alleine schon durch die
Optik Fehler im Code.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
try
  Ini.WriteString('WoW''WoWPath','MaskEdit1.Text');
  var_wow(hier2) := Edit1.Text;
finally
  Ini.Free(hier1); 
end;


Lucas9988 - Mo 06.10.08 11:13

ShellAPI und inifiles isnd doch schon eingetragen inifiles siehste sogar oben im quelltext


Horschdware - Mo 06.10.08 11:14


Delphi-Quelltext
1:
2:
3:
uses
  IniFiles, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, Buttons;


Sorry, inifiles ist tatsächlich schon drin. ShellAPI gehört hier aber noch rein


Lucas9988 - Mo 06.10.08 11:15

is schon seit deiner ersten antwort


Lucas9988 - Mo 06.10.08 11:20


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
unit Unit1;

interface

uses
  ShellAPI, IniFiles, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, Buttons;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
var_realm : String;
//Wenn Options.ini noch nicht existiert, erstellen!
begin
if not FileExists('options.ini'then

Ini:=TIniFile.Create(ExtractFilePath(Paramstr(0)) + 'options.ini');
try
Ini.WriteString:=('Realmlist''RealmIP''92.51.140.12');
Ini.WriteString;('WoW''WoWPath''C:\Programme\World of Warcraft\');
Ini.WriteString('WoW Cache Cleaner''Enabled''no');
var_realm := ini.ReadString('Realmlist''RealmIP''')
finally
Ini.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
var_wow : String;
begin
try
Ini.WriteString('WoW''WoWPath','MaskEdit1.Text')
var_wow;:= Edit1.Text;
finally
Ini.Free;
end;

end;
procedure TForm1.Button2Click(Sender: TObject);
var
var_wow : String;
begin
Ini:=TIniFile.Create(ExtractFilePath(Paramstr(0)) + 'options.ini');
try
var_wow := ini.ReadString;('WoW''WoWPath''');
finally
Ini.Free;
end;


procedure TForm1.Button3Click(Sender: TObject);
var
SL: TStringList;
var_Realm : string;
Pfad1 : string;
var_wow : string;
begin
if FileExists('realmlist.wtf'then
DeleteFile('realmlist.wtf');

var_Realm := '                                                             ';

  SL := TStringList.Create;
  SL.Text := 'set realmlist '+ var_realm;
  SL.SaveToFile('realmlist.wtf');
  SL.Free;


Pfad1:=var_wow+'\Cache';
try
DelDir(Pfad1);
except
end;


if not FileExists('Wow.exe'then begin
ShowMessage('Bitte in den WoW Spiele Ordner kopieren.');
end
else
try
ShellExecute(Handle, 'open',
'Wow.exe'nilnil, SW_SHOWNORMAL);
finally
application.Terminate;
end;
end;

end.


Mein neuster Quelltext

Meine Fehler:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
[Fehler] Unit1.pas(39): Undefinierter Bezeichner: 'Ini'
  [Fehler] Unit1.pas(41): Operator oder Semikolon fehlt
  [Fehler] Unit1.pas(41): ')' erwartet, aber ',' gefunden
  [Fehler] Unit1.pas(53): Undefinierter Bezeichner: 'Ini'
  [Fehler] Unit1.pas(54): Operator oder Semikolon fehlt
  [Fehler] Unit1.pas(56): Operator oder Semikolon fehlt
  [Fehler] Unit1.pas(64): Undefinierter Bezeichner: 'Ini'
  [Fehler] Unit1.pas(66): Operator oder Semikolon fehlt
  [Fehler] Unit1.pas(66): ')' erwartet, aber ',' gefunden
  [Fehler] Unit1.pas(92): Undefinierter Bezeichner: 'DelDir'


Delete - Mo 06.10.08 11:25

Binde erstmal die Unit IniFiles ein.
Zitat:

Delphi-Quelltext
1:
Ini.WriteString:=('Realmlist''RealmIP''92.51.140.12');                    

WriteString ist eine Prozedur und muss auch dementsprechend aufgerufen werden.
Ini.WriteString('Realmlist''RealmIP''92.51.140.12');
Außerdem fehlen da noch ein begin und ein end, sonst knallt es, wenn es die Datei bereits gibt.


baka0815 - Mo 06.10.08 11:26

Wenn du die Variable "Ini" verwenden willst, musst du sie auch irgendwo definieren


Delphi-Quelltext
1:
2:
var
  Ini: TIniFile;


Und, wenn Delphi sagt "Zeile 54: Semikolon fehlt", ist damit Zeile 53 - Ende gemeint.
Also trag einfach mal hinter jeden(!) Befehl - der kein else erwartet - ein Semikolon ein.

Und, was das "var_wow;:=" soll... :roll:


Gausi - Mo 06.10.08 11:27

Ich glaube, du solltest dich ersteinmal mit der grundlegenden Syntax vertraut machen. Schau dir mal den Crashkurs von user profile iconChristian S. an, du findest den auf seiner Webseite.

Der erste Fehler ist einfach: Du musst eine Variable vom Typ TIniFile mit Namen Ini deklarieren, also

Delphi-Quelltext
1:
2:
3:
var 
var_realm : String;
Ini: TIniFile;


Und zu dem:

Delphi-Quelltext
1:
2:
3:
Ini.WriteString:=('Realmlist''RealmIP''92.51.140.12'); 
Ini.WriteString;('WoW''WoWPath''C:\Programme\World of Warcraft\'); 
Ini.WriteString('WoW Cache Cleaner''Enabled''no');
Hat DeddyH schon was gesagt. ;-)


platzwart - Mo 06.10.08 11:27

'ini' musst du deklarieren. das steht doch ganz groß in der ersten zeile. meistens musst du nur den fehler in der ersten zeile beheben, da der rest dann zum größten teil folgefehler sind...


Robert.Wachtel - Mo 06.10.08 11:31

Seit mir nicht böse, aber hier ist das doch Rumdoktorn an irgendwelchen Symptomen, ohne dass der OP irgendwas davon verstehen wird. Hier wäre die Empfehlung eines Einsteiger-Tutorials zum Erlernen der Grundlagen vielleicht sinnvoller: http://www.delphi-treff.de/tutorials/

// Edit: Gausi war schneller... ;)