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ąć.
Zapamiętywanie zakładek
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Grudziądz/Bydgoszcz
- Postów: 5300
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 ;)
- Rejestracja: dni
- Ostatnio: dni
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.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Tuchów
- Postów: 12272
Nie bawiłem się nigdy programem Ager Web Edytor, ale to można wykonać na co najmniej kilka sposobów;
- 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,
- 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,
- 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ć;
- Rejestracja: dni
- Ostatnio: dni
- Postów: 64
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
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Tuchów
- Postów: 12272
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;