Dosya adını parametre olarak göndermek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Dosya adını parametre olarak göndermek

Mesaj gönderen salvation »

istediğim uzantılı bir dosyanın programımla açılmasını sağladım ama doğal olarak sadece programı açıyor :) Açılan dosya, adınıda parametre olarak programa göndermeli. Bunu nasıl yapıyoruz?
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

ParamCount ve ParamStr ile yapacaksın
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

3 ve de 5 dakika da cevap, çok süper ya ;)

REK-LAM-LAR
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Mesaj gönderen salvation »

soruyu tam anlatamadım galiba :)

Mesela .sti uzantılı dosyaların bir text dosyası olduğunu varsayalım,
Yaptığım programda .sti uzantılıları açıyor diyelim, c:\windows\deneme.sti isimli dosyayı kullanıcı açmak istediğinde, program açılcak ve dosyanın patch'inide alıcak,içindekileri görüntülicek.. Yani çift tıklanan dosya, programa nerde olduğunuda göndercek.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

soru anlaşıldı, sen cevapları bir daha gözden geçir ;)

ParamCount ile parametre sayısını alacaksın. parametre varsa, ParamStr(1) ile dosya ismini alacaksın. Sonra açıyor musun, siliyor musun ne yaparsan yap.

Kolay gelsin.
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Mesaj gönderen salvation »

Beni bitek siz anladınız, sizde yanlış anladınız :D

"C:\deneme.sti" -parametre

O parametre yazan yeri biz yazmayacağızki? Bu şekilde yazmış olsak paramstr ile falan alabiliyoruz ama orda bişey olmıcak. Örneğin notepad deki gibi.
Notepad le bi txt dosyasını kaydettiğimiz zaman Notepad açıldığında o dosyaya nasıl ulaşıyor. Yani notepad'inki gibi bi mantık izlemeye çalışıyorumda?
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

hocam adım adım bir daha izah edeyim :

1. Sen .sti uzantısını programınla ilişkilendirdin değil mi? Mesela C:\deneme.sti 'ye çift tıklayıp açtığında aslında programına bunu parametre olarak geçmiş oluyorsun. Yani :

Program_ismin "c:\deneme.sti"

şeklinde çalıştırmış oluyorsun. Registry'e eklediğin %1 bu işe yarıyor.

2. Sen programın açıldığı zaman dediğim gibi bu parametre sayısını ve parametreleri kontrol ederek işini yapacaksın.

Kolay gelsin.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

denetim masası - klasör seçenekleri - Dosya türleri ni tıkla.

istediğin dosya türünü seç, gelişmiş düzenle ordaki ikinci satırın sonunda %1 işareti gönderdiği dosya adı.
ha bunu nasıl buraya eklicen regedite bakmak lazım :)

örneğin mp3 dosyaları için bu satır
"C:\Program Files\Winamp3\winamp3.exe" "%1"

Kod: Tümünü seç

procedure TForm1.FormShow(Sender: TObject);
begin
  if ParamCount<> 1 then
    Close;

   showmessage(ParamStr(1));
   if FileExists(ParamStr(1)) then
    memo1.Lines.LoadFromFile(ParamStr(1));
end;
bunu derleyicide denemek için RUN'da parametersa yazarak run yapıp deneyebilirsin.

ehühüh admin bende önce yazmın :)
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Mesaj gönderen salvation »

bende bu %1 ne işe yarar diyodum :) Demek zaten bu işi yapıyormuş...
ParamStr(1) ile gönderilen dosya adını veriyor...

Hallettim,çok teşekkürler!
koko134
Üye
Mesajlar: 16
Kayıt: 17 Ağu 2004 04:15
Konum: ist

Mesaj gönderen koko134 »

if paramcount<>1 then close
close un parametresi yok parametresi olan bi terminator var mı 0 yerine 1 dondursun istiorum
tskrlr
Cevapla