Wenn ich mir den obigen Code so anschaue, würde da nicht vielleicht ein BeginUpdate und ein EndUpdate schon viel bringen?
Nein, nicht wirklich, außer MyStringListA ist keine TStringList.
Es würde viel mehr bringen, wenn man nicht sinnlos dem arschlangsamen Memo
mehrmals den kompletten Inhalt neu zuweist.
Delphi-Quellcode:
procedure TMyPGN.SpeedButton7Click(Sender: TObject);
VAR
MyFileName : String;
begin
OpenDialog2.FileName := g_ArbeitsVerz;
OpenDialog2.InitialDir := g_ArbeitsVerz;
MyFileName := 'Ihre Eingabe';
OpenDialog1.FileName := g_ArbeitsVerz + MyFileName;
if not OpenDialog1.Execute then
Exit; // Wenn man auf Abbrechen drückte, dann wurde dennoch alles in MyStringListA dennoch verarbeitet?
MyStringListA.LoadFromFile(OpenDialog1.FileName);
If Trim(MyStringListA.Strings[0]) <> '' then // auf erste/letzte Zeile zugreifen ... und was wenn es keine Zeilen gibt?
MyStringListA.Insert(0, ''); // wenn am Anfang eine Leerzeine, dann NOCHMAL Eine dahin?
If Trim(MyStringListA.Strings[MyStringListA.Count - 1]) <> '' then
MyStringListA.Add(''); // hier auch?
Memo1.Lines.Text := MyStringListA.Text; // einmal zuweisen reicht und vorher zu löschen war eh nutzlos
Panel5.Caption := 'Zeilen :' + IntToStr(MyStringListA.Count); // Zahl der Zeilen anzeigen
AusgabeAnzahlPartienAlt;
Gewinn_Verlust_Remis_NEU;
Ach ja, Threads bringen hier absolut garnichts, da die meiste Zeit, praktisch fast die Ganze, mit Zugriffen auf die
VCL verbraten werden.