Zapis obrazka do katalogu z programem

0

Witam. Mam problem z zapisem wczytanego pliku obrazka w formacie .bmp do katalogu gdzie znajduje się wykonywalny plik programu oraz innego jego składowe np.(\Win32\Debug). Program wygląda następująco: Na formatce są dwa przyciski (Wczytaj i Zapisz) , komponent Edit w którym wyświetla się nazwa wczytanego pliku oraz komponent Image do podglądu wczytanego obrazu oraz OpenPictureDialog do obsługi wyboru pliku obrazka. Program uruchamia się, wczytuje obrazek , podaje jego nazwę i rozszerzenie , ale po naciśnięciu Zapisz nie zapisuje się on w wyżej wymienionym katalogu. Mógłbym w metodzie SaveToFile na sztywno podać całą ścieżkę zapisu, ale chciałbym, aby było to dynamiczne.

procedure TForm1.Button1Click(Sender: TObject);
begin
OpenPictureDialog1.InitialDir:=GetCurrentDir;
  if OpenPictureDialog1.Execute then
  Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
  Edit1.Text:= ExtractFileName(OpenPictureDialog1.FileName);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
 Image1.Picture.SaveToFile( ExtractFileName(OpenPictureDialog1.FileName));
end;
0

a jaki masz błąd/problem? BTW jest coś takiego jak SaveDialog i z tego należy skorzystać

0

Efektem jest to że po prostu po naciśnięciu przycisku zapisz , NIE zapisuje tego obrazka w katalogu z programem , nie ma tam tego pliku

2

Mam problem z zapisem wczytanego pliku obrazka w formacie .bmp do katalogu gdzie znajduje się wykonywalny plik programu

Takich rzeczy nie robi się od czasów Visty. Standardowo program nie ma praw zapisu do Program Files, gdzie powinien znajdować się program.
Jeżeli jest to dokument dla użytkownika, powinieneś wyświetlić okno dialogowe i pozwolić użytkownikowi wybrać, gdzie chce zapisać plik.

Jeżeli to jest wewnętrzny plik danych i wybór nie jest wskazany albo możliwy, powinieneś pobrać katalog użytkownika, np. Environment.GetFolderPath(SpecialFolder.LocalApplicationData) i tam utworzyć podkatalog z nazwą programu.

0

Jeśli jest to proste narzędzie, które ma służyć jedynie do własnych-lokalnych zastosowań, to można w ustawieniach projektu zmienić wymagane uprawnienia na requireAdministrator; W innym przypadku należy postępować zgodnie z wytycznymi od Microsoftu i sugestiami poprzednika.

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