runtime obje yaratma ve üzerinde işlem sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
alperu
Üye
Mesajlar: 2
Kayıt: 15 Eyl 2010 03:19

runtime obje yaratma ve üzerinde işlem sorunu

Mesaj gönderen alperu »

merhaba

yazmaya çalıştığım programda dinamik olarak yaratılan pekçok shape nesnesi var ve bunları panel 1'e yerleştiriyoru aşağıdaki kodlarla

Kod: Tümünü seç

var
name:TShape;
I: Integer;
begin
for I := 0 to 10 do
  begin
      name:= TShape.Create(Panel1);
      with TShape(name) do
        begin
          Name := 'led'+IntToStr(I);
          Parent := Panel1;
          Top := 10;
          Left := 10+(10*I);
          Height := 8;
          Width := 8;
          Brush.Color := clBlack;
          Shape := stCircle;
          Visible := True;
        end;
  end;
end;
Sorum: nesneleri yarattırtan sonra misal "led3" isimli nesnenin veya "led2-6" arasının rengini değiştirmek istiyorum.nesneler dinamik yaratıldığı için

Kod: Tümünü seç

led3.Brush.Color := clRed
yazamıyorum. çözüm öneriniz nedir....??
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: runtime obje yaratma ve üzerinde işlem sorunu

Mesaj gönderen emin_as »

FindComponent, is ve as i kullanarak istediğin işi yaptırabilirsin.
Diğer bir seçenek rtti yi kullanarak propertieslere erişmektir, ama o yöntem daha karmaşık gelebilir.

Kod: Tümünü seç

procedure SetShapeColor(s1: string; col1: TColor);
var
  cled : TComponent;
...
 cled:=FindComponent(s1);
  if assigned(cled) then 
    if cled is TShape then
       with cled as TShape do
       begin
          Brush.Color:=col1;
       end;
Rtti i kullanarak değiştirmek istersen, aşagıdaki siteyi inceleyebilirsin
http://delphi.about.com/od/vclusing/a/c ... used_3.htm
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: runtime obje yaratma ve üzerinde işlem sorunu

Mesaj gönderen qamyoncu »

Kod: Tümünü seç

(FindComponent('led3') as TShape).Brush.Color:=clRed;
gibi kullanımlar var tabii :ara

------
Ben cevap yazana kadar cevap verilmiş zaten.. :)
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: runtime obje yaratma ve üzerinde işlem sorunu

Mesaj gönderen unicorn64 »

yada oluşturulan nesneler diziye alınıp, dizi üzerinden istenilen nesnelere erişilebilir...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Cevapla