Listbox Items C:\WINDOWS\Fonts

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Listbox Items C:\WINDOWS\Fonts

Mesaj gönderen haydarxxx »

Listbox Items ine C:\WINDOWS\Fonts klöründeki kayıtlı olan tüm font dosyalarının isimlerini Listbox ın Items inde göstermek istiyorum bunu nasıl gerçekleştirebiliriz.
oyle
Üye
Mesajlar: 137
Kayıt: 17 Eki 2006 05:53

Mesaj gönderen oyle »

Kod: Tümünü seç

var
  j : integer;
begin
  for j := 0 to Screen.Fonts.Count-1 do
    listbox1.Items.Add(Screen.Fonts.Strings[j]) ;
end;
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

çok teşekkürler oyle
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Yukarıdaki mantığa göre

Kod: Tümünü seç

listbox1.Items:=Screen.Fonts;
yazılsa daha pratik olur galiba.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
mcihad
Üye
Mesajlar: 283
Kayıt: 18 Tem 2003 03:28
Konum: Sivas

Mesaj gönderen mcihad »

Kod: Tümünü seç

ListBox1.Items.Assign(Screen.Fonts);
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

suipack bileşenlerinde suiFontcombobox var, sizi hiç yormadan fontları gösterir.
kolay gelsin
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

mcihad yazdı:

Kod: Tümünü seç

ListBox1.Items.Assign(Screen.Fonts);
sabanakman yazdı:Yukarıdaki mantığa göre

Kod: Tümünü seç

listbox1.Items:=Screen.Fonts;
yazılsa daha pratik olur galiba.
Bu kod da içeride aynı şeyi yapıyor. Kendisine atananı assign ediyor.
Kullanıcı avatarı
Opt2000
Üye
Mesajlar: 216
Kayıt: 09 Tem 2003 10:04

Mesaj gönderen Opt2000 »

Selam,

@fduman'ın dediğine göre

Kod: Tümünü seç

ListBox1.Items.Assign(Screen.Fonts);
ile

Kod: Tümünü seç

listbox1.Items:=Screen.Fonts;
arasında fark yok. Dediği doğru olabilir, ama bu her zaman geçerli olmayabilir. Çünkü ilk kodda Screen.Fonts'un içeriği kopyalanıyor (Assign komutunun yaptığı iş), ama ikincisinde pointer eşitleme var. Yani tehlikeli bir eşitleme! Çünkü nesnelerden birisi silindiği zaman, diğeri yanlış bir adres gösterecek ve bu da proje içinde yakalaması zor bir hata olacaktır. Siz dikkat etseniz bile, sizden sonra projeye devam edecek programcı için izlemesi ve farkedilmesi çok zor olacaktır.

Kolay gelsin,
Bahadır Alkaç
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Yanlış anlaşıldım. VCL i açıp bakarsanız property setter'ında zaten Assign edildiğini göreceksiniz demek istemiştim. Pointer eşitlemesi yapmıyor yani.
Kullanıcı avatarı
Opt2000
Üye
Mesajlar: 216
Kayıt: 09 Tem 2003 10:04

Mesaj gönderen Opt2000 »

@fduman:

Haklısınız, property Setter da Assign işlemi yapıyor. Bu VCL'in iyi düşünülerek yazıldığına güzel bir örnek aslında.

Yine de yukarıdaki uyarımı tekrarlamakta fayda görüyorum, çünkü = ile Assign arasındaki fark, çok ciddi hataların çıkmasına sebep olabilir.

Kolay gelsin,
Bahadır Alkaç
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

O konuda haklısın tabii ki. :)
Cevapla