form üzerinde secili editin rengni değiştirmek?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

form üzerinde secili editin rengni değiştirmek?

Mesaj gönderen metemete »

form üzerinde editlerle işlem yapıldıgını düşünürsek
cursorun hangi editt olduğunda kaolaylık amaclı
cursorun oldugu editin rengini diğerlerin renginden farklı hale nasıl getirirz (ay sekılde diğer ozellıklerınıde degısmek ıcap ederse)
ng
Üye
Mesajlar: 192
Kayıt: 01 Mar 2004 11:49
Konum: Bursa
İletişim:

Re: form üzerinde secili editin rengni değiştirmek?

Mesaj gönderen ng »

Kod: Tümünü seç

unit unt_base;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, DBCtrls, Grids, DBGrids, ComCtrls, DB,
  IBCustomDataSet, IBSQL, IBQuery, cxDBEdit, cxMaskEdit, cxDropDownEdit,
  cxCalendar, cxControls, cxContainer, cxEdit, cxTextEdit, cxCheckComboBox,
  cxDBCheckComboBox, cxLabel, cxLookupEdit, cxDBLookupEdit,
  cxDBLookupComboBox;

type
  Tgecis = class(TwinControl)
  end;
  TBase = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure TusaBasma(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    FOldColor: TColor;
    procedure Nesneyegiris(Sender: TObject);
    procedure Nesnedencikis(Sender: TObject);
  public
    { Public declarations }
  end;

var
  Base: TBase;

implementation
uses unt_dm;
{$R *.dfm}

procedure TBase.FormCreate(Sender: TObject);
var
  i: integer;
begin
  if tag < 5 then
    Windowstate := wsMaximized;
  for i := 0 to ComponentCount - 1 do
  begin
    if (components[i] is Tedit) or (Components[i] is TDBEdit) or  (Components[i] is TDBLookUpComboBox)
      or (Components[i] is TcxDBComboBox)or (Components[i] is TcxDBRadioGroup)
      or (Components[i] is TDBCombobox)
      then
    begin
      if Tgecis(Components[i]).Tag < 10 then
      begin
        Tgecis(Components[i]).Color :=$00F9D762;
        tgecis(Components[i]).Font.Charset:=TURKISH_CHARSET;
        TGecis(Components[i]).OnEnter := Nesneyegiris;
        TGecis(Components[i]).OnExit := Nesnedencikis;
        TGecis(Components[i]).OnKeyDown := TusaBasma;
      end;
    end
    else if Components[i] is TPageControl then
      TPageControl(Components[i]).ActivePageindex := 0
    else if Components[i] is TIBDataset then
      TIBDataSet(Components[i]).Database := dm.db
    else if Components[i] is TIBQuery then
      TIBQuery(Components[1]).Database := dm.db
    else if Components[i] is TIBSQL then
      TIBSQL(Components[i]).DataBase := dm.db;
  if (Components[i] is TCXDBDateEdit) then
      TCXDBDateEdit(components[i]).Properties.DateButtons:=[];
  end; 
end;

procedure TBase.Nesnedencikis(Sender: TObject);
begin
  TGecis(Sender).Color := FOldColor;
end;

procedure TBase.Nesneyegiris(Sender: TObject);
begin
  FoldColor := Tgecis(sender).Color;
  TGecis(Sender).Color := $006BE0FE;
end;

procedure TBase.TusaBasma(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

  case key of
    VK_Return:Begin
                    if (activecontrol is TDBgrid) then
                       postmessage( (activecontrol as Tdbgrid).handle, wm_keydown,09,0)
                    else
                    begin
                        postmessage(handle,WM_Keydown,09,0);
                    end;
              end;
  end;
end;

end.
ben genellikle yukarıdaki gibi yapıyorum.
boncapelo
Üye
Mesajlar: 49
Kayıt: 01 Tem 2005 02:28
Konum: Bursa
İletişim:

Re: form üzerinde secili editin rengni değiştirmek?

Mesaj gönderen boncapelo »

Selamun Aleyküm.

Kolay gelsin.edite girildiğinde rengini değiştirmek için editin on enter olayına;

Kod: Tümünü seç

with sender as tedit do
color:=clskyblue;
eğer doğru anladıysam bu kod işini görecektir...
Allaha Emanet Ol...
..::ÖzSoft Computer Land & NetCity Internet Cafe::..
khanco
Üye
Mesajlar: 226
Kayıt: 01 Eki 2007 04:39
Konum: İzmir
İletişim:

Re: form üzerinde secili editin rengni değiştirmek?

Mesaj gönderen khanco »

bu şekilde yaptığında çıkışta editin rengini tekrar eski haline getirmelisin ,

onexit olayına

Kod: Tümünü seç

with sender as tedit do
color:=clWhite;
yazarak beyaz'a çevirebilirsin.
khanco
Üye
Mesajlar: 226
Kayıt: 01 Eki 2007 04:39
Konum: İzmir
İletişim:

Re: form üzerinde secili editin rengni değiştirmek?

Mesaj gönderen khanco »

2 yol olarakta editrenk diye int bir değişken tanımlarsın tüm unit için on exit eventte
Edit1.Color:=editrenk;

diyerek eski rengini verebilirsin. her editte renk değişiyorsa her editin rengini on enter event inde değişkene yüklemelisin.
F.Atagun
Üye
Mesajlar: 158
Kayıt: 01 Oca 2008 01:56

Re: form üzerinde secili editin rengni değiştirmek?

Mesaj gönderen F.Atagun »

İlgili Editin OnEnter Olayına

Kod: Tümünü seç

TEdit(Sender).Color := clLime;
OnExit olayına

Kod: Tümünü seç

TEdit(Sender).Color := clWindow ;
yazarak da yapabilirsin

kolay gelsin
Cevapla