Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Buton Kontrol
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

Buton Kontrol

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
sqlae Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 02 Ağustos 2023
Konum: Konya,Turkey
Durum: Aktif Değil
Puanlar: 16
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı sqlae Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Buton Kontrol
    Gönderim Zamanı: 04 Ağustos 2023 Saat 11:48
Merhabalar, bir yap-boz uygulaması hazırlamaya çalışıyorum 3x3 bir zemin mevcut toplam 9 butondan oluşuyor ekte görsel tasarımı mevcut ; 



Buton1'e tıklandığında buton2 ile yer değiştirmesini istiyorum bu sorunsuz gerçekleşiyor fakat buton1 ve 2 yer değiştirdikten sonra buton2 buton1'in yerine geçtiğinden dolayı buton3 e tıklanırsa buton2'nin yeni konumu yani en soldaki ve en sağdaki yer değiştiriyor. Olması gereken sağdan sola soldan sağa aşağıdan yukarı yukarıdan aşağı olması gerekirken işlem karmaşık şekilde gerçekleşiyor yapılacak olan algoritma veya kullanılması gereken kod işlemini çözemiyorum. ;

EĞER (Buton1.Left=200) ve (buton2.Left=60) ise
{
yerleri değiştir
}
Değilse eğer (Buton1.Left=60) ve buton3.Left=200) ise
{
yerleri değiştir
}

Şeklinde denedim fakat başarısız oluyor.

Buton1 tıklandığında buton2 ile değiştir şeklinde denedim fakat bu defa buton3 ile değiştiremiyorum yine başarısız oluyor.

Aşağıda görsel bir şablon halinde çizerek paylaştım.

YEŞİL RENK SEÇİLEN
KIRMIZI RENK EYLEM

1. Buton1 ve buton 2 yer değiştirdi



2. Buton3'ü seçtim buton 2 ile yer değiştirdi olması gereken buton1 veya buton6 ile yer değişmesini sağlamak


3. SONUÇ;


Burada 2x2 olan bir kod mevcut 3x3 şeklindeyken de burada yazanlarla aynı şekildeydi.
Yukarı Dön
Alforce Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 26 Temmuz 2023
Durum: Aktif Değil
Puanlar: 150
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Alforce Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 04 Ağustos 2023 Saat 14:20
Bu konuda butonların yerini değiştirmek yerine isimlerini ve resimlerini değiştirmek daha mantıklıdır.

Kodunuzu paylaşırsanız yardımcı olabilirim.
Yukarı Dön
sqlae Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 02 Ağustos 2023
Konum: Konya,Turkey
Durum: Aktif Değil
Puanlar: 16
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı sqlae Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 04 Ağustos 2023 Saat 14:22
Kodu zaten konuya eklemiştim en alt satırda mevcuttu yine bırakıyorum.

var
AnaForm   : TclForm; //Kod Formu
parcaBtn1 : TClProButton; //ORTA SOL
parcaBtn2 : TClProButton; //ORTA SAĞ
parcaBtn3 : TClProButton; //ÜST  SOL
parcaBtn4 : TClProButton; //ÜST  SAĞ
baslaBtn  : TclButton;
    
procedure basBtn
begin
  //parcaBtn1.Left:= parcaBtn1.Left -140;
  {
  if (parcaBtn1.Left = 200) and (parcaBtn2.Left = 60) then
  begin
    
    parcaBtn1.Left:= 60;
    parcaBtn2.Left:= 200;
  end;
  else if (parcaBtn1.Left = 200) and (parcaBtn3.Left = 60) and (parcaBtn3.Top = 250) then
  begin
    parcaBtn1.Left:= 60;
    parcaBtn1.Top := 250;
    parcaBtn3.Top:= 0;
    parcaBtn3.Left := 200;
  end;
  }
end;

procedure basBtn2
begin
  parcaBtn1.Left:= 200;
  parcaBtn2.Left:= 60;
end;

procedure basBtn3
begin
  parcaBtn4.Left:= 60;
  parcaBtn3.Left:= 200;
end;

procedure basBtn4
begin
  parcaBtn3.Left:= 60;
  parcaBtn4.Left:= 200;
end;

begin
AnaForm := TclForm.Create(Self);
AnaForm.SetFormColor('#46DBC2','#F0E278',clGVertical);

parcaBtn1:= AnaForm.AddNewProButton(AnaForm,'parcaBtn1','');
parcaBtn1.Align := alNone;
parcaBtn1.Height := 130;
parcaBtn1.Width := 130;
parcaBtn1.Left:= 200;
AnaForm.setImage(parcaBtn1,'https://i.hizliresim.com/iimn9zd.png');
AnaForm.AddNewEvent(parcaBtn1,tbeOnClick,'basBtn');

parcaBtn2:= AnaForm.AddNewProButton(AnaForm,'parcaBtn2','');
parcaBtn2.Align := alNone;
parcaBtn2.Height := 130;
parcaBtn2.Width := 130;
parcaBtn2.Left:= 60;
AnaForm.setImage(parcaBtn2,'https://i.hizliresim.com/pefkmcg.png');
AnaForm.AddNewEvent(parcaBtn2,tbeOnClick,'basBtn2');

parcaBtn3:= AnaForm.AddNewProButton(AnaForm,'parcaBtn3','');
parcaBtn3.Align := alNone;
parcaBtn3.Height := 130;
parcaBtn3.Width := 130;
parcaBtn3.Top:= 250;
parcaBtn3.Left:= 60;
AnaForm.setImage(parcaBtn3,'https://i.hizliresim.com/25n16f0.png');
AnaForm.AddNewEvent(parcaBtn3,tbeOnClick,'basBtn3');

parcaBtn4:= AnaForm.AddNewProButton(AnaForm,'parcaBtn4','');
parcaBtn4.Align := alNone;
parcaBtn4.Height := 130;
parcaBtn4.Width := 130;
parcaBtn4.Top:= 250;
parcaBtn4.Left:=200;
AnaForm.setImage(parcaBtn4,'https://i.hizliresim.com/awuhq8o.png');
AnaForm.AddNewEvent(parcaBtn4,tbeOnClick,'basBtn4');

baslaBtn:= AnaForm.AddNewButton(AnaForm,'baslaBtn','Karıştır');
baslaBtn.Align := alTop;
baslaBtn.Height := 50;
baslaBtn.Width := 130;
AnaForm.AddNewEvent(baslaBtn,tbeOnClick,'karBtn');

AnaForm.Run;

end;
Yukarı Dön
Alforce Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 26 Temmuz 2023
Durum: Aktif Değil
Puanlar: 150
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (1) Teşekkürler(1)   Alıntı Alforce Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 07 Ağustos 2023 Saat 09:44
Bu biraz karmaşık ama umarım işinizi görür:
var
AnaForm: TclForm; //Kod Formu
parcaBtn1: TClProButton; //ORTA SOL
parcaBtn2: TClProButton; //ORTA SAĞ
parcaBtn3: TClProButton; //ÜST  SOL
parcaBtn4: TClProButton; //ÜST  SAĞ
baslaBtn: TclButton;
Sel: Boolean;
i2,j2: Integer;
Images: Variant;
    
procedure basBtn
begin
  
end;

procedure bas
Var
  i,j: Integer;
  Buf: String;
begin
  i:= TclProButton(AnaForm.clSender).clTagInt div 10;
  j:= TclProButton(AnaForm.clSender).clTagInt mod 10;
  
  if Sel = False then
  Begin
    i2:= i;
    j2:= j;
    
    Sel:= True;
  End else
  Begin
    Buf:= Images[i,j];
    Images[i,j]:= Images[i2,j2];
    Images[i2,j2]:= Buf;
    
    AnaForm.SetImage(AnaForm.clFindComponent('parcaBtn'+IntToStr(i)+IntToStr(j)), Images[i,j]);
    AnaForm.SetImage(AnaForm.clFindComponent('parcaBtn'+IntToStr(i2)+IntToStr(j2)), Images[i2,j2]);
    
    Sel:= False;
  End;
end;

begin
  Sel:= False;
  i2:= -1;
  j2:= -1;
  
  Images:= 
  [
    ['https://i.hizliresim.com/25n16f0.png','https://i.hizliresim.com/awuhq8o.png'],
    ['https://i.hizliresim.com/pefkmcg.png','https://i.hizliresim.com/iimn9zd.png']
  ];
  
  AnaForm:= TclForm.Create(Self);
  AnaForm.SetFormColor('#46DBC2','#F0E278',clGVertical);
  
  parcaBtn1:= AnaForm.AddNewProButton(AnaForm,'parcaBtn11','');
  parcaBtn1.Align:= alNone;
  parcaBtn1.Height:= 130;
  parcaBtn1.Width:= 130;
  parcaBtn1.Left:= 200;
  parcaBtn1.clTagInt:= 11;
  AnaForm.setImage(parcaBtn1, Images[1,1]);
  AnaForm.AddNewEvent(parcaBtn1,tbeOnClick,'bas');
  
  parcaBtn2:= AnaForm.AddNewProButton(AnaForm,'parcaBtn10','');
  parcaBtn2.Align:= alNone;
  parcaBtn2.Height:= 130;
  parcaBtn2.Width:= 130;
  parcaBtn2.Left:= 60;
  parcaBtn2.clTagInt:= 10;
  AnaForm.setImage(parcaBtn2, Images[1,0]);
  AnaForm.AddNewEvent(parcaBtn2,tbeOnClick,'bas');
  
  parcaBtn3:= AnaForm.AddNewProButton(AnaForm,'parcaBtn00','');
  parcaBtn3.Align:= alNone;
  parcaBtn3.Height:= 130;
  parcaBtn3.Width:= 130;
  parcaBtn3.Top:= 250;
  parcaBtn3.Left:= 60;
  parcaBtn3.clTagInt:= 00;
  AnaForm.setImage(parcaBtn3, Images[0,0]);
  AnaForm.AddNewEvent(parcaBtn3,tbeOnClick,'bas');
  
  parcaBtn4:= AnaForm.AddNewProButton(AnaForm,'parcaBtn01','');
  parcaBtn4.Align:= alNone;
  parcaBtn4.Height:= 130;
  parcaBtn4.Width:= 130;
  parcaBtn4.Top:= 250;
  parcaBtn4.Left:= 200;
  parcaBtn4.clTagInt:= 01;
  AnaForm.setImage(parcaBtn4, Images[0,1]);
  AnaForm.AddNewEvent(parcaBtn4,tbeOnClick,'bas');
  
  baslaBtn:= AnaForm.AddNewButton(AnaForm,'baslaBtn','Karıştır');
  baslaBtn.Align:= alTop;
  baslaBtn.Height:= 50;
  baslaBtn.Width:= 130;
  AnaForm.AddNewEvent(baslaBtn,tbeOnClick,'karBtn');
  
  AnaForm.Run;
end;
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,031 Saniyede Yüklendi.