Merhabalar,
Program içerisinden opendialog bileşeni ile dosya seçtiriyorum. Buraya kadar hersey normal. Daha sonra programda işlem yaptigim da uygulama dizinini opendialog ile dosya sectigim konum olarak algiliyor.
Örnegin :
program icinden "\ayarlar" seklinde yol ayarladigimda, opendialog execute oluncaya kadar bu sekilde dogru calisiyor. programin herhangi bi yerinde opendialogla dosya sectirince (opendialog.execute olayi calisinca) yeni konum "opendialog ile acilan konum\ayarlar" seklinde oluyor.
Bu sorunu nasil duzeltebilirim acaba?
Tesekkurler.
opendialog sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: opendialog sorunu
OpenDialog'un If Execute komutundan önceki bir satırda InitialDir'ina açılışta bakacağı klasörü belirtirsen sorun kalmaz...
gibisinden
Kod: Tümünü seç
OpenDialog1.InitialDir := 'c:\';
Re: opendialog sorunu
@mrmarman hocam öncelikle ilgine teşekkür ederim.
Sanırım ben tam olarak ne istediğimi anlatamadim. Opendialog ile dosya seciminde dialog acilinca belli bi klasore konumlanmasi istedigim sey degil.
Benim yapmak istedigim, open dialog ile dosya sectikten sonra program artik heryerde uygulamanin konumu olarak bu acilan klasoru goruyor.
uygulamamizin c:\deneme klasorunde oldugunu düsünelim. ben normalde deneme klasoru icindeki ini klasorunde ki dosyalara erismek icin program icerisinde "ini\xxx.ini" seklinde ulasiyorum.
OpenDialog ile herhangi bi yerde dosya seçtikten sonra yukardaki sekilde dosyaya ulaşamaz oluyorum.
dialog ile en son dosya sectigim konum "c:\yyyy" olsun. ben "ini\xxx.ini" seklinde dosyaya erismeye calisinca
c:\yyyy\ini\xxx.ini dosyasi bulunamadı hatasi veriyor. (normalde "c:\deneme\ini\xxx.ini" olmasi gerekirken)
umarim anlatabilmisim dir.
Sanırım ben tam olarak ne istediğimi anlatamadim. Opendialog ile dosya seciminde dialog acilinca belli bi klasore konumlanmasi istedigim sey degil.
Benim yapmak istedigim, open dialog ile dosya sectikten sonra program artik heryerde uygulamanin konumu olarak bu acilan klasoru goruyor.
uygulamamizin c:\deneme klasorunde oldugunu düsünelim. ben normalde deneme klasoru icindeki ini klasorunde ki dosyalara erismek icin program icerisinde "ini\xxx.ini" seklinde ulasiyorum.
OpenDialog ile herhangi bi yerde dosya seçtikten sonra yukardaki sekilde dosyaya ulaşamaz oluyorum.
dialog ile en son dosya sectigim konum "c:\yyyy" olsun. ben "ini\xxx.ini" seklinde dosyaya erismeye calisinca
c:\yyyy\ini\xxx.ini dosyasi bulunamadı hatasi veriyor. (normalde "c:\deneme\ini\xxx.ini" olmasi gerekirken)
umarim anlatabilmisim dir.

Re: opendialog sorunu
bir de aşağıdaki kodu deneseniz
Kod: Tümünü seç
openDialog.InitialDir := GetCurrentDir;
UWESIS CORPORATION
Re: opendialog sorunu
Opendialog dan önce bulundugun klasörü kaydet daha sonra tekrar onu geçerli klasör yaparsın.
Veya ini dosyalarına program dizinine göre sabit bir klasörden ulaşırsın.
Kod: Tümünü seç
klasor:=getcurrentdir;
if opendialog1.execute then
....
setcurrentdir(klasor);
Kod: Tümünü seç
inidosyasi:=extractfilepath(paramstr(0))+'ini\xxx.ini';
// extractfilepath bir dosyanın klasörün gösterir
// paramstr(0) çalışan programın klasör ve adını getirir
// c:\deneme\benimprogram\program.exe gibi
Re: opendialog sorunu
Aşağıdaki kod isimi gordu. teşekkürler.
Opendialog dan önce bulundugun klasörü kaydet daha sonra tekrar onu geçerli klasör yaparsın.
Kod: Tümünü seç
klasor:=getcurrentdir;
if opendialog1.execute then
....
setcurrentdir(klasor);