Okay, ich habe das Problem gelöst (
), allerdings kann ich die Lösung nur vermuten (
). Also:
So sahen meine beiden Arrays am Anfang aus:
Delphi-Quellcode:
TJobData = record
AMail, AStep, ACourses, ATimes: String;
ASended, ADecontrol: Boolean;
ALastTime: TTime;
end;
TEventData = record
AMail, ACourse, ASpan, AStatus, ADate, ANote, AHash: String;
end;
TJobArray = array of TJobData;
TEventArray = array of TEventData;
Nachdem ich den Quellcode durchgepflügt, eine Single-Thread Anwendung aus dem Programm gemacht habe und der Fehler immer noch auftrat, war ich erstmal ein bisschen verzweifelt. Allerdings wollte ich noch eine Kleinigkeit optimieren.
Aus dem oben gezeigtem Teil wurde folgendes:
Delphi-Quellcode:
TEventData = record
ACourse, ASpan, AStatus, ADate, ANote, AHash: String;
end;
TEventArray = array of TEventData;
TJobData = record
AMail, AStep, ACourses, ATimes: String;
ASended, ADecontrol: Boolean;
ALastTime: TTime;
Events: TEventArray;
end;
TJobArray = array of TJobData;
Die Events werden jetzt in einem untergeordneten Array von Jobs gespeichert. Eigentlich nur eine kleine Verschachtelung.
Natürlich hatte die
IDE nach dieser Änderung erstmal schön zum Rotstift gegriffen und Zeilen wie
Events[i].AMail := 'example@gmail.com'
markiert. Ist ja logisch, das Objekt war ja so nicht mehr deklariert.
Also habe ich mich durch die Fehlerliste am Rand der
IDE geklickt und direkt beim Doppelklick auf den ersten Eintrag hat mich die
IDE an folgende Zeile in meinem Code gebracht:
Delphi-Quellcode:
function AppDataPath: string;
const
SHGFP_TYPE_CURRENT = 0;
var
path: array [0 .. MaxChar] of char;
begin
SHGetFolderPath(0, CSIDL_COMMON_APPDATA, 0, SHGFP_TYPE_CURRENT, @path[0]);
Result := StrPas(path) + '\VPUpdater\';
end;
Sieht da jemand irgendwo das Objekt/Array "Events"? Also ich auch nicht
Aber trotzdem war fast alles rot unterstrichen.
Nach einem Klick auf STRG + D war auf einmal alles wieder okay (obwohl ich davor auch des öfteren mal formatiert habe). Und der Fehler war auf einmal beseitigt
Ich würde jetzt einfach mal behaupten, dass ich irgendwann mal die
IDE zerschossen habe und der Compiler dann Schrott kompiliert hat. Das würde auch erklären warum in meinem Array auf einmal ein Pfad stand ('C:\Program Files\). Dieser wird nähmlich bei der obenstehenden Funktion ermittelt.
Vllt. hat ja jemand eine bessere Erklärung für dieses Phänomen...
Naja, hauptsache es geht jetzt. Leider war das dann ja ein Quiz ohne Antwort
Immerhin hat
himitsu einen Fehler in meiner Log-Funktion entdeckt und ihr habt mich unterstützt
Gruß,
Lukas