Program varsa... : FsBold

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
gencyazilim
Üye
Mesajlar: 10
Kayıt: 22 Eki 2006 11:23
Konum: Ankara
İletişim:

Program varsa... : FsBold

Mesaj gönderen gencyazilim »

Merhaba Arkadaşlar,

Teşekkür:

Sorularıma geçmeden önce yaklaşık 1 yıldır yapmak istediğim fakat sırf bunun için mesaj yazıp gereksiz konu açmaktan çekindiğim için ertelediğim bir şeyi belirtmek istiyorum. Bu foruma üye olalı yaklaşık 1 yıl oldu ve 1 yıldır her başım sıkıştığında bu forumdan gerekli yardımı buldum. Hem de hiç konu açmadan ve mesaj yazmadan. Bu yazıyı hep ilk mesajımda yazarım dedim ve bugüne kısmetmiş.

Bu sitenin kurulmasında emeği geçen arkadaşlara sonsuz teşekkür ederim. Gerçekten çok faydalı bir işe imza atmışlar. Bu tip durumlarda kullanılan deyim "bilgi havuzu" ifadesidir fakat burası için bilgi havuzu demek sanırım hakaret olur çünkü burası havuz değil tabir caizse deniz... Bilgi Denizi...

Soru -1-
Arkadaşlar şu an kendim için oluşturduğum bir programlar CDsi için Autorun yazılımı yazmaya çalışıyorum. Yalnız bir noktada takıldım ve bir türlü işin içinden çıkamadım. Koymak istediğim özellik tam olarak şu: Eğer program bilgisayarda yüklü ise bir buttun ve bir label'in fontları kalın yazı ile yazılacak. Bunu örneğin form creat'ınde ya da bir timer ile yaptırmaya çalışıyorum.

Türkçe olarak örneklendirirsem sanırım şöyle bir kod olması gerekiyor:

Eğer c:\program files\winrar\winrar.exe varsa winrar düğmesini ve label'ini fsbold yap... :) Sanırım böyle bir şey olacak...

Nette bir kod buldum, bir fonksiyon ile dosyanın varlığını kontrol edebiliyoruz. Fakat bu kod ile sadece dosya varsa showmessage ile bulundu ya da bulunamadı gibi şeyler yazdırabiliyorum, istediğim düğmenin ve labelin fontunu kalın yaptıramıyorum.

Kod: Tümünü seç

Function GetShortFileName(Const FileName : String) : String;
var
aTmp: array[0..255] of char;
begin
if GetShortPathName(PChar(FileName),aTmp,Sizeof(aTmp)-1)=0 then
Result:= FileName+ ' <--Dosyası Bulunamadı'
else
Result:=FileName+' <-- Dosyası Bulundu';
end;
Yukarıdaki bulduğum kod, bu kodu ekledikten sonra bir button'un click olayına getshortfilename('C:\program files\winrar\winrar.exe') yazdığım zaman show message çıkıyor (yukarıdaki result bölümlerini showmessage olarak değiştiriyorum ben) Umarım ne demek istediğimi anlatabilmişimdir.

Soru -2-

2. olarak da arkadaşlar, bir de bu Autorun yazılımına çoğu CDnin Autorun'ın da olan CDyi Aç! gibi bir düğme koymak istiyorum. Düğmeye tıklanıldığında CDnin içi Windows Gezgini ekranında açılacak...

Arkadaşlar bu iki sorum için yardımlarınızı bekliyorum. Eminim ki bu sorularım ya da yakınları daha önceden forumda sorulmuş ve cevaplanmıştır fakat ben ne yaptımsa bulamadım. Tam olarak nasıl anahtar kelimelerle aratacağımı bulamadım... Daha önce sorulmuş sorular ise affola...

Şimdiden herkese teşekkürler...
En son gencyazilim tarafından 23 Ağu 2007 01:12 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
"Türkçemiz Sevdamızdır!"

http://www.turkcesevdalilari.com
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
1.soru:
showmessage yerine

Kod: Tümünü seç

begin //bulursa
button.font.style:=button.font.style+[fsbold];
label.font.style:=anladın sen onu?
end else
begin //bulamadıysa
  button.font.style:=button.font.stye-[fsbold];
  label.font.stye:= :)
end
2.soruna gelince.
buttonun onclick inde
winexec ile explorer.exe yi çalıştırabilirsin.

Kod: Tümünü seç

winexec('explorer.exe',extractfilpath(paramstr(0)),0)
winexec in parametrelerini salladım. demek istediğim onun parametrelerinden biri hangi klasörü göstereceğini belirliyor.

kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
gencyazilim
Üye
Mesajlar: 10
Kayıt: 22 Eki 2006 11:23
Konum: Ankara
İletişim:

Mesaj gönderen gencyazilim »

AS, cevabınız için teşşekürler fakat maalesef olmadı. Aşağıdaki gibi sizin verdiğiniz kodları ekledim ve hatalar verdi. Hataları ve kodları görmek için resme tıklayınız...

http://img264.imageshack.us/img264/4906/hata1zn7.jpg

2. cevabınızı da maalesef yapamadım. Ben de programları winexec komutu ile çalıştırıyorum.

Kod: Tümünü seç

winexec('explorer',9)
Winexec('programlar\winrar\winrarsetup.exe',9)
gibi...

dediğim zaman explorer penceresi açılıyor fakat belgelerim klasörünü gösteriyor. Buna yol nasıl giriliyor bilmiyorum ayrıca direk yol girersek de bir işe yaramaz. Çünkü her bilgisayarda CDROM sürücünün yolu farklı olacaktır.
"Türkçemiz Sevdamızdır!"

http://www.turkcesevdalilari.com
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

Kod: Tümünü seç

Function GetShortFileName(Const FileName : String) : String; 
fonksiyonu formun altında tanımlı olmadığı için form üzerindeki nesnelere direk erişemezsiniz.
speedbutton ve label ın başına formunuzun adını yazarak deneyin.

Kod: Tümünü seç

form1.speedbutton1
form1.label1
gibi.
winexec yerine

Kod: Tümünü seç

ShellExecute(0,'','explorer.exe',pchar(extractfilepath(paramstr(0))),pchar(extractfilepath(paramstr(0))),CmdShow);
bunu kullanabilirsiniz.
uses kısmına shellapi eklemeniz lazım.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
gencyazilim
Üye
Mesajlar: 10
Kayıt: 22 Eki 2006 11:23
Konum: Ankara
İletişim:

Mesaj gönderen gencyazilim »

Çok teşekkür ederim. Her iki sorun da çözüldü. Sağ olun... :)
"Türkçemiz Sevdamızdır!"

http://www.turkcesevdalilari.com
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

rica ederim... 8)
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
aXéNT

Re: Program varsa... : FsBold

Mesaj gönderen aXéNT »

Arkadaşalar ben anlamadım tam olarak kodları verebilirmisiniz acaba
khanco
Üye
Mesajlar: 226
Kayıt: 01 Eki 2007 04:39
Konum: İzmir
İletişim:

Re: Program varsa... : FsBold

Mesaj gönderen khanco »

basitleştirilmiş hali.

Kod: Tümünü seç

implementation

{$R *.dfm}

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
SpeedButton1.Font.Style:=SpeedButton1.Font.Style-[fsStrikeOut];
 SpeedButton1.Font.Size:=8;
 ShellExecute(0,'','explorer.exe',pchar(extractfilepath(paramstr(0))),pchar(extractfilepath(paramstr(0))),CmdShow);

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SpeedButton1.Font.Style:=SpeedButton1.Font.Style-[fsbold];
SpeedButton1.Font.Size:=20;

 end;

end.
Cevapla