Hey Störtebeker,
war auch mal vor dem problem aber ich hab das mit Tabsets gemacht aber das ist ja fast gleiche
ich habe ein Synedit komponente und der text wird in einem Array gespeichert (erstmal statisch wollte das noch umschreiben auf dynamisch).
Hier erst mal meine Proceduren:
Delphi-Quellcode:
function TabSyneditSave(text:string;tabposition,cursorposition:integer):boolean;
begin
result:=false;
tabsave[tabposition,1]:=text;
tabsave[tabposition,2]:=InttoStr(cursorposition);
end;
procedure TabSyneditLoad(tabposition:integer; var text:string; var cursorposition:integer);
begin
text:=tabsave[tabposition,1];
cursorposition:=strtoint(tabsave[tabposition,2]);
end;
procedure TabSyneditManager(text:string;tabposition,cursorposition:integer; var newtext:string; var newcursorposition:integer);
begin
TabSyneditSave(text,systems[1],cursorposition);
TabSyneditLoad(tabposition,newtext,newcursorposition);
systems[1]:=tabposition;
end;
Die TabSyneditManager ist immer dann notwendig wenn du in deinem Tabs herumblätterst das (Click procedure).
Wenn du eine neuen Tab öffnest einfach zu erst den TabSyneditSave und dann neuen Tab und einfach Synedit.clear. fertig.
so hab ich das gemacht und es funktioniert auch bei mehr als 100000 zeilen noch ein man frei (hab das getestet und es geht auch noch mit mehr 100000) weil ich die befürchtung hatte das das zulange dauert
aber es dauert überhabt nicht lang (ein mal schnipsen fertig)
ich hofe das dir das weiter hilft
MfG chefx