Ich hab' jetzt nochmal rumprobiert. In meiner StringList sind trotzdem die Sektionen drin. Trotzdem funktioniert mein Code nicht und ich habe keinen Plan wo der Wurm steckt:
Delphi-Quellcode:
constructor TWindowsSidebarNotes.Create(FileName: String = '');
var
iGadget, iNotes: Integer;
NewGadget: TWindowsSideBarNotesGadget;
Sections: TStringList;
begin
inherited Create;
fNotesGadgets := TObjectList.Create;
if FileName = '' then
Filename := IncludeTrailingPathDelimiter(GetShellFolder(CSIDL_LOCAL_APPDATA)) + 'Microsoft\Windows Sidebar\Settings.ini';
fIniFile := TIniFile.Create(FileName);
Sections := TStringList.Create;
fIniFile.ReadSections(Sections);
for iGadget := 0 to Sections.Count -1 do
begin
if fIniFile.ReadString('[' + Sections.Strings[iGadget] + ']', 'NoteCount', '') <> '' then
begin
NewGadget := TWindowsSidebarNotesGadget.Create;
NewGadget.SectionName := Sections.Strings[iGadget];
for iNotes := 0 to StrToInt(StringReplace(fIniFile.ReadString('[' + Sections.Strings[iGadget] + ']', 'NoteCount', '0'), '"', '', [rfReplaceAll])) -1 do
begin
NewGadget.Add(fIniFile.ReadString('[' + Sections.Strings[iGadget] + ']', IntToStr(iNotes), ''));
end;
fNotesGadgets.Add(NewGadget);
end;
end;
Sections.Free;
end;
//zum auslesen der einzelnen "Notizen"
function TWindowsSidebarNotes.ReadNote(Gadget, Index: Integer):String;
begin
Result := (fNotesGadgets.Items[Gadget] as TWindowsSidebarNotesGadget).Strings[Index];
end;