Button hareket ettirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
ertaneker
Üye
Mesajlar: 9
Kayıt: 11 Ağu 2010 06:42

Re: Button hareket ettirme

Mesaj gönderen ertaneker »

Örnek kod için çok teşekkürler onclik olayında istediğimi yaptım ama onmousedown olayında aşağıdaki hatayı alıyorum onmousedown olayında procedure çalıştıramıyormuyuz ???? :N(

Kod: Tümünü seç

[Error] Unit1.pas(175): Incompatible types: 'Parameter lists differ'
ertaneker
Üye
Mesajlar: 9
Kayıt: 11 Ağu 2010 06:42

Re: Button hareket ettirme

Mesaj gönderen ertaneker »

qamyoncu yardımların için çok teşekkürler bu arada prosedurları hangi olayda kullanılacaksa o özellikte yazmak gerekiyormuş ben başta

Kod: Tümünü seç

procedure TForm1.newup(sender:Tobject);
şeklinde yazmıştım ama ben bu proceduru onmouseup olayında kullanacağım için ,

Kod: Tümünü seç

procedure tform1.NEWUP(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
şeklinde yazmam gerekiyormuş deneme yanılma yöntemi :D
mustafeyn
Üye
Mesajlar: 15
Kayıt: 02 Oca 2009 03:08

Re: Button hareket ettirme

Mesaj gönderen mustafeyn »

slm arkadaşlar buraya yazılanlar bayağı eski ama ben sonradan delphi topluluğuna katıldığım için geriden geliyorum oyunda puanlama nasıl yapılır kaybolan her nesne için puan 1 nasıl artırılır
cngzavc
Üye
Mesajlar: 2
Kayıt: 19 Nis 2012 08:21

Re: Button hareket ettirme

Mesaj gönderen cngzavc »

Adsız.rar
dx-ball resimler bakınız....yardım lazım
(21.41 KiB) 68 kere indirildi
lütfen arkadaşlar acil dx-ball oyunu kodu lazım lütfen çok acil shape butonlarına top devecek ve top yok olacak ve puan olarak yazılacak lütfen acil yardım şimdiden teşekkürler
cngzavc
Üye
Mesajlar: 2
Kayıt: 19 Nis 2012 08:21

Re: Button hareket ettirme

Mesaj gönderen cngzavc »

slm arkadaşlar ya ben de dx ball oyunu tarzı bir şeyler yapıyorm ama bir türlü butonları yok edemiyorum ben butom ları yok etmek için ne kodu yazmam lazım lütfen yardımcı olabilirmisin arkaşalar ....... şimdiden teşekkürler....
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Button hareket ettirme

Mesaj gönderen mrmarman »

Özel mesaj ile sormuşsunuz, sizin örneğinize göre çözümü buradan paylaşayım.

Gönderdiğiniz kod boğu şu şekildeydi...

Kod: Tümünü seç

Const
{$j+}
x: Integer = 1;
y: Integer = 1;
{$j-}
Adim = 6;
begin
shape52.Left:=xyeri;
Shape52.Top:=yyeri;
xyeri := xyeri + (x*Adim);
yyeri := yyeri + (y*Adim);
If xyeri + (x*Adim) >= (Panel1.Width - Shape52.Width ) then x := x*(-1);
If yyeri + (y*Adim) >= (Panel1.Height - Shape52.Height) then y := y*(-1);
If xyeri+ (x*Adim) <= 0 then x := x*(-1);
If yyeri + (y*Adim) <= 0 then y := y*(-1);

label1.Caption:=inttostr(xyeri);
label2.Caption:=inttostr(yyeri);
if ((xyeri>=437) and (xyeri<=517)) and ((yyeri>=220) and (yyeri<=245)) then Shape28.Visible:=false;
if ((xyeri>=533) and (xyeri<=613)) and ((yyeri>=220) and (yyeri<=245)) then Shape29.Visible:=false;
if ((xyeri>=629) and (xyeri<=709)) and ((yyeri>=220) and (yyeri<=245)) then Shape30.Visible:=false;
if ((xyeri>=725) and (xyeri<=805)) and ((yyeri>=220) and (yyeri<=245)) then Shape31.Visible:=false;
if ((xyeri>=821) and (xyeri<=901)) and ((yyeri>=220) and (yyeri<=245)) then Shape32.Visible:=false;
if ((xyeri>=917) and (xyeri<=997)) and ((yyeri>=220) and (yyeri<=245)) then Shape33.Visible:=false;
Aynı isimleri vererek bir proje hazırladım. Şu şekilde dinamik bir yapı daha doğru olur. Hatta bir pattern üzerinden okunarak dinamik olarak shapeler ekranda üretilebilir. Aşağıda download edilebilir halde dosyayı ekledim.

Kod: Tümünü seç

Var
  xyeri : Integer = 174;
  yyeri : Integer = 192;

procedure TForm1.Timer1Timer(Sender: TObject);
Const
  {$j+}
    x: Integer = 1;
    y: Integer = 1;
  {$j-}
  Adim = 6;
Var
  i     : Integer;
  Shape : TShape;
begin
  // Yeni Konumu Hesapladık
    xyeri := xyeri  + (x*Adim);
    yyeri := yyeri  + (y*Adim);

    Label1.Caption := inttostr(xyeri);
    Label2.Caption := inttostr(yyeri);

  // 1. Durum : Hesapladığımız yeni konum Panel sınırlarına eriştiyse sapsın.
    If xyeri  + (x*Adim) >= (Panel1.Width  - Shape52.Width ) then x := x*(-1);
    If yyeri  + (y*Adim) >= (Panel1.Height - Shape52.Height) then y := y*(-1);
    If xyeri  + (x*Adim) <= 0 then x := x*(-1);
    If yyeri  + (y*Adim) <= 0 then y := y*(-1);

  // 2. Durum : Hesapladığımız yeni konum Hedef Shape sınırlarına eriştiyse sapsın, saparken de obje gizlensin.
    // Her shape için ayrı ayrı işlem yapmak istemediğimden, bir işlemi her birisi için sorgulayarak sadeleştirme yapıyorum.
    for i := 28 to 33 do
    begin
      // Shape sırasıyla Shape28, Shape29, Shape30, Shape31, Shape32, Shape33 olacak...
      Shape := TShape( FindComponent( 'Shape'+ IntToStr(i) ) );
      if  Shape.Visible  // Birinci şart shape görünür halde mi ?!
      AND ( xyeri >= Shape.Left)
      AND ( xyeri <= Shape.Left+Shape.Width)
      AND ( yyeri >= Shape.Top )
      AND ( yyeri <= Shape.Top +Shape.Height) then
      begin
        // önce gizle
        Shape.Visible:=false;
        // sonra topun yönünü saptır.
        x := x*(-1);
        y := y*(-1);
      end;
    end;
  // Konumumuzu aldık
  Shape52.Left := xyeri;
  Shape52.Top  := yyeri;
end;
Dosya ekleri
DXBall.rar
DXBall örneği
(171.47 KiB) 90 kere indirildi
Resim
Resim ....Resim
Cevapla