Instalacja programu

0

Witam !
Mam program napisany w Delphi 7. Jest w nim taka funkcja(button) co otwiera plik z dysku. Jak dam kumplowi ten program to mu nie otworzy pliku bo albo nie ma tego pliku albo ma tylko ten plik ma inną lokalizację. Więc wymiśliłem żeby program instalował się i wszystkie pliki były np. w katalogu C:/Program Files/Program/ i <font color="white">w tedy</span> <font color="red">[ort] </span> by działało. Ale nie mam żadnego pojęcia o instalacji programu. Może jest jeszcze jakieś inne prostsze rozwiązanie tego problemu ? Proszę o pomoc !

0

Hmm nie bardzo cię rozumiem, ale chyba chodzi ci o to, że wraz z programem dajesz jakiś plik który trzeba otworzyć. Najlepiej trzymać go w katalogu z programem, a w ścieżce dajesz:

<font color="blue">ExtractFilePath(Application.ExeName) +'/plik.exe';</span>

Czy podobnie... można kombinować

0

Ale instalacja jest lepsza. Więc proszę o jakąś pomoc związaną z instalacją

0

Proponuję wykorzystać program do tworzenia fajnych instalatorów
Inno Setup http://www.innosetup.prv.pl/ Tam masz proste funkcje tego programu opisane po polsku.

0

nie no bezsensu, pomysł Detoxa jest absolutnie najlepszy!! tak jak ty chcesz zrobic to bys musial zrobić z gory narzuconą lokalizacje, a tak sie nie robi :-/ jest to absolutnie amatorskie rozwiązanie.

[DOPISANE]
Detox sie pomylił, powinno byc tak:

ExtractFilePath(Application.ExeName) +'\plik.exe';

czyli ta kreska ma byc w drugą strone. Nie zadziałało ci i pewnie dlatego uznales ze instalator to lepszy pomysl, weź <font color="white">sproboj</span> <font color="red">[ort] </span> teraz

0

Dalej nie działa. Może dla tego bo ja chce <font color="white">otwożyć</span> <font color="red">[ort]</span> plik tekstowy(.txt)

0

czyli ta kreska ma byc w drugą strone. Nie zadziałało ci i pewnie dlatego uznales ze instalator to lepszy pomysl, weź sproboj teraz

Nieprawda. ExtractFilePath() zwraca ścieżkę wraz z kreską, czyli nie powinno jej być w ogóle. Byłoby to prawidłowe przy zastosowaniu funkcji ExtractFileDir().

0

Bez kreski też nie działa !
To chyba coś z tym że to plik tekstowy(.txt)

0

ExtractFileDir(Application.ExeName) + '\plik.txt';

0

To, że to jest plik tekstowy to nie ma ŻADNEGO, nawet NAJMNIEJSZEGO znaczenia, bo to nadal jest po prostu ciąg bajtów. Rozszerzenie jest tylko do informacji użytkownika, plik o nazwie "abc.def" będzie działał równie dobrze jak "abcdef.txt". <font color="white">po prostu </span> <font color="red">[ort] </span> edytor tekstu interpretuje kolejne bajty jako kody znaków graficznych które ma wyświetlić. Plik o treści "abcd" to, dla komputera, 61626364h (albo 1100001110001011000111100100b :)). I tyle.
Podaj może ciut więcej kodu, bo jeśli plik jest w tym samym katalogu co program, to ostatni kod Detoxa (ten z ExtractFileDir i "" przed nazwą) musi działać, błęd jest gdzieś dalej.

0

W tym jest jakiś błąd !!!
Nie działa !!
Wyskakuje taki błąd: Statement expected, but expression of type 'String' found
Co mam zrobić ??

0

Zgaduję: wkleiłeś ten kawałek kodu ot tak sobie gdzieś w środek prodecury? To się zastanów, CO niby to ma zrobić. Delphi się czepia, bo kazałeś bezsensownie tworzyć ciąg znaków który nie jest do niczego użyty. Musisz to podać jako parametr (DRUGI, pierwszy ma być zmienną typu TextFile) do AssignFile...

0

Nie <font color="white">zabardzo</span> <font color="red">[ort] </span>Cię rozumiem !!
Po prostu wkleiłem kod w procedurę buttona i to wszystko
Nie działa !!

0

<font color="green">Nie zabardzo Cię rozumiem
Po prostu wkleiłem kod w procedurę buttona i to wszystko
Nie działa </span>

Człowieku - nie możesz tego wywołać bo to jest wartość (konkretniej: string), a wartości możemy co najwyżej wyświetlić, przekazać... To nie metoda - od razu widać, że nie wiesz o co tu biega. To jest ścieżka do twojego pliku, a co chcesz z nim zrobić - samo napisanie.

<font color="blue">ExtractFileDir(Application.ExeName) + '\plik.txt';</span>

Nie wywoła nic, bo delphi nie wie co ma z tym zrobić. Możesz na przykład to wyświetlić:

<font color="blue">ShowMessage(ExtractFileDir(Application.ExeName) + '\plik.txt');</span>

Rozumiesz?

PS:

<font color="green">W tym jest jakiś błąd !</span>

Ty jesteś błąd - i nie pisz dwóch postów jeden po drugim....

0

o moj boze :) oto procedurka na odczytanie czegos z pliku plik.txt znajdujacego sie w katalogu z programem


var f:textfile; s:string;
begin
assignfile(f, extractfilepath(application.exename)+'plik.txt');
reset(f);
readln(f,s);
form1.cation:=s;
closefile(f);
end;

wiecej w pomocy delphi (F1), a jak nie znasz ang. to nic nie zrobisz, takie zycie :)

0

Mi chodzi żeby otworzyć plik z tego samego folderu co pragrama nie wy tak kombinujecia !!
Tylko otworzyć !! W nowym oknie !!

0

Poczytaj sobie o ShellExecute

PS : specjalnie nie pisze rozwiązania, żebyś się czegoś nauczył...

0

Wiem szukałem w tym już wcześniej ale tam nie ma kodu do otworzenia pliku z folderu programu. Więc bąźdź tak łaskawy i podaj mi ten kod [cya]

0

Wiem szukałem w tym już wcześniej ale tam nie ma kodu do otworzenia pliku z folderu programu.

Oczywiście, że nie ma. ShellExecute otwiera jakikolwiek plik programem z nim skojarzonym. Ale TY musisz podać ścieżkę do tego pliku. Jak to zrobić, dostałeś już bardzo dużo odpowiedzi.

0

gosciu, zdecyduj co ty chcesz, wyjasnij to bo z tego co ty mowisz to dostales znacznie wiecej poprawnych odp niz sie mogles spodziewac, po prostu widocznie nie umiesz skladac pytan....

wklej czesc kodu i powiedz co chcesz zrobic (tzn tam gdzie jest blad)

jesli nadal sie upierasz przy instalatorze to mozesz go latwo zrobic: poczytaj w artach (ew. gotowce) i sciagnij jakis komponent pakujacy i go obsluz)

czy ty chcesz otworzyc plik exe?
czy ty chcesz otworzyc plik txt?
czy ty chcesz otowrzyc plik txt w swoim programie?
czy ty chcesz odczytac cos z pliku?
(w katalogu z programem)

0

OK !
Przy <font color="white">instalatoże </span> <font color="red">[ort] </span>sie nie upieram.
Chce otworzyc plik txt przez notatnik w nowym oknie.
I nikt jeszcze <font color="white">niepodał</span> <font color="red">[ort] </span> mi normalnego kodu !!

0

I nikt jeszcze niepodał mi normalnego kodu !!

A mi sie wydaje, że gdybyś nie kręcił nosem na wszelkie wskazówki i nie żądał jedynie gotowego kodu, to bez problemu znalazłbyś rozwiązanie problemu w poprzednich odpowiedziach.

0

otwieranie pliku txt w domyślnym edytorze:

uses ShellApi;
...
Procedure TForm1.Button1.Clck(Sender : TObject);
begin
ShellExecute(handle,'open',Pchar(Edit1.Text),nil,nil,SW_SHOW);
end;

A jeśli chodzi o ten plik to uruchomiany z programu to dajesz go tam gdzie masz exefile programu i:

var
filename : String; // zamiast stringa moża użyć też TFileName
tf : TextFile;
txt : String;
begin
filename := ExtractFileDir(ParamStr(0))+'\nazwa_pliku.txt';
AssignFile(tf,filename);
Reset(tf);
try
while not eof(tf) do begin
readln(tf,txt);
Memo1.lines.Add(txt);
end; // end while
finally
closeFile(tf);
end; // end try
end;// end procedure

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