Autor Beitrag
thecloser_
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 12.11.12 21:00 
Hallo community,

ich versuche mich an einem Tool, das von einer Datei die Dateiabschnitte in einer Listbox anzeigt.
Nur ist mein Problem, dass ich ehrlich gesagt keine Ahnung habe, wie soetwas funktioniert.

Hier die Datei:

ausblenden volle Höhe 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:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
ColSetInf "default"

# 0x0000
MatClass 00 00 00 04
Diffuse 0x000000 
Ambient 0x000000 
Specular 0xffffff 
Reflect2 0xffffff
Specular2 0x323232
XDiffuse 0x000000
XSpecular 0x000000
Tex1Name ""
Tex2Name ""
Tex3Name ""
TexFlags 0x11 0x00 0x00 0x00
TexOffset 0.000000 0.000000
TexScale 1.000000 1.000000
TexAngle 0.000000
Alpha 000
SpecProps 079 010 050
Fresnel 065 025 060
FallOff 000 030

# 0x0001
MatClass 00 02 00 04
Diffuse 0xffffff
Ambient 0x000000 
Specular 0xffffff 
Reflect2 0xffffff 
Specular2 0x323232 
XDiffuse 0x000000 
XSpecular 0x000000 
Tex1Name "Misk.tga"
Tex2Name ""
Tex3Name ""
TexFlags 0x11 0x00 0x00 0x00
TexOffset 0.000000 0.000000
TexScale 1.000000 1.000000
TexAngle 0.000000
Alpha 000
SpecProps 079 010 050
Fresnel 065 025 060
FallOff 000 030

# 0x0002
MatClass 00 02 00 04
Diffuse 0xffffff
Ambient 0x000000 
Specular 0xffffff 
Reflect2 0xffffff 
Specular2 0x323232 
XDiffuse 0x000000 
XSpecular 0x000000 
Tex1Name "Lights.tga"
Tex2Name ""
Tex3Name ""
TexFlags 0x11 0x00 0x00 0x00
TexOffset 0.000000 0.000000
TexScale 1.000000 1.000000
TexAngle 0.000000
Alpha 000
SpecProps 079 010 050
Fresnel 065 025 060
FallOff 000 030

# 0x0003
MatClass 00 01 01 04
Diffuse 0x000000 
Ambient 0x000000 
Specular 0xa0aac8 
Reflect2 0xffffff 
Specular2 0x0f0f19 
XDiffuse 0x000000
XSpecular 0x000000 
Tex1Name "Shattglass.tga"
Tex2Name ""
Tex3Name ""
TexFlags 0x11 0x00 0x00 0x00
TexOffset 0.000000 0.000000
TexScale 1.000000 1.000000
TexAngle 0.000000
Alpha 050
SpecProps 120 010 050
Fresnel 095 035 075
FallOff 000 030

# 0x0004
MatClass 00 01 01 04
Diffuse 0x120000
Ambient 0x000000
Specular 0x550407
Reflect2 0xffffff
Specular2 0x550407
XDiffuse 0x000000
XSpecular 0x000000
Tex1Name ""
Tex2Name ""
Tex3Name ""
TexFlags 0x11 0x00 0x00 0x00
TexOffset 0.000000 0.000000
TexScale 1.000000 1.000000
TexAngle 0.000000
Alpha 010
SpecProps 120 010 050
Fresnel 095 035 035
FallOff 000 030

# 0x0005
MatClass 00 00 00 04
Diffuse 0x6e6e6e 
Ambient 0x000000
Specular 0x323232
Reflect2 0xffffff
Specular2 0x000000
XDiffuse 0x000000 
XSpecular 0x000000
Tex1Name ""
Tex2Name ""
Tex3Name ""
TexFlags 0x11 0x00 0x00 0x00
TexOffset 0.000000 0.000000
TexScale 1.000000 1.000000
TexAngle 0.000000
Alpha 000
SpecProps 079 000 040
Fresnel 097 050 001
FallOff 100 050

# 0x0006 
MatClass 00 02 00 04
Diffuse 0xffffff
Ambient 0x000000 
Specular 0xffffff 
Reflect2 0xffffff 
Specular2 0x323232 
XDiffuse 0x000000 
XSpecular 0x000000 
Tex1Name "Kennzeichen.tga"
Tex2Name ""
Tex3Name ""
TexFlags 0x11 0x00 0x00 0x00
TexOffset 0.000000 0.000000
TexScale 1.000000 1.000000
TexAngle 0.000000
Alpha 000
SpecProps 079 010 050
Fresnel 065 025 060
FallOff 000 030

# 0x0007
MatClass 00 02 00 04
Diffuse 0xffffff
Ambient 0x000000 
Specular 0xffffff 
Reflect2 0xffffff 
Specular2 0x323232 
XDiffuse 0x000000 
XSpecular 0x000000 
Tex1Name "Lights.tga"
Tex2Name ""
Tex3Name ""
TexFlags 0x11 0x00 0x00 0x00
TexOffset 0.000000 0.000000
TexScale 1.000000 1.000000
TexAngle 0.000000
Alpha 000
SpecProps 079 010 050
Fresnel 065 025 060
FallOff 000 030

# 0x0008
MatClass 00 04 00 05
Diffuse 0x000000 0x9e9fa5 0x43464b 0x10274b 0x000d19 0x64000f 0x320000 0x96803d 0x64341f 0x14321f
Ambient 0x000000 0x000000 0x000000 0x000000 0x000000 0x000000 0x000000 0x000000 0x000000 0x000000
Specular 0xc8c8c8 0xc8c8c8 0x8a8f96 0x646464 0x646464 0xe5e5e5 0x646464 0x646464 0x646464 0x646464
Reflect2 0x969696 0x969696 0x969696 0x969696 0x969696 0x969696 0x969696 0x969696 0x969696 0x969696
Specular2 0x000000 0x000000 0x878d96 0x2564af 0x003064 0x000000 0x4b0000 0x000000 0x4b3a17 0x1e3227
XDiffuse 0xc8c8c8 0xc8c8c8 0xc8c8c8 0xc8c8c8 0xc8c8c8 0xc8c8c8 0xc8c8c8 0xc8c8c8 0xc8c8c8 0xc8c8c8
XSpecular 0x000000 0x000000 0x000000 0x000000 0x000000 0x000000 0x000000 0x000000 0x000000 0x000000
Tex1Name "Body.tga"
Tex2Name ""
Tex3Name ""
TexFlags 0x11 0x00 0x00 0x00
TexOffset 0.000000 0.000000
TexScale 1.000000 1.000000
TexAngle 0.000000
Alpha 000
SpecProps 200 010 059
Fresnel 095 025 080
FallOff 000 010

# 0x0009
MatClass 00 00 00 04
Diffuse 0x191919 
Ambient 0x000000
Specular 0x323232
Reflect2 0xffffff
Specular2 0x191919
XDiffuse 0x000000 
XSpecular 0x000000
Tex1Name ""
Tex2Name ""
Tex3Name ""
TexFlags 0x11 0x00 0x00 0x00
TexOffset 0.000000 0.000000
TexScale 1.000000 1.000000
TexAngle 0.000000
Alpha 000
SpecProps 079 000 040
Fresnel 097 050 001
FallOff 100 050


Ich würde gerne wissen, wie ich nach dem Öffnen dieser Datei immer die Zeilen mit dem # anzeigen lassen kann, damit ich diese Abschnitte gezielt bearbeiten kann. Das problem dabei könnte sein, dass die Datei nich immer gleich viele Abschnitte haben muss, sie kann auch mehr oder weniger Abschnitte besitzen.

LG thecloser_

PS: Sollte ich bei der Forumsuche etwas übersehen haben, bitte ich um Verzeihung


Moderiert von user profile iconNarses: Topic aus Neue Einträge / Hinweise / etc. verschoben am Mo 12.11.2012 um 20:18
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 762
Erhaltene Danke: 127



BeitragVerfasst: Mo 12.11.12 22:31 
Vorschlag:
  • Datei in eine Listbox einlesen mit LoadFromFile (nicht schick, aber schnell zu programmieren)
  • Listbox zeilenweise durchgehen
  • mit der Pos-Funktion abfragen, ob das #-Zeichen in der Zeile vorkommt
  • wenn ja, dann Zeile in zweite Listbox übernehmen (mit Add)
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Mo 12.11.12 22:51 
Wenn ich das richtig sehe, hat jeder Block die gleiche Länge und beginnt mit einem # in der ersten Spalte. Dann würde ich es mit einem Memo und einer ComboBox realisieren. Beispiel:

ausblenden 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:
procedure TMainform.Button1Click(Sender: TObject);
var
  Schleife : integer;
begin
  Memo1.Clear;
  ComboBox1.Clear;
  Memo1.Lines.LoadFromFile('f:\delphi_xe\test\daten.txt');
  for Schleife := 0 to Memo1.Lines.Count - 1 do
    if Pos('#', Memo1.Lines[Schleife]) = 1 then
      ComboBox1.Items.Add(Memo1.Lines[Schleife]);
  ComboBox1.ItemIndex := 0;
end;

procedure TMainform.Button2Click(Sender: TObject);
begin
  Memo1.Lines.SaveToFile('f:\delphi_xe\test\daten.txt');
end;

procedure TMainform.ComboBox1Select(Sender: TObject);
var
  IndexWert : integer;
  Zeile     : integer;
begin
  IndexWert := ComboBox1.ItemIndex;
  Zeile := IndexWert * 21 + 2;                           // Block hat 21 Zeilen
                                                         // 1. Block beginnt in der 3. Zeile
  Memo1.Perform(EM_LINESCROLL, 0, - Memo1.Lines.Count);  // zum Anfang
  Memo1.Perform(EM_LINESCROLL, 0, Zeile);
end;
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mo 12.11.12 23:34 
In einem Edit, nach dem Laden Memo1.lines eine 0 eintragen, Abschnitt wird angesprungen und die Nummer im Edit um 1 erhöht.
Also einfach per Button1Click von Abschnitt zu Abschnitt ...
ausblenden 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:
Procedure TForm5.SetStartNummer(nr:Integer);
var
 i:Integer;
 pos : Integer;
 s : String;
begin
   s := '# 0x' + IntToHex(nr,4);
   i := 0;
   pos := -1;
   while (pos < 0and (i < Memo1.Lines.Count - 1do
      begin
        if Memo1.Lines[i] = s then pos := i;
        inc(i);
      end;
   pos := pos  - GetScrollPos(memo1.Handle,SB_VERT);
   Memo1.Perform(EM_LINESCROLL, 0, pos);
end;

procedure TForm5.Button1Click(Sender: TObject);
var
 i:Integer;
begin
  if TryStrToInt(Edit1.text,i) then
    begin
       SetStartNummer(i);
       Edit1.Text := IntToStr(i+1);
    end;
end;

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
>M@steR<
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Di 13.11.12 01:16 
Gelöscht


Zuletzt bearbeitet von >M@steR< am Di 17.09.13 03:02, insgesamt 1-mal bearbeitet
thecloser_ Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 13.11.12 17:57 
Ich versuche ja nicht den gesammten Text in einer Memo darzustellen, sondern eben nur diese einzelnen Linien, die auch nicht editierbar sein sollten. Man soll sie nur anwählen können, ich möchte die Spalten darunter jeweils bearbeiten.
Man soll außerdem immer alles diese Zeilen sehen können, wesewegen ich eigentlich wenig von der ComboBox halte.

Ansonsten danke schonmal für die Antworten.

Grüße
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Di 13.11.12 21:21 
user profile iconthecloser_ hat folgendes geschrieben Zum zitierten Posting springen:
Man soll außerdem immer alles diese Zeilen sehen können, wesewegen ich eigentlich wenig von der ComboBox halte.


Hier eine weiteres Grundgerüst, das Du noch auf Deine Bedürfnisse usw. hin anpassen mußt (z. B. Einbau einer Undo-Funktion), bestehend aus

- ListBox1 für die Anzeige und Auswahl der einzelnen Blöcke (Scrollbars aktiv, wenn die Liste länger als die ListBox1 ist),
- ListBox2 zur Anzeige des jeweiligen Blocks (Größe so festlegen, daß nur ein Block sichtbar ist). Um ein Scrollen per Tastatur zu vermeiden, sind alle Tasten abgeschaltet.
- Editfeld, zur Anzeige und zum Editieren der Zeile, die in ListBox2 selektiert wurde. Änderungen werden sofort übernommen und in der ListBox2 angezeigt.

Die Scrollbars der ListBox2 werden per SendMessage ausgeblendet. Wenn das stört: Hier ist beschrieben, wie man die Scrollbars generell ausschalten kann: groups.google.com/fo...i.winapi/LO3557FJWXc

Ein Screenshot des Programms ist als Anlage beigefügt.

ausblenden volle Höhe 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 Main;

interface

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

type
  TMainform = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ListBox1: TListBox;
    ListBox2: TListBox;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure ListBox2KeyPress(Sender: TObject; var Key: Char);
    procedure ListBox2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ListBox2KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure ListBox2Click(Sender: TObject);
    procedure Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Mainform: TMainform;

implementation

{$R *.dfm}

procedure TMainform.Button1Click(Sender: TObject);
var
  Schleife : integer;
begin
  ListBox1.Clear;
  ListBox2.Clear;
  ListBox2.ScrollWidth := -1;
  ListBox2.Items.LoadFromFile('f:\delphi_xe\test\daten.txt');
  for Schleife := 0 to ListBox2.Items.Count - 1 do
    if Pos('#', ListBox2.Items.Strings[Schleife]) = 1 then
      ListBox1.Items.Add(ListBox2.Items.Strings[Schleife]);
  ListBox1.ItemIndex := 0;
  SendMessage(ListBox2.Handle, LB_SetTopIndex, 30);
  ShowScrollBar(Listbox2.Handle, SB_Both , false);
end;

procedure TMainform.Button2Click(Sender: TObject);
begin
  ListBox2.Items.SaveToFile('f:\delphi_xe\test\daten.txt');
end;

procedure TMainform.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  ListBox2.Items.Strings[ListBox2.ItemIndex] := Edit1.Text;
  ShowScrollBar(Listbox2.Handle, SB_Both , false);
end;

procedure TMainform.FormCreate(Sender: TObject);
begin
  Edit1.Enabled := false;
end;

procedure TMainform.ListBox1Click(Sender: TObject);
var
  Schleife : integer;
  Zeile    : integer;
begin
  Edit1.Text := '';
  Edit1.Enabled := false;
  Zeile := ListBox1.ItemIndex * 21 + 3;
  SendMessage(ListBox2.Handle, LB_SetTopIndex, Zeile, 0);
  ShowScrollBar(Listbox2.Handle, SB_Both , false);
end;

procedure TMainform.ListBox2Click(Sender: TObject);
begin
  Edit1.Enabled := true;
  Edit1.Text := ListBox2.Items[ListBox2.ItemIndex];
end;

// Alle Tasten für ListBox2 abschalten, damit nicht gescrollt werden kann.

procedure TMainform.ListBox2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Key := 0;
end;

procedure TMainform.ListBox2KeyPress(Sender: TObject; var Key: Char);
begin
  Key := #0;
end;

procedure TMainform.ListBox2KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Key := 0;
end;

end.


Edit1: "Edit1.Enabled" im Source nachträglich eingebaut, weil man sonst unter Umständen neue Zeilen in der Listbox2 hätte einfügen können.
Einloggen, um Attachments anzusehen!
thecloser_ Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 14.11.12 18:53 
Ok, nun hab ich es fast vollständig, bis auf zwei Kleinigkeiten:

- Wenn ich die Datei per OpenFileDialog öfnnen möchte, muss ich ja das ganze in das then nach dem OPenDialog.Execute Befehl reinziehen.
Wie kann ich aber nun in der Loadfromfile() Zeile dies inegrieren? Per Variablendeklaration hat es schonmal nicht geklappt...

- Wie kann ich beim Abspeichern eine Zeile erstellen, in welcher der aktuelle Zeileninhalt der Listbox1 enthalten ist?

LG und nochmal vielen Dank für eure Hilfe
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Mi 14.11.12 19:39 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
if OpenDialog.Execute then
  begin
    Liste.LoadFromFile(OpenDialog.Filename);
    ...
  end;

Und wo willst Du eine Zeile erstellen, in einer Stringliste?
ausblenden Delphi-Quelltext
1:
2:
if ListBox.ItemIndex > -1 then
  Liste.Add(ListBox.Items[ListBox.ItemIndex]);

Ist doch nicht so kompliziert, oder?
thecloser_ Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 14.11.12 21:45 
Nein,
ich meinte, dass ich den markierten Zeileninhalt in der Listbox, die oben erstellt wurde, in eine TXT Datei speichern kann.

Soll heißen, wenn in der ersten Zeile der Listbox 0x0000 stehht (und dieser markiert ist), will ich es durch Speichern in einer Textdatei haben. Nur diese eine Zeile, nicht mehr.

LG

PS: Ich mag womöglich noch ein ziehmlicher anfänger sein, aber unfähig bin ich nicht^^
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Do 15.11.12 09:42 
Dann erstell Dir doch eine Stringliste, füge diese eine Zeile ein, speichere sie danach ab und gib sie frei. Alternativ kannst Du auch die alten Pascal-Routinen wie AssignFile, Rewrite, writeln und CloseFile benutzen, aber IMHO ist die Stringliste einfacher zu handhaben.
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Do 15.11.12 12:25 
Soviel Aufwand, wo ein paar Zeilen reichen ... ;)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
// Datei einlesen und filtern, Filterergebnis in Listbox merken
lSl := TStringlist.Create;
lSl.LoadFromFile('DeineDatei.txt');
for i := 0 to lSl.Count -1 do
begin
 if (Pos('#', lSl.Strings[i]) >0 then
  ListBox.Items.Add(lSl.Strings[i]);
end;

// Listbox auswerten (Selektierte Einträge in Stringlist merken)
for i := 0 to Listbox.items.Count -1 do
begin
 if Listbox.Selected[i] then
  lSl.Add(Listbox.Items.Strings[i];
end;
lSl.SaveToFile('DeinErgebnis.Txt');

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
thecloser_ Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 19.11.12 15:41 
Danke, es hat soweit geklappt.

Nur hab ich nun schon wieder einer mir unbekannts Problem: Beim Folgenden Code wirft er mir einen "Missing Operator or Semicolon" in der CloseFile(Datei); Zeile aus:

ausblenden 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:
if not FileExists('MTLWriter_Data\Temp.tem'then
   begin
     AssignFile(Datei, 'MTLWriter_data\Temp.tem');
     Reset(Datei);
     WriteLn(Datei, 'ColSetInf "Default"');
     WriteLn(Datei);
     WriteLn(Datei, '#0x'+MatNummer.text);
     WriteLn(Datei, 'MatClass '+Edit9.text);
     WriteLn(Datei, 'Diffuse '+Edit2.Text);
     WriteLn(Datei, 'Ambient '+Edit5.Text);
     WriteLn(Datei, 'Specular '+Edit4.Text);
     WriteLn(Datei, 'Reflect2 0xffffff');
     WriteLn(Datei, 'Specular2 '+Edit3.Text);
     WriteLn(Datei, 'XDiffuse 0x000000');
     WriteLn(Datei, 'XSpecular 0x000000');
     WriteLn(Datei, 'Tex1Name "'+Tex_Name.text+'"');
     WriteLn(Datei, 'Tex2Name ""');
     WriteLn(Datei, 'Tex3Name ""');
     WriteLn(Datei, 'TexFlags 0x11 0x00 0x00 0x00');
     WriteLn(Datei, 'TexOffset 0.000000 0.000000');
     WriteLn(Datei, 'TexScale 1.000000 1.000000');
     WriteLn(Datei, 'Alpha 0'+Edit1.text);
     WriteLn(Datei, 'SpecProbs '+Edit6.text);
     WriteLn(Datei, 'Fresnel '+Edit7.text);
     WriteLn(Datei, 'FallOff '+Edit8.text);
     CloseFile(Datei);
   end;


Meines Erachtes (und laut Google) müsste da aber doch alles drin sein, woran liegt es also?

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 19.11.12 15:57 
Hallo,
wenn Du überprüfst, ob die Datei existiert, und die fehlende Datei mit Reset erzeugen willst, geht es garantiert schief.
Gibt es die Datei nicht, so muss sie mit
ausblenden Delphi-Quelltext
1:
Rewrite(Datei);					

erzeugt werden.
Ansonsten wäre es schön, wenn Du die ganze Unit posten würdest. Dann könnte man besser nach dem Fehler suchen.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
thecloser_ Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 19.11.12 16:47 
Verdammt, das hatte ich ursprünglich sogar drin^^.

L479 wirft den Fehler aus

ausblenden volle Höhe 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:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532:
533:
unit Unit1;

interface

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

type
  TMTLWriter = class(TForm)
    Load: TButton;
    Help: TButton;
    Save: TButton;
    Mat: TRadioButton;
    body: TRadioButton;
    bodytex: TRadioButton;
    Tex: TRadioButton;
    glas: TRadioButton;
    Chrom: TRadioButton;
    Mirror: TRadioButton;
    StandartM: TButton;
    StandartB: TButton;
    StandartBT: TButton;
    StandartMI: TButton;
    StandartC: TButton;
    StandartG: TButton;
    StandartT: TButton;
    Alpha: TCheckBox;
    Tex_name: TEdit;
    Label1: TLabel;
    GroupBox2: TGroupBox;
    ListBox1: TListBox;
    Label2: TLabel;
    GroupBox1: TGroupBox;
    Expert: TCheckBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    ListBox2: TListBox;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Edit9: TEdit;
    Label12: TLabel;
    Edit10: TEdit;
    Matnummer: TEdit;
    Label13: TLabel;
    CloseFile: TButton;
    procedure LoadClick(Sender: TObject);
    procedure HelpClick(Sender: TObject);
    procedure MatClick(Sender: TObject);
    procedure bodyClick(Sender: TObject);
    procedure bodytexClick(Sender: TObject);
    procedure TexClick(Sender: TObject);
    procedure glasClick(Sender: TObject);
    procedure ChromClick(Sender: TObject);
    procedure MirrorClick(Sender: TObject);
    procedure ExpertClick(Sender: TObject);
    procedure StandartMClick(Sender: TObject);
    procedure StandartBClick(Sender: TObject);
    procedure StandartBTClick(Sender: TObject);
    procedure StandartTClick(Sender: TObject);
    procedure StandartGClick(Sender: TObject);
    procedure StandartCClick(Sender: TObject);
    procedure StandartMIClick(Sender: TObject);
    procedure SaveClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CloseFileClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MTLWriter: TMTLWriter;

implementation

{$R *.dfm}

procedure TMTLWriter.LoadClick(Sender: TObject);   //Open MTL File
var openDialog : TOpenDialog;
    Schleife: integer;
begin
 DeleteFile('MTLWriter_Data\Temp.tem');
 Listbox1.clear;
 Listbox2.clear;
 openDialog:=TOpenDialog.Create(self);
 openDialog.InitialDir:=GetCurrentDir;
 openDialog.Options:=[ofFileMustExist];
 openDialog.Filter:=
  'C11 Material Files (*.mtl)|*.mtl|';
if OpenDialog.Execute then
  begin
  Save.Enabled:=true;
  Mat.Enabled:=true;
  Body.Enabled:=true;
  bodytex.Enabled:=true;
  tex.Enabled:=true;
  Alpha.Enabled:=true;
  glas.Enabled:=true;
  Chrom.Enabled:=true;
  Mirror.Enabled:=true;
  Expert.Enabled:=true;
   ListBox1.Clear;
   ListBox2.Clear;
   ListBox2.ScrollWidth := -1;
   ListBox2.Items.LoadFromFile(openDialog.FileName);
   Edit10.Text:=openDialog.Filename;
   for Schleife := 0 to ListBox2.Items.Count - 1 do
     if Pos('#', ListBox2.Items.Strings[Schleife]) = 1 then
           ListBox1.Items.Add(ListBox2.Items.Strings[Schleife]);

   ListBox1.ItemIndex := 0;
  end;
end;

procedure TMTLWriter.HelpClick(Sender: TObject);  //Help/About
begin
ShowMessage(
'Tool written by Söhnlein alias thecloser_ .'
+#13#10+'Only downloaded from eleven-games.net'
+#13#10+'For help visit eleven-games.net')
end;

procedure TMTLWriter.MatClick(Sender: TObject);   //Standartbuttons deaktivieren
begin
if Mat.Checked then StandartM.Enabled:= true;
if Mat.Checked then StandartB.Enabled:=false;
if Mat.Checked then StandartBT.Enabled:=false;
if Mat.Checked then StandartT.Enabled:=false;
if Mat.checked then Alpha.Enabled:=false;
if Mat.checked then StandartG.Enabled:=false;
if Mat.Checked then StandartC.Enabled:=false;
if Mat.Checked then StandartMI.Enabled:=false;
if Mat.Checked then Tex_name.clear;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';

end;

procedure TMTLWriter.bodyClick(Sender: TObject);
begin
if body.Checked then StandartB.Enabled:=true;
if body.checked then StandartM.Enabled:=false;
if body.checked then StandartBT.Enabled:=false;
if body.checked then StandartT.Enabled:=false;
if body.checked then Alpha.Enabled:=false;
if body.checked then StandartG.Enabled:=false;
if body.checked then StandartC.Enabled:=false;
if body.checked then StandartMI.Enabled:=false;
if body.Checked then Tex_name.clear;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
end;

procedure TMTLWriter.bodytexClick(Sender: TObject);
begin
if bodytex.Checked then StandartB.Enabled:=false;
if bodytex.checked then StandartM.Enabled:=false;
if bodytex.checked then StandartBT.Enabled:=true;
if bodytex.checked then StandartT.Enabled:=false;
if bodytex.checked then Alpha.Enabled:=false;
if bodytex.checked then StandartG.Enabled:=false;
if bodytex.checked then StandartC.Enabled:=false;
if bodytex.checked then StandartMI.Enabled:=false;
if bodytex.Checked then Tex_name.clear;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
end;

procedure TMTLWriter.TexClick(Sender: TObject);
begin
if tex.Checked then StandartB.Enabled:=false;
if tex.checked then StandartM.Enabled:=false;
if tex.checked then StandartBT.Enabled:=false;
if tex.checked then StandartT.Enabled:=true;
if tex.checked then Alpha.Enabled:=true;
if tex.checked then StandartG.Enabled:=false;
if tex.checked then StandartC.Enabled:=false;
if tex.checked then StandartMI.Enabled:=false;
if tex.checked then Tex_name.Clear;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
end;

procedure TMTLWriter.glasClick(Sender: TObject);
begin
if glas.Checked then StandartB.Enabled:=false;
if glas.checked then StandartM.Enabled:=false;
if glas.checked then StandartBT.Enabled:=false;
if glas.checked then StandartT.Enabled:=false;
if glas.checked then Alpha.Enabled:=false;
if glas.checked then StandartG.Enabled:=true;
if glas.checked then StandartC.Enabled:=false;
if glas.checked then StandartMI.Enabled:=false;
if glas.Checked then Tex_name.clear;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
end;

procedure TMTLWriter.ChromClick(Sender: TObject);
begin
if chrom.Checked then StandartB.Enabled:=false;
if chrom.checked then StandartM.Enabled:=false;
if chrom.checked then StandartBT.Enabled:=false;
if chrom.checked then StandartT.Enabled:=false;
if chrom.checked then Alpha.Enabled:=false;
if chrom.checked then StandartG.Enabled:=false;
if chrom.checked then StandartC.Enabled:=true;
if chrom.checked then StandartMI.Enabled:=false;
if chrom.Checked then Tex_name.Clear;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
end;

procedure TMTLWriter.MirrorClick(Sender: TObject);
begin
if Mirror.Checked then StandartB.Enabled:=false;
if Mirror.checked then StandartM.Enabled:=false;
if Mirror.checked then StandartBT.Enabled:=false;
if Mirror.checked then StandartT.Enabled:=false;
if Mirror.checked then Alpha.Enabled:=false;
if Mirror.checked then StandartG.Enabled:=false;
if Mirror.checked then StandartC.Enabled:=false;
if Mirror.checked then StandartMI.Enabled:=true;
if Mirror.Checked then Tex_name.clear;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
end;

procedure TMTLWriter.ExpertClick(Sender: TObject);      //Expertmode starten
begin
if Expert.checked then
            begin
               Label3.Enabled:=true;
               Label4.Enabled:=true;
               Label5.Enabled:=true;
               Label6.Enabled:=true;
               Label7.Enabled:=true;
               Label8.Enabled:=true;
               Label9.Enabled:=true;
               Label10.Enabled:=true;
               Label11.Enabled:=true;
               Label12.Enabled:=true;
               Edit1.Enabled:=true;
               Edit2.Enabled:=true;
               Edit3.Enabled:=true;
               Edit4.Enabled:=true;
               Edit5.Enabled:=true;
               Edit6.Enabled:=true;
               Edit7.Enabled:=true;
               Edit8.Enabled:=true;
               Edit9.Enabled:=true;
               Edit9.Enabled:=true;
              end;
if not Expert.checked then
            begin
               Label3.Enabled:=false;
               Label4.Enabled:=false;
               Label5.Enabled:=false;
               Label6.Enabled:=false;
               Label7.Enabled:=false;
               Label8.Enabled:=false;
               Label9.Enabled:=false;
               Label10.Enabled:=false;
               Label11.Enabled:=false;
               Label12.Enabled:=false;
               Edit1.Enabled:=false;
               Edit2.Enabled:=false;
               Edit3.Enabled:=false;
               Edit4.Enabled:=false;
               Edit5.Enabled:=false;
               Edit6.Enabled:=false;
               Edit7.Enabled:=false;
               Edit8.Enabled:=false;
               Edit9.Enabled:=false;
              end;
end;

procedure TMTLWriter.StandartMClick(Sender: TObject);              //Standartbuttons zuweisen
begin
Edit1.Text:='00';
Edit2.Text:='0x191919';
Edit3.Text:='0x191919';
Edit4.Text:='0x323232';
Edit5.Text:='0x000000';
Edit6.Text:='079 000 040';
Edit7.Text:='097 050 001';
Edit8.Text:='100 050';
Edit9.Text:='00 00 00 04';
end;

procedure TMTLWriter.StandartBClick(Sender: TObject);
begin
Edit1.Text:='00';
Edit2.Text:='0x000000 0x9E9FA5 0x43464B 0x10274B 0x000D19 0x64000F 0x320000 0x96803D 0x64341F 0x14321F';
Edit3.Text:='0x000000 0x000000 0x878D96 0x2564AF 0x003064 0x000000 0x4B0000 0x000000 0x4B3A17 0x1E3227';
Edit4.Text:='0xC8C8C8 0xC8C8C8 0x8A8F96 0x646464 0x646464 0xE5E5E5 0x646464 0x646464 0x646464 0x646464';
Edit5.Text:='0x000000';
Tex_name.Text:='Car';
Edit6.Text:='200 010 059';
Edit7.Text:='095 025 080';
Edit8.Text:='000 010';
Edit9.Text:='00 04 00 05';
end;

procedure TMTLWriter.StandartBTClick(Sender: TObject);
begin
Edit1.Text:='00';
Edit2.Text:='0x8A8F96';
Edit3.Text:='0xB8BFC8';
Edit4.Text:='0xB8BFC8';
Edit5.Text:='0x000000';
Edit6.Text:='200 010 059';
Edit7.Text:='095 025 080';
Edit8.Text:='000 010';
Edit9.Text:='00 02 00 04';
end;

procedure TMTLWriter.StandartTClick(Sender: TObject);
begin
if Alpha.Checked then
      begin
      Edit1.Text:='00';
      Edit2.Text:='0x969696';
      Edit3.Text:='0x969696';
      Edit4.Text:='0x323232';
      Edit5.Text:='0x000000';
      Edit6.Text:='079 010 050';
      Edit7.Text:='097 050 080';
      Edit8.Text:='000 030';
      Edit9.Text:='00 01 01 00';
      end;
if not Alpha.checked then
     begin
      Edit1.Text:='00';
      Edit2.text:='0xFFFFFF';
      Edit3.Text:='0x323232';
      Edit4.Text:='0xFFFFFF';
      Edit5.text:='0x000000';
      Edit7.Text:='065 025 060';
      Edit6.Text:='079 010 050';
      Edit8.Text:='000 030';
      Edit9.Text:='00 02 00 04';
     end;
end;

procedure TMTLWriter.StandartGClick(Sender: TObject);
begin
Edit1.Text:='40';
Edit2.Text:='0x000000';
Edit3.Text:='0x0F0F19';
Edit4.Text:='0xA0AAC8';
Edit5.text:='0x000000';
Edit6.Text:='120 010 050';
Edit7.Text:='095 035 075';
Edit8.Text:='000 030';
Edit9.Text:='00 01 01 04';
Tex_name.Text:='Shattglas';
end;

procedure TMTLWriter.StandartCClick(Sender: TObject);
begin
Edit1.Text:='00';
Edit2.Text:='0x000000';
Edit3.Text:='0x323232';
Edit4.Text:='0xFFFFFF';
Edit5.Text:='0x000000';
Edit6.Text:='079 010 050';
Edit7.Text:='065 025 060';
Edit8.Text:='000 030';
Edit9.Text:='00 00 00 04';
end;

procedure TMTLWriter.StandartMIClick(Sender: TObject);
begin
Edit1.Text:='00';
Edit2.text:='0x000000';
Edit3.text:='0x000000';
Edit4.Text:='0x000000';
Edit5.Text:='0x000000';
Tex_name.Text:='__mirror';
Edit6.Text:='079 010 060';
Edit7.Text:='065 025 060';
Edit8.Text:='000 030';
Edit9.Text:='00 00 00 04';
end;

procedure TMTLWriter.SaveClick(Sender: TObject);                //Save MTL
var Datei:Textfile;
begin
if not FileExists('MTLWriter_Data\Temp.tem') then
   begin
     AssignFile(Datei, 'MTLWriter_data\Temp.tem');
     ReWrite(Datei);
     WriteLn(Datei, 'ColSetInf "Default"');
     WriteLn(Datei);
     WriteLn(Datei, '#0x'+MatNummer.text);
     WriteLn(Datei, 'MatClass '+Edit9.text);
     WriteLn(Datei, 'Diffuse '+Edit2.Text);
     WriteLn(Datei, 'Ambient '+Edit5.Text);
     WriteLn(Datei, 'Specular '+Edit4.Text);
     WriteLn(Datei, 'Reflect2 0xffffff');
     WriteLn(Datei, 'Specular2 '+Edit3.Text);
     WriteLn(Datei, 'XDiffuse 0x000000');
     WriteLn(Datei, 'XSpecular 0x000000');
     WriteLn(Datei, 'Tex1Name "'+Tex_Name.text+'"');
     WriteLn(Datei, 'Tex2Name ""');
     WriteLn(Datei, 'Tex3Name ""');
     WriteLn(Datei, 'TexFlags 0x11 0x00 0x00 0x00');
     WriteLn(Datei, 'TexOffset 0.000000 0.000000');
     WriteLn(Datei, 'TexScale 1.000000 1.000000');
     WriteLn(Datei, 'Alpha 0'+Edit1.text);
     WriteLn(Datei, 'SpecProbs '+Edit6.text);
     WriteLn(Datei, 'Fresnel '+Edit7.text);
     WriteLn(Datei, 'FallOff '+Edit8.text);
     CloseFile(Datei);
   end;
   {else
     AssignFile(Datei, 'MTLWriter_data\Temp.tem');
     Append(Datei);
     WriteLn(Datei);
     WriteLn(Datei, '#0x'+MatNummer.text);
     WriteLn(Datei, 'MatClass '+Edit9.text);
     WriteLn(Datei, 'Diffuse '+Edit2.Text);
     WriteLn(Datei, 'Ambient '+Edit5.Text);
     WriteLn(Datei, 'Specular '+Edit4.Text);
     WriteLn(Datei, 'Reflect2 0xffffff');
     WriteLn(Datei, 'Specular2 '+Edit3.Text);
     WriteLn(Datei, 'XDiffuse 0x000000');
     WriteLn(Datei, 'XSpecular 0x000000');
     WriteLn(Datei, 'Tex1Name "'+Tex_Name.text+'"');
     WriteLn(Datei, 'Tex2Name ""');
     WriteLn(Datei, 'Tex3Name ""');
     WriteLn(Datei, 'TexFlags 0x11 0x00 0x00 0x00');
     WriteLn(Datei, 'TexOffset 0.000000 0.000000');
     WriteLn(Datei, 'TexScale 1.000000 1.000000');
     WriteLn(Datei, 'Alpha 0'+Edit1.text);
     WriteLn(Datei, 'SpecProbs '+Edit6.text);
     WriteLn(Datei, 'Fresnel '+Edit7.text);
     WriteLn(Datei, 'FallOff '+Edit8.text);
     Close;}
end;


procedure TMTLWriter.FormCreate(Sender: TObject);                //Check folder
var dirname:string;
begin
dirName:= 'MTLWriter_Data';

if not DirectoryExists(dirname) then
  begin
   ShowMessage('MTLWriter_Data folder is missing. Loading file is not possible!');
   Load.Enabled:=false;
  end;
end;

procedure TMTLWriter.CloseFileClick(Sender: TObject);            //Close File
var filename, old, new:string;
begin
filename:=Edit10.Text;
old:='MTLWriter_Data\Temp.tem';
new:=ChangeFileExt(old, '.mtl');

DeleteFile('Edit10.text');
MoveFile('MTLWriter_Data\Temp.mtl', 'Edit10.Text');
DeleteFile('\MTLWriter_Data\Temp.tem');

end;

end.


Bitte andere (mögliche) unsauberheiten unbeachtet lassen, ich bin noch recht neu in Delphi
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 19.11.12 16:56 
Hallo,
Du hast einen Button Closefile genannt und damit die Methode "gekillt".
Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein