Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Delphi => Konuyu başlatan: z - 18 Haziran 2005, 18:47:01

Başlık: Fonksiyon içinden komponentlere mudahale
Gönderen: z - 18 Haziran 2005, 18:47:01
Forum üzerinde çok sayıda Tedit bileşeni olsun, hepsinin de eventlerinde aynı işlemler yapılıyor olsun.

Örneğin:

Tform1. Edit1.change(sender: Tobject)
begin
           if hata=true then edit1.color:=clred
           else edit1.color:=green;
           edit1.font.height:=-11;
           edit1.font.size:=8;
end;

Tform1. Edit2.change(sender: Tobject)
begin
           if hata=true then edit2.color:=clred
           else edit2.color:=green;
           edit2.font.height:=-11;
           edit1.font.size:=8;
end;

....
....

Şimdi herbir TEditie bu şekilde kod yazmak yerine bir fonksiyon yada procedure yazayım ona parametre olarak komponentin adını ve komponentde değişmesini istediğim verileri yollayayım bana o komponent üzerinde gerekli işlemleri yapsın.

Bu işlem nasıl yaptırılır?
Başlık: Fonksiyon içinden komponentlere mudahale
Gönderen: birumher - 19 Haziran 2005, 16:04:41
Sender o eventi oluşturan objedir. Data doğrusu burada o objenin adresidir.

Tform1. Edit1change(sender: Tobject)
begin
 if hata then
   Tedit(Sender).color:=clred
 else
   Tedit(Sender).color:=green;
 Tedit(Sender).font.height:=-11;
 Tedit(Sender).font.size:=8;
end;

şeklinde yazarsan olur...
Başlık: Fonksiyon içinden komponentlere mudahale
Gönderen: SpeedyX - 19 Haziran 2005, 16:17:31
hepsini aynı olaya bağla,
bi tane tedit nesnesi tanımla,
beginden sonra te:=sender as tedit; de yapacağın işlemleri te üzerinde yap
Başlık: Fonksiyon içinden komponentlere mudahale
Gönderen: z - 19 Haziran 2005, 16:29:30
Sağolun varolun sayenizde kodlarımda müthiş bir sadeleşme oldu.

fonksiyon içinde Tedit(sender) yazınca kafama şimdi de aşağıdaki soru taklıldı.

Peki  fonksiyona  Tedit, Statik text, Groupbox vs gönderip caption değerini değiştirmesini isteyebilirmiyim.

Object oriented galiba tam olarak bu oluyor değilmi?
Başlık: Fonksiyon içinden komponentlere mudahale
Gönderen: birumher - 20 Haziran 2005, 10:55:09
Alıntı yapılan: "bunalmis"Sağolun varolun sayenizde kodlarımda müthiş bir sadeleşme oldu.

fonksiyon içinde Tedit(sender) yazınca kafama şimdi de aşağıdaki soru taklıldı.

Peki  fonksiyona  Tedit, Statik text, Groupbox vs gönderip caption değerini değiştirmesini isteyebilirmiyim.

Object oriented galiba tam olarak bu oluyor değilmi?

İsteyebilirsin şöyle yapacaksın.
if sender is TEdit then
 TEdit(sender).Caption := 'blabla'
else if sender is TGroupBox then
 TGroupBox(Sender).ItemIndex := 2........

Diyerek istediğini yapabilirsin. Object oriented a gelince bu söylediklerin tam olarak object oriented diyemeyiz. Sadece object oriented programlama sayesinde bunları bu şekilde yapabiliyoruz diyebiliriz.
Başlık: Fonksiyon içinden komponentlere mudahale
Gönderen: z - 20 Haziran 2005, 11:15:21
Object oriented'ın tam tanımını yapabilirmiyiz peki.
Başlık: Fonksiyon içinden komponentlere mudahale
Gönderen: z - 20 Haziran 2005, 11:17:50
Alıntı yapılan: "SpeedyX"hepsini aynı olaya bağla,
bi tane tedit nesnesi tanımla,
beginden sonra te:=sender as tedit; de yapacağın işlemleri te üzerinde yap

Bu tanımlayacağım yardımcı Tedit nesnesi kullanılmayacak ama diğer kullanacaklarıma rehber olacak öylemi?
Başlık: Fonksiyon içinden komponentlere mudahale
Gönderen: SpeedyX - 20 Haziran 2005, 13:17:23
Tanımlayacağın tedit nesnesi kullanılacak. diğerlerini temsil edecek.
Başlık: Fonksiyon içinden komponentlere mudahale
Gönderen: birumher - 20 Haziran 2005, 14:33:41
Alıntı yapılan: "bunalmis"Object oriented'ın tam tanımını yapabilirmiyiz peki.

Bence tam olarak bir cümlede anlatamayız.  Nesne yönelimli diyerek Türkçe ye çevirebiliriz :)