| 
| Autor | Beitrag |  
| thecloser_ Hält's aus hier
 Beiträge: 7
 
 
 
 
 | 
Verfasst: Mo 12.11.12 20: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:
 												| 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 VerzeihungModeriert von  Narses: Topic aus Neue Einträge / Hinweise / etc. verschoben am Mo 12.11.2012 um 20:18 |  |  |  
| ub60 
          Beiträge: 764
 Erhaltene Danke: 127
 
 
 
 
 | 
Verfasst: Mo 12.11.12 21: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 
          Beiträge: 632
 Erhaltene Danke: 121
 
 Win 7 32-bit
 Delphi 2006/XE
 
 | 
Verfasst: Mo 12.11.12 21: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:
 		                       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;                                                                                      Memo1.Perform(EM_LINESCROLL, 0, - Memo1.Lines.Count);    Memo1.Perform(EM_LINESCROLL, 0, Zeile);
 end;
 |  |  |  |  
| bummi 
          Beiträge: 1248
 Erhaltene Danke: 187
 
 XP - Server 2008R2
 D2 - Delphi XE
 
 | 
Verfasst: Mo 12.11.12 22: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 ...
 		                       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 < 0) and (i < Memo1.Lines.Count - 1) do
 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< 
          Beiträge: 288
 Erhaltene Danke: 3
 
 
 
 
 | 
Verfasst: Di 13.11.12 00:16 
 
 Zuletzt bearbeitet von >M@steR< am Di 17.09.13 02:02, insgesamt 1-mal bearbeitet
 |  |  |  
| thecloser_  Hält's aus hier
 Beiträge: 7
 
 
 
 
 | 
Verfasst: Di 13.11.12 16: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 
          Beiträge: 632
 Erhaltene Danke: 121
 
 Win 7 32-bit
 Delphi 2006/XE
 
 | 
Verfasst: Di 13.11.12 20:21 
 
	  |  thecloser_ hat folgendes geschrieben  : |  	  | 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.  
 												| 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
 
 public
 
 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, 3, 0);
 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;
 
 
 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_  Hält's aus hier
 Beiträge: 7
 
 
 
 
 | 
Verfasst: Mi 14.11.12 17: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 
          Beiträge: 653
 Erhaltene Danke: 160
 
 
 
 
 | 
Verfasst: Mi 14.11.12 18:39 
 |  |  |  
| thecloser_  Hält's aus hier
 Beiträge: 7
 
 
 
 
 | 
Verfasst: Mi 14.11.12 20: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 
          Beiträge: 653
 Erhaltene Danke: 160
 
 
 
 
 | 
Verfasst: Do 15.11.12 08: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 
          Beiträge: 660
 Erhaltene Danke: 21
 
 Win XP, Win7, Win 8
 D7 Enterprise, Delphi XE, Interbase (5 - XE)
 
 | 
Verfasst: Do 15.11.12 11:25 
 
_________________ Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
 Warum sich Sorgen ums Leben machen? Keiner überlebts!
 |  |  |  
| thecloser_  Hält's aus hier
 Beiträge: 7
 
 
 
 
 | 
Verfasst: Mo 19.11.12 14: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:
 		                       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') thenbegin
 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  Narses: Code- durch Delphi-Tags ersetzt |  |  |  
| Mathematiker 
          Beiträge: 2622
 Erhaltene Danke: 1448
 
 Win 7, 8.1, 10
 Delphi 5, 7, 10.1
 
 | 
Verfasst: Mo 19.11.12 14: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
 		                       Delphi-Quelltext 
 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_  Hält's aus hier
 Beiträge: 7
 
 
 
 
 | 
Verfasst: Mo 19.11.12 15:47 
 
Verdammt, das hatte ich ursprünglich sogar drin^^.
 L479 wirft den Fehler aus
 												| 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 
          Beiträge: 2622
 Erhaltene Danke: 1448
 
 Win 7, 8.1, 10
 Delphi 5, 7, 10.1
 
 | 
Verfasst: Mo 19.11.12 15: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
 |  |  |  |