runtime de yanyana gelen objeyi yoketme veya gizlemek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
runtime de yanyana gelen objeyi yoketme veya gizlemek
Slm Arkadaşlar Amatörce ilgilendiğim delphide kendimi geliştirmek için form üzerinde bir buton koydum 10 tane shape koydum yön tuşları ile butonu hareket ettirip shapelerin üzerine geldiğimde hangi shapenin üzerindeysem o shapenin yok olmasını veya gizlenmesini istiyorum ancak shapelerin left veya top özelliğini kullandığımda bir shapenin üzerinde iken aynı left teki tüm shapeler yok oluyor bunu nasıl engelleyip sadece o shapenin yok olmasını sağlaya bilirim.Konu hakkında aradım her hangi bir kaynak kod bulamadım ilgilenlere şimdiden teşekkür ederim..
En son mustafeyn tarafından 30 Eyl 2011 02:58 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Re: RUNTİME DA ÜST ÜSTE GELEN OBJEYİ GİZLEME VEYA YOK ETME
Öncelikli olarak başlığını küçük harflerle yazınız.
mussimsek abim görürse çok kızar
viewtopic.php?f=2&t=6 adresinde derki
mussimsek abim görürse çok kızar
viewtopic.php?f=2&t=6 adresinde derki
* Lütfen Mesajın ve başlığın tümünü büyük harflerle yazmayın. Büyük harflerle yazmanın net kullanıcıları arasında bağırmak anlamına geldiğini unutmayın.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Re: runtime de yanyana gelen objeyi yoketme veya gizlemek
Bismillahirrahmanirrahim.
Bu forumda yazdığım ilk cevap...
Her hareketten sonra aşağıdaki procedure ü çalıştırdığında form üzerindeki shape nesneleri istediğin hareketi yapacaktır.
Bu forumda yazdığım ilk cevap...
Her hareketten sonra aşağıdaki procedure ü çalıştırdığında form üzerindeki shape nesneleri istediğin hareketi yapacaktır.
Kod: Tümünü seç
procedure TForm1.Kontrol;
var
i:integer;
Kutu:TShape;
begin
for i:=0 to Componentcount-1 do
begin
if Components[i] is TShape then
begin
Kutu:=Components[i] as TShape;
Kutu.Visible:=// aşağıdaki şartlardan herhangi biri oluşursa kutu gözükecek... oluşmazsa buton kutuya değiyordur... bu sebeple gözükmeyecek
(Button1.Left>Kutu.Left+Kutu.Width) // Butonun sol kenarı Shape'in sağ kenarının sağındaysa
or
(Button1.Top>Kutu.Top+Kutu.Height) // Butonun üst kenarı Shape'in alt kenarının altındaysa
or
(Button1.Left+Button1.Width<Kutu.Left) // Butonun sağ kenarı Shape'in ssol kenarının solundaysa
or
(Button1.Top+Button1.Height<Kutu.Top); // Butonun alt kenarı Shape'in üst kenarının üstündeyse
end;
end;
end;
Re: runtime de yanyana gelen objeyi yoketme veya gizlemek
sayın aligel54 kardeş Allah razı olsun emeğine ve bilgine sağlık ancak ben bu kodu kullanınca hata veriyor kodu furmun keydownuna yazıyorum yön tuşları ile hareket kodu yazdıktan sonra kutu.visible:=false; diye ekliyorum daha ilk harekette shape siliniyor acaba ben nerde hata yapıyorum yardım edebilirseniz sevinirim..
Re: runtime de yanyana gelen objeyi yoketme veya gizlemek
Hatamı bana söyleyecek yok mu arkadaşlar aligel54 arkadaş...
Re: runtime de yanyana gelen objeyi yoketme veya gizlemek
aslangeriiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: runtime de yanyana gelen objeyi yoketme veya gizlemek
Yazılım işinde böyle gelişemezsiniz. Belli ki şartınızda terslik var. Kıyaslama yaptığınız şartın üstünde kafa yormak ağır gelse bile bu şartın altını üstüne getirip çeşitli denemelerle çözümü sağlamaya çalışmalısınız.mustafeyn yazdı:Slm Arkadaşlar Amatörce ilgilendiğim delphide kendimi geliştirmek için ...
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: runtime de yanyana gelen objeyi yoketme veya gizlemek
Sayın sabanakman bey inanın uzun zamandır takıldığım bu noktada kendime göre denemediğim kod kalmadı ne yapsam bir buğday tanesi kadar yol alamadım hatta uzun uzun yabancı makaleler okudum geneli matematiksel olarak işlem yapmışlar ama ben uzun matematiksel kod haricinde herkesin anlayabileceği bir kod arıyordum maksat burada hazır koda konmak değil ufkumu açacak koda ihtihacım var çünkü henüz merdivene çıkamadım bana bir ilk basamak lazım teşekkür ederim ilgi duyan tüm arkadaşlara
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: runtime de yanyana gelen objeyi yoketme veya gizlemek
Şart olarak kullanmak yeterli olacaktır. Belli bir büyüklükte değeri görmezden gelmek isterseniz aşağıdaki fonksiyonu kullanabilirsiniz.Bu fonksiyonu örnekteki gibi kullanabilirsiniz.
Kod: Tümünü seç
if (Button.Left>=Shape.Left) and (Button.Width+Button.Left<=Shape.Left+Shape.Width)
and (Button.Top>=Shape.Top) and (Button.Top+Button.Height<=Shape.Top+Shape.Height) then ......
Kod: Tümünü seç
function Button_Sheape_icindemi(const Button,Shape:TControl):Boolean;
const ihmal_payi=5;//piksel taşmaya izin verilir...
begin
if Button.Parent<>Shape.Parent then
raise Exception.CreateFmt('Elmalarla armutlar kıyaslanamaz!'#13#10'Buton %s içinde ama Sheape %s içinde',[Button.Parent.Name,Shape.Parent.Name]);
Result:=(Shape.Left-Button.Left<=ihmal_payi)
and (((Button.Left+Button.Width)-(Shape.Width+Shape.Left))<=ihmal_payi)
and ((Shape.Top-Button.Top)<=ihmal_payi)
and (((Button.Top+Button.Height)-(Shape.Top+Shape.Height))<=ihmal_payi);
end;
Kod: Tümünü seç
procedure TForm2.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
const n=3;
var X,Y:Integer;
begin
X:=0;
Y:=0;
case Key of
VK_LEFT:X:=-1;
VK_RIGHT:X:=1;
VK_UP:Y:=-1;
VK_DOWN:Y:=1;
end;
Button1.Left:=Button1.Left+(X*3);
Button1.Top:=Button1.Top+(Y*3);
if Button_Sheape_icindemi(Button1,Shape1) then Shape1.Brush.Color:=clRed
else Shape1.Brush.Color:=clWhite;
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: runtime de yanyana gelen objeyi yoketme veya gizlemek
Teşekkür ederim arkadaşlar benim için önemli vakitlerini ayırıp kafayı sıyırdığım konuda yardım eden aslangeri54,sabanakmanbey ve simaWB beye teşekkür ederim anladım ki el elden üstündür ve bir karıncayım sina çölünü geçeceğim siz var hesap edin nekadar yol almışım Allah Herkesten razı olsun emeğinize sağlık..
Re: runtime de yanyana gelen objeyi yoketme veya gizlemek
@mustafeyn;
aslangeri54
aslangeri54

Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim