cevap biraz gec oldu ama ancak aklıma geldi
su sekilde varolan yapını hic degistirmeden rahatlıkla yapabilirsin
oncelikle bir base form olustur diger formları bundan tureteceksin
base forma iki adet private yordam ekle
Kod: Tümünü seç
procedure MyEnter(Sender: TObject);
procedure MyExit(Sender: TObject);
ben yaptıgım ornekte edit kontrolleri focus aldıgında rengini sarı yapan kaybettiginde tekrar eski rengini alan bir proje yaptım
eski rengi tutmak icinde private bir FColor :TColor tanımladım
yordamların icine de
Kod: Tümünü seç
procedure TBaseForm.MyEnter(Sender: TObject);
begin
if Sender is TEdit then
begin
FOldColor:=TEdit(Sender).Color;
TEdit(Sender).Color:=clYellow;
end;
end;
procedure TBaseForm.MyExit(Sender: TObject);
begin
if Sender is TEdit then
begin
TEdit(Sender).Color:=FOldColor;
end;
end;
yazdım
Base formun create yordamında da
Kod: Tümünü seç
procedure TBaseForm.FormCreate(Sender: TObject);
var
i:Integer;
begin
for i:= 0 to ComponentCount-1 do
if Components[i] is TEdit then
begin
TEdit(Components[i]).OnEnter:=MyEnter;
TEdit(Components[i]).OnExit:=MyExit;
end;
end;
evet bu sekli ile kullanıma hazır
bu formu projene ekle otocreate listesinden cıkart
diger formlarında uses da goster ve TForm yerine bundan turet
sunun gibi mesela
Kod: Tümünü seç
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
base, StdCtrls;
type
TBaseForm1 = class(TBaseForm)
Edit1: TEdit;
Edit2: TEdit;
private
{ Private declarations }
public
{ Public declarations }
end;
var
BaseForm1: TBaseForm1;
implementation
{$R *.DFM}
end.
kolay gelsin