aktif nesnenin renginin değiştirilmesi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
princeoftides
Üye
Mesajlar: 47
Kayıt: 17 Ara 2004 12:14

aktif nesnenin renginin değiştirilmesi

Mesaj gönderen princeoftides »

formda nesneler arasında dolaşırken (veri girişi yapılırken) aktif nesnenin rengini değişmesini nasıl yapabiliriz?
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

nesnelerin onenter ve onexit olaylarına gerekli kodu yazabilirisin.
mesela edit1'e girildiği zaman

Kod: Tümünü seç

edit1.color:=clskyblue;
gibi.
bir de bu işlemleri kendiliğinden yapan ome bileşen seti var.
omeedit diye arama yaparsanız bulursunuz. kolay gelsin.
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba,
Ben programımda Rx bilşenlerininde içinde bulunduğu bazı kontrolleri renklerini dğeiştirmek için Formu parametre geçtiğim bir procedure oluşturdum ,

Kod: Tümünü seç

procedure GlobalOnEnter(Sender: TObject);
Const  Renk:TColor=$00B8CBDE;
begin
   if Sender is TEdit then
     TEdit(Sender).Color:=Renk;

   if Sender is TCurrencyEdit then
     TCurrencyEdit(Sender).Color:=Renk;

   if Sender is TComboBox then
   TComboBox(Sender).Color:=Renk;

   if Sender is TDateTimepicker then
   TDateTimePicker(Sender).Color:=Renk;

   if Sender is TRxDBLookupCombo then
   TRxDBLookupCombo(Sender).Color:=Renk;

   if Sender is TMaskEdit then
   TMaskEdit(Sender).Color:=Renk;

end;


procedure GlobalOnExit(Sender: TObject);
Const  Renk:TColor=$00D2DDDD;
begin
   if Sender is TEdit then
     TEdit(Sender).Color:=Renk;

   if Sender is TCurrencyEdit then
     TCurrencyEdit(Sender).Color:=Renk;

   if Sender is TComboBox then
   TComboBox(Sender).Color:=Renk;

   if Sender is TDateTimepicker then
   TDateTimePicker(Sender).Color:=Renk;

   if Sender is TRxDBLookupCombo then
   TRxDBLookupCombo(Sender).Color:=Renk;

   if Sender is TMaskEdit then
   TMaskEdit(Sender).Color:=Renk;
end;

// bu Metodları set edecek procedurede , 

procedure SetGlobalEvents(Form: TForm);
var
i:integer;
begin
  for i:=0 to Form.ComponentCount-1 do
   begin
     if (Form.Components[i] is TEdit) or (Form.Components[i] is TComboBox) or (Form.Components[i] is TCurrencyEdit) or (Form.Components[i] is TMaskEdit) or (Form.Components[i] is TDateTimePicker) or (Form.Components[i] is TRxDBLookupCombo) then
       begin

               if (Form.Components[i] is TEdit) then
                               begin
                                 if @TEdit(Form.Components[i]).OnEnter=nil then
                                 TEdit(Form.Components[i]).OnEnter:=GlobalOnEnter;
                                 if @TEdit(Form.Components[i]).OnExit=nil then
                                 TEdit(Form.Components[i]).OnExit:=GlobalOnExit;
                               end;
              if (Form.Components[i] is TCurrencyEdit) then
                               begin
                                 if @TCurrencyEdit(Form.Components[i]).OnEnter=nil then
                                 TCurrencyEdit(Form.Components[i]).OnEnter:=GlobalOnEnter;
                                 if @TCurrencyEdit(Form.Components[i]).OnExit=nil then
                                 TCurrencyEdit(Form.Components[i]).OnExit:=GlobalOnExit;
                               end;
              if (Form.Components[i] is TMaskEdit) then
                               begin
                                 if @TMaskEdit(Form.Components[i]).OnEnter=nil then
                                 TMaskEdit(Form.Components[i]).OnEnter:=GlobalOnEnter;
                                 if @TMaskEdit(Form.Components[i]).OnExit=nil then
                                 TMaskEdit(Form.Components[i]).OnExit:=GlobalOnExit;
                               end;
              if (Form.Components[i] is TDateTimePicker) then
                               begin
                                 if @TDateTimePicker(Form.Components[i]).OnEnter=nil then
                                 TDateTimePicker(Form.Components[i]).OnEnter:=GlobalOnEnter;
                                 if @TDateTimePicker(Form.Components[i]).OnExit=nil then
                                 TDateTimePicker(Form.Components[i]).OnExit:=GlobalOnExit;
                               end;
              if (Form.Components[i] is TRxDbLookupCombo) then
                               begin
                                 if @TRxDbLookupCombo(Form.Components[i]).OnEnter=nil then
                                 TRxDbLookupCombo(Form.Components[i]).OnEnter:=GlobalOnEnter;
                                 if @TRxDbLookupCombo(Form.Components[i]).OnExit=nil then
                                 TRxDbLookupCombo(Form.Components[i]).OnExit:=GlobalOnExit;
                               end;
              if (Form.Components[i] is TComboBox) then
                               begin
                                 if @TComboBox(Form.Components[i]).OnEnter=nil then
                                 TComboBox(Form.Components[i]).OnEnter:=GlobalOnEnter;
                                 if @TComboBox(Form.Components[i]).OnExit=nil then
                                 TComboBox(Form.Components[i]).OnExit:=GlobalOnExit;
                               end;
       end;
   end;
end;



//Kullanımı 
SetGlobalEvents(FormunAdı);
Bu kod sadece OnEnter yada OnExit olayında farklı bir yordam yazmayan bileşenlerin olay metodlarına gerekli atamaları yapar.Hataya sebebiyet vermeemk için böyle bir önlem almıştım.
İyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla