Zapamiętywanie zakładek

Odpowiedz Nowy wątek
2012-08-26 20:53
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ąć.

Pozostało 580 znaków

2012-08-26 21:14
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 ;)

A co jesli notatki nie muszą być zapisane przed zamknięciem programu? Wtedy trzeba zapisać wszystkie informacje oraz tekst wszystkich notatek - najlepiej do pliku binarnego; - furious programming 2012-08-26 21:21

Pozostało 580 znaków

2012-08-26 21:15
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.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2012-08-26 21:18
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ć;


edytowany 1x, ostatnio: furious programming, 2012-08-26 21:22

Pozostało 580 znaków

2012-08-26 21:26
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

Pozostało 580 znaków

2012-08-26 21:33
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;


edytowany 5x, ostatnio: furious programming, 2012-08-26 21:48

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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