Kann das denn so gehen?
Delphi-Quellcode:
App.GetTable(PChar('SELECT * FROM todo WHERE projectid=' + IntToStr(App.GetProjectId) + ';'));
for i := 1 to App.TableCount do begin
sVersion := App.FieldByName('version');
VersionExists := -1;
for j := 0 to High(Data.Versions) do
if Data.Versions[i].Version = sVersion then
VersionExists := i;
if VersionExists = -1 then begin
SetLength(Data.Versions, Length(Data.Versions) + 1);
VersionExists := High(Data.Versions);
Data.Versions[VersionExists].Version := sVersion;
end;
with Data do begin
SetLength(Versions[VersionExists].ChangeType, Length(Versions[VersionExists].ChangeType) + 1);
Versions[VersionExists].ChangeType[High(Versions[VersionExists].ChangeType)] := App.FieldByName('type');
SetLength(Versions[VersionExists].ChangeLog, Length(Versions[VersionExists].ChangeLog) + 1);
if Trim(App.FieldByName('changelog')) = '' then
Field := 'description'
else
Field := 'changelog';
Versions[VersionExists].ChangeType[High(Versions[VersionExists].ChangeType)] := App.FieldByName(Field);
end;
App.TableNext;
end;
Oder ist groß/kelinschreibung wichtig.
Zudem zeigt er kein Fenster an (lol), obwohl das direkt dannach kommt... Ich werds mir wohl mal angucken müssen.
Data ist übrigends die TToDoData etwas modifiziert:
Delphi-Quellcode:
type
TToDoData = record
Versions : array of record
Version : string;
ChangeType : array of string;
ChangeLog : array of string;
end;
end;
PS: Da fällt mir auch, dass ich das vereinfachen kann, indem ich entweder das TToDoData ... und end; wegnehme, oder Versions und end; und aus dem record ein array mache