Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Tstrings özellik mi events mı ?
#1
Girilen bir rakamı 135 adet string giridin hücrelerinde arayıp bulduğumu boyamak için  aşağıdaki yapıyı oluşturdum. Acaba daha nasıl yapılabilir derken, örneğin string giride bir özellik eklesem ve bu özellik içindeki rakamları tutsa , aranan rakam sende varmı varsa kırmızı yap gibi.. Fakat bunun için nereden başlamalıyım bilemedim. Ortak bir olay mı yoksa özellik mi yapılmalı araştırıyorum. Fakat neye bakmak gerektiğini tam bilemedim. Konu hakkında fikir ve bilgilerinizi paylaşırsanız sevinirim.


procedure buls( sayi:string);
var
Grid:TStringGrid;
x,y,gr:integer;
cellText:string;
a:TRect;
begin
for gr := 1 to 134 do begin
   Grid:=(FANA.FindComponent('k'+inttostr(gr)) As TStringGrid);

    y:=0;
    with Grid do begin
        for y := 0 to RowCount -1 do
        for x := 0 to ColCount -1 do
         begin
            a:=Grid.CellRect(x,y);
            cellText:=Grid.Cells[x,y];
            if CellText=sayi then  //KIRMIZI
            begin
            Grid.Canvas.Brush.Color := clRed;
            Grid.Canvas.Font.Color:=Grid.Canvas.Font.Color;
            Grid.Canvas.FillRect(a);
            Grid.Canvas.TextRect(a, a.Left+5,  a.Top+8, cellText);
             end
         end;
    end;
end;

end;
Cevapla
#2
Merhaba.

- Özel bir şey yapmanıza lüzum yok.

- Bütün StringGrid'lerin OnPaint olaylarını aynı tek Procedure'e bağlamanız yeterli.

- Her biri oraya ulaşacağından tek noktadan TStringGrid(Sender) şeklinde ortak gizli özne ile sorgulamanızı yapabilirsiniz.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#3
Üstadım tam dediğinizi bilgimin yeretli olmamasından dolayı tam anlayamadım için , baştan şu olayları prosedüre bağlamayı araştırıp test ederek dediğinizi anlamaya çalışayım. Teşekkürler fikriniz için
Cevapla
#4
Grid ve liste gibi nesnelerde dinamik görsel değişimleri için OnDrawCell ismine benzeyen olaylar kullanılıyor.

Bunlardan ilgili olanını bulup aşağıdakine benzer bir kod oluşturabilirsin.

if (aradığım hücre bu ise) then
  Canvas.Font.Color = Red
end;
Cevapla
#5
(22-01-2019, Saat: 13:46)mrmarman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.- Bütün StringGrid'lerin OnPaint olaylarını aynı tek Procedure'e bağlamanız yeterli.

- Her biri oraya ulaşacağından tek noktadan TStringGrid(Sender) şeklinde ortak gizli özne ile sorgulamanızı yapabilirsiniz.

Alıntı:(Components[i] as TStringGrid).OnDrawCell     := StringGrid1DrawCell;

TStringGrid(Sender).cells
Şimdi anladım üstadım yine bilmediğim birşey öğrettiniz çok teşekkürler.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Thread içerisinde Tstrings & TStringList yhackup 2 100 10-09-2019, Saat: 22:45
Son Yorum: yhackup
  [Çözüldü] Stringgrid özellik iptal etme CesuR 4 521 11-01-2019, Saat: 15:18
Son Yorum: CesuR
Smile Bileşenden bileşen türetme veya özellik ekleme Lord_Ares 3 1.067 11-12-2017, Saat: 13:40
Son Yorum: mad85



Konuyu Okuyanlar: 1 Ziyaretçi