Sayfayı Yazdır | Pencereyi Kapat

Buton Kontrol

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=550
Tarih: 07 Ocak 2025 Saat 22:43
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: Buton Kontrol
Mesajı Yazan: sqlae
Konu: Buton Kontrol
Mesaj Tarihi: 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Ç;


http://https://justpaste.it/b8kdx" rel="nofollow - Burada 2x2 olan bir kod mevcut 3x3 şeklindeyken de burada yazanlarla aynı şekildeydi.



Cevaplar:
Mesajı Yazan: Alforce
Mesaj Tarihi: 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.


Mesajı Yazan: sqlae
Mesaj Tarihi: 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;


Mesajı Yazan: Alforce
Mesaj Tarihi: 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;



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net