ďťż

Ładny brzuch

Witam :) Mój edytor posiada dużo róznych generatorów, dajmy na to wstawianie obrazków. Trzymając się przykładu, mam w jakimś tam okienku Edita (edtURL), który jest ścieżką (bezwzględną albo wzgledną) dla obrazka oraz jakiegoś buttona (sbURL), który wywołuje OpenDialoga. Mam pod tego buttona taki kod:
procedure Tfrm_obrazek.sbURLClick(Sender: TObject); begin  if Open.Execute then  begin    if Status.Panels[3].Text = '' then      edtURL.Text := Open.FileName // BEZWZGLEDNA    else    begin      edtURL.Text := ExtractFileName(Open.FileName); // WZGLEDNA    end;  end; end;
Status - StatusBar, w którym w 3 komorze przechowywana jest ścieżka otwartego pliku
Open - OpenDialog
edtURL - Edit ze ścieżką

Jeśli w Status jest pusty (czyli nie ma otwartego pliku, tylko user pracuje na niezapisanym dokumencie) - wstawiana jest ścieżka bezwzględna (np. c:\xxx\yobrazek.jpg). W przeciwnym wypadku - kiedy 3 komora Statusu posiada ścieżkę (został otwarty jakiś plik, który user edytuje) wstawiana jest "ścieżka względna". Jednak jest tutaj błąd krytyczny :( Jeśli obrazek znajduje się w tym samym katalogu co otwarty plik tekstowy - oczywiście działa (bo ExtractFileName() wyświetla po prostu nazwę pliku :P ), a co jeśli obrazek znajduje się w jakimś podkatalogu, czyli np:
- otwart plik textowy - c:\xxx\
- obrazek - c:\xxx\img\
- wtedy do Edita powinien wstawić się tekst: img/obrazek.jpg
Albo inny przykład:
- otwart plik textowy - c:\xxx\strona\
- obrazek - c:\xxx\
- wtedy do Edita powinien wstawić się tekst: ../obrazek.jpg

Chyba rozumiecie o co mi chodzi? ;) Za odpowiedzi z góry thx :D
Użytkownik Coldpeer edytował ten post 14 luty 2006, 20:23


extractrelativepath
Użytkownik Einzeinbleth edytował ten post 14 luty 2006, 20:28

extractrelativepath

No ten drugi to:

BaseName musi zawierać ścieżkę wobec której funkcja zwróci wartość relatywną.
Czyli wobec pliku do ktorego chcesz wstawiac ta sciezke - czyli otwarty dokument.




No ten drugi to:

Czyli wobec pliku do ktorego chcesz wstawiac ta sciezke - czyli otwarty dokument.

hmm moze recznie - stringreplace zamieniaj wszystkie \ na / ?


hmm moze recznie - stringreplace zamieniaj wszystkie \ na / ?

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •