opendialog sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
oyle
Üye
Mesajlar: 137
Kayıt: 17 Eki 2006 05:53

opendialog sorunu

Mesaj gönderen oyle »

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.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: opendialog sorunu

Mesaj gönderen mrmarman »

OpenDialog'un If Execute komutundan önceki bir satırda InitialDir'ina açılışta bakacağı klasörü belirtirsen sorun kalmaz...

Kod: Tümünü seç

OpenDialog1.InitialDir := 'c:\';
gibisinden
Resim
Resim ....Resim
oyle
Üye
Mesajlar: 137
Kayıt: 17 Eki 2006 05:53

Re: opendialog sorunu

Mesaj gönderen oyle »

@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. :?
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: opendialog sorunu

Mesaj gönderen CiTiZEN »

bir de aşağıdaki kodu deneseniz

Kod: Tümünü seç

openDialog.InitialDir := GetCurrentDir;
UWESIS CORPORATION
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: opendialog sorunu

Mesaj gönderen emin_as »

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);
Veya ini dosyalarına program dizinine göre sabit bir klasörden ulaşırsın.

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 
oyle
Üye
Mesajlar: 137
Kayıt: 17 Eki 2006 05:53

Re: opendialog sorunu

Mesaj gönderen oyle »

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);
Cevapla