Gönderen Konu: Delphi 7 Programlamada Sorun??  (Okunma sayısı 435 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

ahmet90

  • Yeni Üye
  • *
  • Rep: +0/-0
  • Çevrimdışı Çevrimdışı
  • İleti: 2
Delphi 7 Programlamada Sorun??
« : 03 Temmuz 2009 14:44:27 »

merhaba arkadaşlar ben ilk defa programlamaya başladım ve mantığını henüz çözebilmiş değilim benim sorum bi simge çalıcı program yapmak istiyorum tasarım hazır ama Simge Tuşunu basınca kullanıcı .exe dosyasını seçtiğinde onu arka planda nasıl aktarıp programın oldugu klosere kopyalata bilirim opendialog1 ekledım ama savadialog olmadan kullanıcıya yer sormadan direk programın çalıştığı dizine kopyalatmak istiyorum ve birde mesela shell32.dll dosyasını seçti içinden 1 simge değilde hepsini nasıl kopyalatabilirim ?? Şimdiden Çok Teşekkurler...
Kayıtlı

sabanakman

  • Global Moderatör
  • *****
  • Rep: +5/-0
  • Çevrimdışı Çevrimdışı
  • Cinsiyet: Bay
  • İleti: 326
Ynt: Delphi 7 Programlamada Sorun??
« Yanıtla #1 : 06 Temmuz 2009 09:11:31 »

Merhaba. Programın bulunduğu klasör adı
Kod: (delphi) [Seç]
ExtractFilePath(Application.ExeName) koduyla elde edilir. Ayrıca bir dosya içindeki simgeyi çekip okumak ve onu kaydetmek için aşağıdaki gibi bir koddan faydalanabilinir.
Kod: (delphi) [Seç]
procedure SimgeOku(const SimgeDosyaAdi,YeniKopyaAdi:String; const SimgeSiraNo:Integer=0);
var Simge:Graphics.TIcon; HandleIcon: Windows.HICON;
begin
  HandleIcon:=ExtractIcon(HInstance,PChar(DosyaAdi),SimgeSiraNo);
  try
    Simge:=TIcon.Create;
    Simge.Handle:=HandleIcon;
    Simge.SaveToFile(ExtractFilePath(Application.ExeName)+YeniKopyaAdi);
  finally
    DestroyIcon(Simge.Handle);
    Simge.Free;
  end;
end;
Böylelikle
Kod: (delphi) [Seç]
if OpenFileDialog.Execute then SimgeOku(OpenFileDialog.FileName,'Deneme.ico',2);şeklindeki bir kodla seçilen dosyanın 3. sırasındaki simge okunacaktır (tabi varsa. Birden çok simge bazı .exe ve .dll dosyalarda olabilir). Burada ilk simgenin sıra numarası 0'dır. SimgeSiraNo değeri hiç verilmezse ilk (0.) sıradaki simge elde edilir. İyi çalışmalar.
« Son Düzenleme: 06 Temmuz 2009 09:12:30 Gönderen: sabanakman »
Kayıtlı
Åžaban Åžahin AKMAN

ahmet90

  • Yeni Üye
  • *
  • Rep: +0/-0
  • Çevrimdışı Çevrimdışı
  • İleti: 2
Ynt: Delphi 7 Programlamada Sorun??
« Yanıtla #2 : 08 Temmuz 2009 19:16:55 »

çok teşekkur ederım saygılarımla
Kayıtlı