Zitat von
fuknersascha:
Hab gerade ein Problem und komm einfach nicht drauf.
Hi,
das eigentliche Problem ist kein Logisches! Sorry, aber ich glaube dein eigentliches Problem ist deine Code-Formatierung. Die solltest Du mal ganz dringend überdenken! Sehe ich das richtig, dass Du einzelne begin end; Blöcke verwendest, die nicht weiter zu einer Bedingung/Strucktur gehören? Warum?
Dann solltest Du auch tunlichst die begins und ends korrekt einrücken. An sich solltest Du die 1. auch ruhig in eine eigene Prozedur auslagern. Erhöht einfach die Lesbarkeit!
Ja, für die Lesbarkeit solltest Du immer Einiges tun! Gute Lesbarkeit hilft Fehler zu vermeiden und sollten doch welche drin sein, findest Du die leichter. Form7, Button2, ComboBox4, ... keine guten Namen.
Versuche es mal so:
Delphi-Quellcode:
procedure TForm7.Button2Click(Sender: TObject);
var x,y:integer;
begin
if ComboBox4.Text <> '' then
begin
if ComboBox3.Items.IndexOf(ComboBox4.text)> -1 Then
begin
Application.MessageBox(' Vertretungsplan Existiert ','Speicherinformation',48);
if not ComboBox4.Items.IndexOf(ComboBox4.Text) > -1 Then
begin
Combobox4.Items.Add(ComboBox4.Text);
end; // if not ComboBox4.Items.IndexOf(ComboBox4.Text) > -1
//1.
Combobox3.Items.Add(ComboBox4.Text);// Text in die ComboBox3 List übergeben
Vertrpl:= TStringlist.Create; // Stringliste erzeugen
Vertrpl.Add(IntToStr(StringGrid1.Colcount));
Vertrpl.Add(IntToStr(StringGrid1.Rowcount));
for x:= 0 to StringGrid1.ColCount-1 do
begin
for y:= 0 to StringGrid1.RowCount-1 do
begin
Vertrpl.Add(StringGrid1.Cells[x,y]);
end; // for y:= 0 to StringGrid1.RowCount-1
Vertrpl.Add(IntToStr(StringGrid1.ColWidths[x]));
Vertrpl.Add(IntToStr(StringGrid1.RowHeights[x]));
end; // for x:= 0 to StringGrid1.ColCount-1
Vertrpl.Add(IntToStr(StringGrid1.Clientwidth));
Vertrpl.Add(IntToStr(StringGrid1.Clientheight));
Vertrpl.Add(IntToStr(Ord(StringGrid1.ScrollBars)));
plan:= ExtractFilePath(ParamStr(0))+'Vertretungspläne\'+ ComboBox4.Text +'.txt';
Vertrpl.SaveToFile(plan);
Showmessage('Datei wurde in:' + sLineBreak + plan + ' gespeichert');
Vertrpl.Free;
lehrerl:= ExtractFilePath(ParamStr(0)) +'\Lehrer Liste\'+ 'liste.txt';
ComboBox3.Items.SaveToFile(lehrerl);
Form8.ListBox1.Clear;
lehrerl2:= ExtractFilePath(ParamStr(0)) +'\Lehrer Liste\'+ 'alleLehrer.txt';
Combobox4.Items.SaveToFile(lehrerl2);
lehrerl:= ExtractFilePath(ParamStr(0)) +'\Lehrer Liste\'+ 'liste.txt';
Form8.ListBox1.Items.LoadFromFile(lehrerl);
Button7.click;
end; // if ComboBox3.Items.IndexOf(ComboBox4.text)> -1
end // if ComboBox4.Text <> ''
else
begin
Application.MessageBox('Bitte Name eingeben','Speicherinformation',48);
end;
end;
Ich hoffe Du siehst hier schon einen Fortschritt in der Lesbarkeit. Das ist aber nur ein Anfang! Du solltest wie gesagt noch mehr kleine Prozeduren (mit sprechendem Namen!) einführen, so dass man schnell siehst, was genau gemacht wird.
Gruß Der Unwissende
[edit]
Wo war der rote Kasten?!
[/edit]