Hallo,
vielen Danke fürs Feedback. Ich weiß dass es mühsam ist, den ganzen Code anzuschauen. Wenn ich aber 10 Threads mit unterschiedlichen Fragen öffne wirds wohl auch nicht einfacher. Deshalb habe ich mal alles in einen Topf geworfen (und auch in eine
Unit )
1. Hat das eine Sinn das verschiede Variablen den_ Unterstrich tragen statt wie "üblich" F?
Habe ich geändert. Kam aus einem der ersten Beispiele und ich dachte das macht man bei Threads vieleicht so
2. Warum hat das Event für den Thread den Namen "TThreadBoolean" statt einem sprechenden Namen wie "TFinishLoadList" ... am Namen sollte man schon die Funktionsweise "erahnen"
Weil ich den für verschiedene Aufgaben verwende wo ich ein Boolean übergebe
4. Das gehört nicht in den Thread thrReadDb.ReadyEvent := Form2.SyncReady;
Den Eventhander in der Form deklarieren und verbinden.
Habe ich geändert als ich den Thread in eine eigen
Unit verschoben habe und eine Rückverlinkung zum Form benötigt hätte
Habe ich mir angeschaut. Hintergrung für
TListData = class(TList<TValues>)
ist, dass ich die Liste dem Master-Record anhängen will. In etwas so:
Delphi-Quellcode:
TCalReport = class
private
FNr : String;
...
FValues: TListData
public
...
end;
6. Keine Passworte hardcodiert im Connectionstring
War nur für die Schnelle
7. thrReadDb.Resume;
... nicht mehr verwenden sondern START
Werde ich ändern
8. thrReadDb.FreeOnTerminate := TRUE;
habe ich fast überlesen zwischen den Kommentaren.
Was meinst du damit?
9.
thrReadDb.dbcon.ProviderName := TSQLServerUniProvider.Create(NIL).Name;
... einfach zuordnen statt von neuer Instanz. (
imho legt die UniDAC automatisch intern eine Instanz an) besser:
FConnection.ProviderName := 'Interbase';
Habe die
DB-Komponenten bisher immer in einem Datamodul angelegt. Da muss ich wohl noch üben.
10. Aufteilung in separate Units. Die Logik (Thread) hat nichts in der Form
Unit zu suchen.
Da war ich die letzten Stunden dran, denn das ist ja eines der Ziele der Übung. Trennung
GUI - Logic - Daten
11. WICHTG: Der Code ist nicht konsistent. Mal "true" mal "TRUE". Benutze lieber einen Codeformatter...
Bin ich mir am angewöhnen.
Es ist nicht ganz einfach Quellen zu finden, auf die man sich verlassen kann. Auch die Delphi-Beispiele verwenden z.B. Resume
http://docwiki.embarcadero.com/CodeE...dList_(Delphi)
Und im Moment habe ich noch meine liebe Mühe mit dem Thema "Thread"
Grüße
Gerd