scoped enums ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
deltas
Üye
Mesajlar: 358
Kayıt: 06 Mar 2004 01:08
Konum: Malatya...
İletişim:

scoped enums ?

Mesaj gönderen deltas »

S.a arkadaşlar.
Sorunum aşşağıdaki kod ne işe yarıyor?

Kod: Tümünü seç

 {$SCOPEDENUMS ON}
Bunu kullandığımda hata veriyor. Bunu nasıl düzeltebilirim. uses kısmına ekleme mi yapmam gerekiyor

Kod: Tümünü seç

invalid compiler directive: 'SCOPEDENUMS ' a line 75
Nice İnsanlar gördüm üstünde elbise yok;
Nice elbiseler gördüm içinde insan yok.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: scoped enums ?

Mesaj gönderen aslangeri »

s.a.
hangi delphi versiyonunu kullanıyorsunuz kodlar hangi versiyonda yazılmış.
$ ile başlayan komutlar compiler direktifleridir.
mesajda zaten direktifi tanımadığını belirtmiş.
o satırın başına // işareti koyarsan derlerken dikkate almaz ama başka problemlere neden olabilir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
deltas
Üye
Mesajlar: 358
Kayıt: 06 Mar 2004 01:08
Konum: Malatya...
İletişim:

Re: scoped enums ?

Mesaj gönderen deltas »

bds 2006 ve 7.0 her iki sürümde de aynı hatayı alıyorum. dedğiniz gibi kodları sildiğimde iki kod arasında kalan kısımda hata alıyorum. bu tanımlama ne işe yarıyor onu anlamadım.
Nice İnsanlar gördüm üstünde elbise yok;
Nice elbiseler gördüm içinde insan yok.
mehmetcan
Üye
Mesajlar: 63
Kayıt: 14 Tem 2008 05:19

Re: scoped enums ?

Mesaj gönderen mehmetcan »

http://chrisbensen.blogspot.com/2007/10 ... enums.html

Bu sitede kullanım amacı gösterilmiş. Anladıgım kadarıyla tanımlanan enumdaki tanımlamalar sadece türle birlikte kullanılabiliyor. Yani foo daki A,B,Foo foo olmadan da kullanılabilirken, scopedenums on iken yapılan tanımlamalarda birlikte kullanmak gerekiyor.

type
TFoo = (A, B, Foo);
{$SCOPEDENUMS ON}
TBar = (A, B, Bar);
{$SCOPEDENUMS OFF}

begin
WriteLn(Integer(Foo));
WriteLn(Integer(A)); // TFoo.A
WriteLn(Integer(TBar.B));
WriteLn(Integer(TBar.Bar));
WriteLn(Integer(Bar)); // Error
end;

Daha anlasilir bir örnek

type
{$SCOPEDENUMS ON}
TGun = (pazartesi,sali,carsamba);
{$SCOPEDENUMS OFF}

Tanımlıysa

Writeln(integer(sali)); // hata veriyor
writeln(integer(TGun.sali)); // calisiyor
Cevapla