image ve olasılıklar

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
atlasbm
Üye
Mesajlar: 27
Kayıt: 25 Ağu 2003 12:52

image ve olasılıklar

Mesaj gönderen atlasbm »

S.A Arkadaşlar

Elimde 120 adet timage nesnesi var ve bu image'lara farklı 5 değişkenin aldığı değerlere göre Canvas ile farklı çizimler yaptırıyorum.

image1 e
olasılık 1 ise
şu çizimi yap
image1.canvas.....
image1.canvas.....
image1.canvas.....
image1.canvas.....
image1.canvas.....
olasılık 2 ise
şu çizimi yap
image1.canvas.....
image1.canvas.....
image1.canvas.....
image1.canvas.....
image2 e
olasılık 1 ise
şu çizimi yap
image2.canvas.....
image2.canvas.....
image2.canvas.....
image2.canvas.....
image2.canvas.....
olasılık 2 ise
şu çizimi yap
image2.canvas.....
image2.canvas.....
image2.canvas.....
image2.canvas.....
.
.
.
gibi
ama bunları bu şekilde yazdığım zaman çoook uzun kodlar ortaya çıkıyor. acemiliğimi hoşgörün ama bunun daha kolay bir yolu yokmudur. Yardımlarınız için şimdiden çok teşekkürler.(tekrar özür dilerim çok acemi bir soru ise)
Kullanıcı avatarı
Hancet
Üye
Mesajlar: 107
Kayıt: 08 May 2005 01:18
Konum: Burdan...
İletişim:

Mesaj gönderen Hancet »

A.S. Hocam

çizdiğin şekil ile ilgili örnek bir kod verebilir misin?
mesela çerçeve çizmek için 4 tane koordinatın bilinmesi gerekiyor. Bunun için bi procedure tanımlayarak istediğin kadar birbirinden farklı çerveçeler çizebilirsin
Procedure Cervece(x1,y1,x2,y2:integer); gibi

Böyle bi imkanın varsa tek procedure tanımlarsın, Sonrada Case ile şartı karşılaştırıp procedure'yi çağırarak uygun koordinatları belirleyerek çizebilirsin.

aklıma şimdilik başka bişey gelmiyor

Kolay gelsin...
Varmı Beni İçinizde Tanıyan?
Yaşanmadan Çözülmeyen Sır Benim
Kalmasada Şöhretimi Duymayan,
Kimliğimi Tarif etmek zor Benim.
Kimsesizim hısmım da çok, hasmım da,
Görünmezim cismim de yok, resmim de,
Dil üzmezim, tek hece var ismimde,
Barınağım Delphi denen yer Benim..!
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

120 TImage nesnesinin isimlerini üç haneli ŞART ile isimlendir. Şartlar (olasılık) 120 çeşit bile olabilir sorun değil 8)

Mesela
- Image1 001, 003, 097, 117 şartlarında çizilecekse adı (Name) Ima001003097117 olsun.

- Image2 001, 002, 003 şartlarında çizilecekse adı (Name) Ima001002003 olsun.

- Bu sana ne sağlar..

Çizim için Şart veya Şartlar ne ise o şart üç haneli olarak TImage nesnesinin adında varsa o Image nesnesi çilir. Döngü şu şekilde.

Kod: Tümünü seç

Var
  Sayac : Integer;
  Sart1, Sart2 : Integer;
begin
  For Sayac := 0 to ComponentCount-1 do begin
    If Components[Sayac] is TImage then begin
      // Şimdi şartları sorgulayacağın yer.
      // Şartlar bir dizide tutularak iç döngüyle de sorulabilir, sayısı azsa...
      If Pos( Format('%.3d', [SART1]), TImage(Components[Sayac]).Name ) > 0 then // Çizim işlemi yapılacak komutlar...
      If Pos( Format('%.3d', [SART2]), TImage(Components[Sayac]).Name ) > 0 then // Çizim işlemi yapılacak komutlar...
    end;
  end;
end;
- Şartlar değişir image isimlerini değiştirmek sıkıntı olur diyorsan, bu şartları ve hangi image nesnelerinin çizileceğini bir dizide tut, döngüyü dizide gerçekleştir. Böylece ŞARTLAR dizisi elemanlarıyla oynayarak anlık değişiklik yapabilir, anında çözüm üretebilirsin.
- Başarılar...
Resim
Resim ....Resim
atlasbm
Üye
Mesajlar: 27
Kayıt: 25 Ağu 2003 12:52

arkadaşlar öncelikle cevaplarınız için çok teşekkürler

Mesaj gönderen atlasbm »

mrmarman hocamın dediğini tam olarak yapamasamda image ları bir dizi de tanımlayarak sayac döngüsü ile kod satırlarını hatırı sayılır bir oranda düşürdüm.46 bin satırlık kod yaklaşık 330 satıra düştü :) tekrar teşekkürler beynimizdeki sihir i keşfetmek için daha çok çalışmamız gerekiyor anlaşılan. herkese iyi çalışmalar,başarılar
Cevapla