Zapamiętywanie zakładek

0

Witam, jak zrobić coś takiego jak jest np. w edytorze "Ager Web Edytor" albo w przeglądarce "Opera", czyli gdy zamykam program to otwarte w nim zakładki zapisują się i przy jego otwarciu automatycznie się wczytują, w ogóle nie mam pomysłu jak to zacząć.

0

Bardzo prosto, zapisujesz sobie adres pliku który masz otwarty np w pliku ini przy zamykaniu programu a przy otwieraniu wczytujesz adres oraz tworzysz zakładkę. Delphi ma fajna klasę ini wiec problemu nie ma żadnego ;)

0

Zapisując przed zamknięciem stan zakładek i wczytując ten stan przy uruchomieniu programu.
Zapisać do rejestru (odradzam) lub do bazy danych lub do pliku.
Jeżeli do pliku możesz to zrobić w prawie każdej postaci od pliku binarnego do pliku XML.

0

Nie bawiłem się nigdy programem Ager Web Edytor, ale to można wykonać na co najmniej kilka sposobów;

  1. Jeżeli tekst w zakładkach masz zapisany to wystarczy zapisac sobie do pliku ścieżki tych plików i podczas rozruchu programu tworzyć dynamicznie zakładki z polem tekstowym i od razu ładować tekst z zapisanych plików,
  2. Jeśli tekst w polach nie musi być zapisany to musisz go gdzieś zapisać - np. stworzyć sobie plik amorficzny, w którym zapiszesz wszystkie dane zakładki + tekst w niej zawarty,
  3. Możesz także zapisać cały komponent do pliku i podczas uruchamiania programu po stworzeniu kontrolki załadować ją z pliku;
    Najprościej jest zapisać cały komponent do pliku; Jeśli to ja miałbym takie coś zrobić to utworzyłbym sobie plik amorficzny, zapisał odpowiednie dane samego komponentu (jeśli to było by konieczne) oraz dane każdej zakładki - stan modyfikacji, ilość znaków notatki, tekst itd. itp.;

Kwiestia tego co Ci pasuje i co umiesz zrobić;

0

aha, dzięki, a jak zapisać cały komponent ?
a i wiecie jak zrobić ścieżkę do pliku, by było coś takiego jak w HTML'u jest np: images/logo.png ( gdy index.html i folder images znajdują się w tym samym folderze)
bo nie chce wpiswać całego: c:\coś tam\coś tam, bo nie wiem na jakim dysku będzie program tylko od razu np biblioteka\zakladki.ini

0
DiKey11 napisał(a)

aha, dzięki, a jak zapisać cały komponent ?

Do tego trzeba wykorzystać klasę TStreamTMemoryStream i metody WriteComponent/ReadComponent;

DiKey11 napisał(a)

a i wiecie jak zrobić ścieżkę do pliku, by było coś takiego jak w HTML'u jest np: images/logo.png ( gdy index.html i folder images znajdują się w tym samym folderze)
bo nie chce wpiswać całego: c:\coś tam\coś tam, bo nie wiem na jakim dysku będzie program tylko od razu np biblioteka\zakladki.ini

Nic z tego nie rozumiem... Chodzi Ci o skrócenie ścieżki? Przecież to są zwykłe operacje na łańcuchach znaków... Zawsze możesz zrobić sobie stałą z nazwą pliku biblioteki, np.:

const
  PAGES_LIBRARY_NAME = 'biblioteka\zakladki.ini';

no i jeżeli będziesz się chciał odwołać do tego pliku to wystarczy pobrać ścieżkę *.exe (bez nazwy) i dodać nazwę pliku z zakładkami, np. tak:

var
  iniPages: TINIFile;
begin
  iniPages := TINIFile.Create(ExtractFilePath(Application.ExeName) + PAGES_LIBRARY_NAME);

i to wystarczy; Jest wiele sposobów na wykonanie tego, zastanów się jaki Ci pasuje;

1 użytkowników online, w tym zalogowanych: 0, gości: 1