Arkadaşlar merhaba;
Delphi 7 kullanıyorum.Şöyle birşey yapmak istiyorum.
Formumda 1000 tane edit olduğunu düşünün.Hangi edite tıklarsam edit rengi beyaz ise siyah yada siyah ise beyaz olsun istiyorum.Renk değiştirecek yani.
3-5 tane editten bahsetmiş olsam sıkıntı yok. lakin sözkonusu 1000 tane olunca herbirinin tek tek onclick olayına kod yazmam mümkün değil.
Bir prosüder tanımlayıp seçili nesneyi buldurup rengi ona göre değiştirmem lazım.
Seçili nesneyi ve rengini nasıl bulurum?
tıklanan nesnenin rengini değiştirme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: tıklanan nesnenin rengini değiştirme
Kod: Tümünü seç
procedure TForm1.Renk(Sender: TObject);
var
i: integer;
begin
For i := 0 to Componentcount - 1 do
Begin
if Components[i] is TEdit and (Length(TEdit(Components[i]).Text) > 0) then
begin
TEdit(Components[i]).Font.Color := RGB(255, 0, 0);
end;
end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: tıklanan nesnenin rengini değiştirme
Kod: Tümünü seç
procedure TForm1.EditClickColor(Sender: TObject);
begin
inherited Click;
if (Sender is TEdit) then
begin
if (Sender as TEdit).Color = clWhite then
begin
(Sender as TEdit).Color := clBlack;
(Sender as TEdit).Font.Color := clWhite;
end
else
if (Sender as TEdit).Color = clBlack then
begin
(Sender as TEdit).Color := clWhite;
(Sender as TEdit).Font.Color := clBlack;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
nIndex : Integer;
begin
for nIndex := 0 to Self.ComponentCount - 1 do
begin
if Components[nIndex].ClassType = TEdit then
begin
TEdit(Components[nIndex]).OnClick := EditClickColor;
TEdit(Components[nIndex]).Color := clWhite;
end;
end;
end;
PostgreSQL - Delphi - Linux 

-
- Üye
- Mesajlar: 86
- Kayıt: 27 May 2014 04:27
Re: tıklanan nesnenin rengini değiştirme
yardımınız için çok teşekkür ederim.
kodumu şu şekilde yazdım:
kodumu şu şekilde yazdım:
Kod: Tümünü seç
procedure TForm1.Edit1Click(Sender: TObject);
begin
if (Sender is TEdit) then
begin
if (Sender as TEdit).Color=clWindow then (Sender as TEdit).Color:=clBlack else (Sender as TEdit).Color:=clWindow;
end;
end;