
Parametre dediğimiz şey nedir
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Parametre dediğimiz şey nedir
Parametre'yi daha çok ms-dos programlarında kullandığım için yabancı değilim ancak delphi ile program yazarken mesela "-silent" parametresinde programın her açılışta tray'de açılmasını sağlayabiliriz ama nasıl - mesela bir butonun altında çalışan prosedür veya fonksiyonu nasıl parametre olarak tanıtabiliriz - mesela bir text editor yazdım - buna %1 parametresini koyduğumda (ki böyle mi bilmiyorum
) programdaki richedit1.lines.add(programyolu) gibi bir komutu çalıştırmasını, programyolu değişkenini de parametre olan %1 'in belirtmesini nasıl sağlarız ??? - KOLAY GELSİN

rsimsek ustam ellerinize sağlık ama hiç bişey anlamadım - daha doğrusu bir exe'ye parametre nasıl verilir / bu parametre compile edildikten sonra nasıl çağırılır bunları bilmediğim ve ayrıca paramcount komutunda verilen örnekteki
paramcount sonrası
illegal character : $96 hatası alıyorum - deneme şansım olmuyor
bu saydıklarım yüzünden henüz olayı kavrayamadım
(var sonrası araya begin koydum)var
i: Integer;
for i := 0 to ParamCount – 1 do
begin
if LowerCase(ParamStr(i)) = 'beep' then
Beep(10000,1000)
else if (LowerCase(ParamStr(i)) = 'exit' then
Application.Terminate;
end;
paramcount sonrası
illegal character : $96 hatası alıyorum - deneme şansım olmuyor
bu saydıklarım yüzünden henüz olayı kavrayamadım

Delphi ortamında denerken Run / Parameters.. dan parametre verebilirsin.
Derlediğin programı çalıştırırken yanına parametre verebilirsin.
Çalıştıra; "D:\Program Files\Borland\Delphi7\Projects\Project2.exe" parametreeee şekline yazarsan çalışacaktır.
Verdiğin örnekte de parametreler içinde beep ve exit varsa ona göre işlem yapıyor.
Derlediğin programı çalıştırırken yanına parametre verebilirsin.
Çalıştıra; "D:\Program Files\Borland\Delphi7\Projects\Project2.exe" parametreeee şekline yazarsan çalışacaktır.
Kod: Tümünü seç
var
i: Integer;
begin
for i := 0 to ParamCount – 1 do
if LowerCase(ParamStr(i)) = 'beep' then
Beep(10000,1000)
else if (LowerCase(ParamStr(i)) = 'exit' then
Application.Terminate;
end;
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Ayrıca programınızın exe dosyasının kısayoluna parametreyi ekleyebilirsiniz. Kısayolu sağ tıkladıktan sonra Özellikleri seçip, Kısayol tabına geçtikten sonra, Hedef kısmını "C:\Program Files\Parametre\Project1.exe silent" şeklinde değiştirerek project1'e parametre iletebilirsiniz. Kurulum programları ile kısayolların bu şekilde oluşmasını sağlayabilirsiniz.webaytek yazdı:bu parametre compile edildikten sonra nasıl çağırılır
WinExec ve ShellExecute gibi komutlarla da benzer şekilde parametreleri kullanabilirsiniz.
Kod: Tümünü seç
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
paramcount;
for i := 0 to ParamCount - 1 do
begin
if LowerCase(ParamStr(i)) = 'silent' then
showmessage('silent')
else if LowerCase(ParamStr(i)) = 'terminate' then
showmessage('terminate')
else if LowerCase(ParamStr(i)) = 'message' then
showmessage('message')
KOD SONUCUNU açıklıyorum := compile ederken ilk iki mesaj kendiliğinden geliyor. programı direkt klasör içinden açınca hiçbiri çalışmıyor direkt form görünüyor.
ayrıca proje1.exe parametreadi calismiyor maalesef

Zaten kodunuzun bahsettiğiniz şekilde çalışması gerekir. Run menüsünden parameter'a değer yazınca, program (Delphi'de) parametreler girilmiş gibi çalışır. Delphi parametrelerin exe dosyaya gönderilme işini kendi yapar.Programı direkt klasörden açınca(Delphi dışından) da çalışmaması normal, çünkü exe dosyayı doğrudan; yani parametre belirtmeden açtınız.
Programı delphi dışından parametreli çalıştırmak için, exe'nin kısayolunu oluşturun, Kısayolu sağ tıkladıktan sonra Özellikleri seçip, Kısayol tabına geçtikten sonra, Hedef kısmına "C:\Program Files\Borland\Delphi7\Projects\Project1.exe silent" (tırnaklar olmadan) yazıp, exe dosyayı bu kısayol yardımıyla çalıştırın.
Diğer bir yol olarak da(işletim sisteminiz Xp ise) Çalıştır'a cmd yazdıktan sonra, projenin bulunduğu klasöre gidip ve "Project1.exe silent" komutunu verebilirsiniz.
Burada bu konuyla ilgili bir makale de var.
Programı delphi dışından parametreli çalıştırmak için, exe'nin kısayolunu oluşturun, Kısayolu sağ tıkladıktan sonra Özellikleri seçip, Kısayol tabına geçtikten sonra, Hedef kısmına "C:\Program Files\Borland\Delphi7\Projects\Project1.exe silent" (tırnaklar olmadan) yazıp, exe dosyayı bu kısayol yardımıyla çalıştırın.
Diğer bir yol olarak da(işletim sisteminiz Xp ise) Çalıştır'a cmd yazdıktan sonra, projenin bulunduğu klasöre gidip ve "Project1.exe silent" komutunu verebilirsiniz.
Burada bu konuyla ilgili bir makale de var.
dediğinizi de denedim zaten - ayrıca dediğim gibi parametre kullanma konusunda sorunum yok. MS-DOS'tan alıştığımı söylemiştim. ancak sorunum parametreyi zannediyorum ki hatalı vermek konusunda. anlayamadım - yaw elinizde kullandığınız işe yaradığına emin olduğunuz bir parametre başlığı varsa lütfen rica ediyorum - kod olarak tabi. benim yukarıda yazdığım kodu çalıştırmayı becerebilen de haber versin lütfen
Sizin yukarıdaki kodu aşağıdaki şekilde düzenleyince -sanırım istediğiniz biçimde- çalışıyor.
Kısayol ile parametre yollamada belirtmeyi unuttuğum bir durum olmuş. Eğer projenizin bulunduğu yolun içinde 8 karakterden daha uzun bir klasör adı varsa, Hedef kısmını şu şekilde yazmalısınız(tırnaklar dahil)
Yukarıdaki kısayolu düzenledikten sonra, bu kısayola çift tıkladığınızda, program silent mesajını vererek açılacaktır.
Kod: Tümünü seç
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
for i := 1 to ParamCount do
begin
if LowerCase(ParamStr(i)) = 'silent' then
showmessage('silent')
else
if LowerCase(ParamStr(i)) = 'terminate' then
showmessage('terminate')
else
if LowerCase(ParamStr(i)) = 'message' then
showmessage('message');
end;
end;
Sizin kodunuz bu yüzden 3. parametre olan message'yi görmüyor. Üçüncü parametre olan message ParamStr(3) değerinde duruyor. Sizin döngünüz 2'de duruyor.rsimsek yazdı:ParamStr(0): programın adını yolu ile birlikte verir.
Kısayol ile parametre yollamada belirtmeyi unuttuğum bir durum olmuş. Eğer projenizin bulunduğu yolun içinde 8 karakterden daha uzun bir klasör adı varsa, Hedef kısmını şu şekilde yazmalısınız(tırnaklar dahil)
Kod: Tümünü seç
"C:\Documents and Settings\KullaniciAdi\Desktop\Parametre\Project1.exe" silent
oncreate olayına
yazdım hepsi oldu çok teşekkür ederim yaw - herkesin ellerine sağlık
hepinize allah sabır versin
Kod: Tümünü seç
if LowerCase(ParamStr(1)) = 'silent' then
showmessage('silent')
else if LowerCase(ParamStr(1)) = 'terminate' then
showmessage('terminate')
else if LowerCase(ParamStr(1)) = 'message' then
showmessage('message')
hepinize allah sabır versin
