const tanımlama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

const tanımlama

Mesaj gönderen vedatkaba »

Merhaba Arkadaşlar ..

benim şöyle bir sorum olacak.
const
bilgigirismodu:boolean=false;
tarihgirismodu:boolean=false;
...........
.........

Bu Şekilde sabit tanımlıyorum.Ve
Procedure Tform1.DbEdit1onenter(Sender:TObject);
begin
bilgigirismodu:=True;
end;

Hata Veriyor.Constu Nerde Tanıtmaşlıyım VEya Nasıl tanıtmalıyım.
...................
Birde sizden fikir almak istiyorum.Coolbar a menüleri park etmeyi başardım ama toolbar olayının popup olayıgibi yandan açılış yapıyor.bunu nasıl çözerim.Ve coolbar bandlarının birinci banda edit1 i kontrol olarak veriyorum ama yerini taşıdığımda editin boyu bandla beraber büyüyor bandın boyunu istediğim gibi sabitlemeyi başaramadım ne yapcam bana yardım edin lütfen Allah Sizden Razı Olsun ..
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Const ları tanıttığın yer neresi aynı Pas içinde ise, mutlaka kullanmaya çalıştığın yerin üstünde bir yerde olmalı. Const lar genelde Uses kısmının altına eklenirler. Tabi bu zorunluluk değildir.

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

aynı sekilde const yerine degisken kullan
global var altında tanımla ondegerini de ata
program iceirsinde istedigin yerde de degistir
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Merhaba
benim şöyle bir sorum olacak.
const
bilgigirismodu:boolean=false;
tarihgirismodu:boolean=false;
...........
.........

Bu Şekilde sabit tanımlıyorum.Ve
Procedure Tform1.DbEdit1onenter(Sender:TObject);
begin
bilgigirismodu:=True;
end;
Constlar Sabittir. Sabitlerin değeri değişmez. bilgigirismodu:=True;
bu tanımı yaptıktan sonra hata alman normaldir. Çünkü sabitler sadece tanımlandığı yerde değer atanır ve bu değeri değiştirmek Run time da mümkün değildir. Bunu bir const olarak tanımlama const'u sil yerine VAR yaz programın çalışacaktır.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
mbt
Üye
Mesajlar: 165
Kayıt: 27 Şub 2004 01:23

Mesaj gönderen mbt »

Elbette bir yolu var. Tanımladığın sabit değişkeni prosüdür içerisinde değiştirmen için, değişkeni tanımladığın prosüdürün başına

Kod: Tümünü seç

{$j+}
anahtarını koymalısın. Böylece değiştirmeye izin verecektir.
En son mbt tarafından 15 Mar 2004 04:42 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

@husonet Delphi 5 te varmı hatırlamıyorum, ama 6 ve 7 de

Kod: Tümünü seç

const 
  Deneme : Boolean = True;
ifadesi sabitten çok bir değişken tanımlanıyor ve buna ilk değer atanıyor anlamına geliyor.

Kod: Tümünü seç

var 
 Deneme : Boolean = True;
bu yazılım ile arasında fark yok

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Editörlerin özellikleri hakkında pek bilgim yoktur bilgi hazineme bilgi kattığınız için teşekkür ederim.

Kendi Fikrimce yazılımdaki bazı olaylarda Standartları gözönüne alarak uygulamak lazım çünkü taşınabilirlik bir problem teşkil edebilir!!!


Teşekkür Ederim.
En son husonet tarafından 15 Mar 2004 05:28 tarihinde düzenlendi, toplamda 1 kere düzenlendi.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@freeman35 haklı...

Const ingilizce Constant'tan (sabit) geliyor ama sabite durumu procedure/ function sona erdiği zaman hafıza bloğunda yer etmesi/ silinmemesini sağlıyor...

Örnek :

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
Const
  A:Integer = 10;
begin
  Inc(A);
  ShowMessageFmt('%d', [A]);
end;
- Global bir Const olmamasına rağmen butona her basışta ilk değer olan 10 değerine 1 eklenir ve sonuç gösterilir... Hata vermez... (Delphi 5 kullanıyorum)

- Özel durumlar içinse bu Const elemanının başına {$WRITEABLECONST OFF} konursa işte o zaman bahsettiğiniz şekilde atama yapılmasına izin verilmez....

Kod: Tümünü seç

Const
{$WriteableConst Off}
  A:Integer = 10;
{$WriteableConst On}
... burada A Const'u artık tam anlamıyla sabitlendi... Değer atanamaz oldu...

.. Delphi Help'inde ise...
Type Switch
Syntax {$J+} or {$J-}
{$WRITEABLECONST ON} or {$WRITEABLECONST OFF}
Default {$J+}
{$WRITEABLECONST ON}
Scope Local
The $J directive controls whether typed constants can be modified or not. In the {$J+} state, typed constants can be modified, and are in essence initialized variables. In the {$J-} state, typed constants are truly constant, and any attempt to modify a typed constant causes the compiler to report an error.
In previous versions of Delphi and Borland Pascal, typed constants were always writeable, corresponding to the {$J+} state. Old source code that uses writeable typed constants must be compiled in the {$J+} state, but for new applications it is recommended that you use initialized variables and compile your code in the {$J-} state.
:idea: @husonet haklı olduğun konu standartları bilerek bu işlemlere yer vermek gerekli... Ama bu standartla esnek olduğunu unutmamak lazım... Ne de olsa programcıyız... Kolaylıklar bizim için... :wink:
Resim
Resim ....Resim
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Merhaba
Muharrem Hocam Sonuçta Değişken gibi kullanabilmek için derleyiciyi bilgilendirmek gerekiyor bu bir standartmı sizce?

Teşekkürler.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Standart demek default demek anlamına geliyorsa, değil tabiki... :wink:

- İyi programcı olmak demek ise bu standartları önceden şahsen belirlemektir... Bir ara Afrika kıtasında fil arayan bilgisayar programcısı anekdot'unu aktarmıştım...
- Afrika kıtasında, kıtanın en aşağısından Ümit Burnundan yukarıya Cebelitarık Boğazına kadar taranarak en az bir Fil bulunması istenmiş. Bunun için bir matematikçi, bir fizikçi ve bir de bilgisayar programcısı görevlendirilmiş. (Bu örnek yerine/konuya göre çoğaltılabilir.)

- Matematikçi aramasında matematiksel, fizikçi fiziki yöntemler, programcı ise sistem analizi yaparak bunu çözümleyecekler. Programcı dışındakiler bizi ilgilendirmiyor, yorum serbest ama programcının çözümü şuymuş.

- En son noktaya bir Fil koyup aramaya yine aşağıdan başlamış ama biliyormuş ki sonunda en az bir fil bulacak ve sorunsuz işini halledecektir.
:lol:
Resim
Resim ....Resim
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

const

Mesaj gönderen vedatkaba »

arkadaşlar allah sizden razı olsun cevaplarınızı aldım.
constu iplementation kısmına yazıyorum.Ama yinede hata veriyor.Normal kullanacağım prosedure yazıyorum yine hata veriyor.

İplementation
Const
Bilgigirişmodu:Boolan=False;
Tarihgirişmodu:Boolan=False;

Hata veriyor
Prosedure tform2.dbeditonenter (sender:tobject);
const
Bilgigirişmodu:Boolan=False;
Tarihgirişmodu:Boolan=False;
Begin
Bilgigirişmodu:=True;
End;

Yine hata veriyor.

Formun bir kenarından girip bir kenarından çıkacak ve tekrar başa dönüp ekranda kayacak bu olayı text ifadeye nasıl sağlata bilirim?

Öbür Sorumun cevabını alamadım.Cevap verirseniz sevinirim...

Sorum coolbar ile ilgiliydi....Size hayırlı akşamlar.Allah'a emanet olun....


<
Cevapla