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ı: - 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
  Windows SaveAsDialog özellik eklemek. dervis 0 385 28-05-2022, Saat: 08:58
Son Yorum: dervis
  Fast Report Events Tabı ve Kod Bölümünün Aktif Olmaması bünyamin68 4 994 11-11-2021, Saat: 08:40
Son Yorum: ozcanm
  Thread içerisinde Tstrings & TStringList yhackup 2 2.664 10-09-2019, Saat: 22:45
Son Yorum: yhackup
  [Çözüldü] Stringgrid özellik iptal etme CesuR 4 3.710 11-01-2019, Saat: 15:18
Son Yorum: CesuR
Smile Bileşenden bileşen türetme veya özellik ekleme Lord_Ares 3 3.338 11-12-2017, Saat: 13:40
Son Yorum: mad85



Konuyu Okuyanlar: 1 Ziyaretçi