Sayfayı Yazdır | Pencereyi Kapat

spor uygulaması

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=1043
Tarih: 30 Haziran 2025 Saat 23:57
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: spor uygulaması
Mesajı Yazan: kayra12
Konu: spor uygulaması
Mesaj Tarihi: 30 Haziran 2025 Saat 09:37
var
  MyForm, GirisForm, AntrenmanForm : TCLForm;
  IsimEdit, BoyEdit, KiloEdit : TCLEdit;
  SonucLabel, OneriLabel, HareketAciklamaLabel, GelisimLabel : TCLLabel;
  BaslaButton : TCLButton;
  KolKasiButton, SirtKasiButton, BacakKasiButton : TCLButton;
  HareketButtons, array[1..5] of :TCLButton;
  SetArttirButton, SetAzaltButton, TekrarArttirButton, TekrarAzaltButton, KaydetButton : TCLButton;
  SetLabel, TekrarLabel : TCLLabel;
  AnaPanel, BilgiPanel, ButtonPanel, SonucPanel, OneriPanel, HareketPanel, GelisimPanel, SetTekrarPanel : TCLPanel;
  HareketImage : TCLImage;
  
  isim, secilenKas, secilenHareket : String;
  boy, kilo, vki : Float;
  durum : String;
  setSayisi, tekrarSayisi : Integer;
  
  // Günlük kayıt (basit string liste şeklinde)
  GunlukKayitlar : array[1..100] of String;
  KayitSayisi : Integer;

void BaslaButtonTikla;
{
  if((IsimEdit.Text == '') || (BoyEdit.Text == '') || (KiloEdit.Text == ''))
  {
    ShowMessage('Lütfen tüm alanları doldurunuz.');
  }
  else
  {
    isim = IsimEdit.Text;
    boy = StrToFloat(BoyEdit.Text) / 100;
    kilo = StrToFloat(KiloEdit.Text);
    vki = kilo / (boy * boy);
    vki = Round(vki * 10) / 10;

    if (vki < 18.5)
      durum = 'Zayıf - Direnç antrenmanları yapabilirsiniz.';
    else if (vki < 25)
      durum = 'Normal - Haftada 3-4 gün kardiyo ve güç antrenmanı önerilir.';
    else if (vki < 30)
      durum = 'Fazla kilolu - Düzenli yürüyüş ve hafif kardiyo yapmalısınız.';
    else
      durum = 'Obez - Öncelikle bir uzmana danışınız ve düşük etkili egzersizlere başlayınız.';

    GirisForm.Hide;
    AntrenmanForm.Show;
    SonucLabel.Text = 'Merhaba ' + isim + ', VKİ: ' + FloatToStr(vki);
    OneriLabel.Text = durum;
    HareketAciklamaLabel.Text = '';
    GelisimLabel.Text = 'Bugüne kadar hiç kayıt yok.';
    setSayisi = 3;
    tekrarSayisi = 15;
    SetLabel.Text = 'Set: ' + IntToStr(setSayisi);
    TekrarLabel.Text = 'Tekrar: ' + IntToStr(tekrarSayisi);
  }
}

void KasSecimiYap(String bolge);
{
  secilenKas = bolge;
  secilenHareket = '';
  
  if (bolge == 'Kol') {
    HareketButtons[1].Text = 'Dumbbell Curl';
    HareketButtons[2].Text = 'Triceps Dips';
    HareketButtons[3].Text = 'Hammer Curl';
    HareketButtons[4].Text = 'Push-up';
    HareketButtons[5].Text = 'Concentration Curl';
  } else if (bolge == 'Sırt') {
    HareketButtons[1].Text = 'Bent Over Row';
    HareketButtons[2].Text = 'Pull-up';
    HareketButtons[3].Text = 'Superman';
    HareketButtons[4].Text = 'Reverse Fly';
    HareketButtons[5].Text = 'Deadlift';
  } else if (bolge == 'Bacak') {
    HareketButtons[1].Text = 'Squat';
    HareketButtons[2].Text = 'Lunge';
    HareketButtons[3].Text = 'Calf Raise';
    HareketButtons[4].Text = 'Glute Bridge';
    HareketButtons[5].Text = 'Jump Squat';
  }
  
  HareketAciklamaLabel.Text = '';
  HareketImage.Visible = False;
  GelisimLabel.Text = 'Seçilen bölge: ' + secilenKas + '. Bir hareket seçiniz.';
  
  setSayisi = 3;
  tekrarSayisi = 15;
  SetLabel.Text = 'Set: ' + IntToStr(setSayisi);
  TekrarLabel.Text = 'Tekrar: ' + IntToStr(tekrarSayisi);
}

void HareketTikla(Integer indeks);
{
  secilenHareket = HareketButtons[indeks].Text;
  String aciklama;
  String imageUrl;
  
  if (secilenHareket == 'Squat') {
    aciklama = 'Squat:\nAyaklar omuz genişliğinde açık, dizleri bükerek oturur pozisyona gelin. 3 set, 15 tekrar.';
    imageUrl = ' https://r.resimlink.com/6mVeGvN.png" rel="nofollow - https://r.resimlink.com/6mVeGvN.png ';
  } else if (secilenHareket == 'Push-up') {
    aciklama = 'Push-up:\nEller omuz genişliğinde, vücut düz çizgide. 3 set, 12 tekrar.';
    imageUrl = ' https://r.resimlink.com/PUSHUP.png" rel="nofollow - https://r.resimlink.com/PUSHUP.png ';
  } else {
    aciklama = secilenHareket + ':\nBu hareket kas geliştirmek için etkilidir. 3 set, 15 tekrar.';
    imageUrl = ' https://r.resimlink.com/defaultKas.png" rel="nofollow - https://r.resimlink.com/defaultKas.png ';
  }
  
  HareketAciklamaLabel.Text = aciklama;
  AntrenmanForm.setImage(HareketImage, imageUrl);
  HareketImage.Visible = True;
}

void SetArttirButtonTikla;
{
  if (setSayisi < 10) {
    setSayisi = setSayisi + 1;
    SetLabel.Text = 'Set: ' + IntToStr(setSayisi);
  }
}

void SetAzaltButtonTikla;
{
  if (setSayisi > 1) {
    setSayisi = setSayisi - 1;
    SetLabel.Text = 'Set: ' + IntToStr(setSayisi);
  }
}

void TekrarArttirButtonTikla;
{
  if (tekrarSayisi < 50) {
    tekrarSayisi = tekrarSayisi + 1;
    TekrarLabel.Text = 'Tekrar: ' + IntToStr(tekrarSayisi);
  }
}

void TekrarAzaltButtonTikla;
{
  if (tekrarSayisi > 1) {
    tekrarSayisi = tekrarSayisi - 1;
    TekrarLabel.Text = 'Tekrar: ' + IntToStr(tekrarSayisi);
  }
}

void KaydetButtonTikla;
{
  if (secilenKas == '') {
    ShowMessage('Lütfen önce bir kas bölgesi seçin.');
    return;
  }
  if (secilenHareket == '') {
    ShowMessage('Lütfen önce bir hareket seçin.');
    return;
  }
  
  KayitSayisi = KayitSayisi + 1;
  String kayitMetni = 'Kas: ' + secilenKas + ', Hareket: ' + secilenHareket + ', Set: ' + IntToStr(setSayisi) + ', Tekrar: ' + IntToStr(tekrarSayisi);
  GunlukKayitlar[KayitSayisi] = kayitMetni;
  
  GelisimLabel.Text = 'Son kayıt: ' + kayitMetni;
  ShowMessage('Antrenman kaydınız başarıyla eklendi.');
}

{
  GirisForm = TCLForm.Create(Self);
  BilgiPanel = GirisForm.AddNewPanel(GirisForm, 'BilgiPanel');
  BilgiPanel.Align = alClient;
  
  IsimEdit = GirisForm.AddNewEdit(BilgiPanel, 'IsimEdit', 'İsminiz...');
  IsimEdit.Align = alTop;
  IsimEdit.Height = 30;
  
  BoyEdit = GirisForm.AddNewEdit(BilgiPanel, 'BoyEdit', 'Boy (cm)...');
  BoyEdit.Align = alTop;
  BoyEdit.clTypeOfField = taFloat;
  BoyEdit.Height = 30;
  
  KiloEdit = GirisForm.AddNewEdit(BilgiPanel, 'KiloEdit', 'Kilo (kg)...');
  KiloEdit.Align = alTop;
  KiloEdit.clTypeOfField = taFloat;
  KiloEdit.Height = 30;
  
  BaslaButton = GirisForm.AddNewButton(BilgiPanel, 'BaslaButton', 'Devam Et');
  BaslaButton.Align = alTop;
  BaslaButton.Height = 40;
  MyForm.AddNewEvent(BaslaButton, tbeOnClick, 'BaslaButtonTikla');
  
  AntrenmanForm = TCLForm.Create(Self);
  AnaPanel = AntrenmanForm.AddNewPanel(AntrenmanForm, 'AnaPanel');
  AnaPanel.Align = alClient;
  
  SonucLabel = AntrenmanForm.AddNewLabel(AnaPanel, 'SonucLabel', '');
  SonucLabel.Align = alTop;
  SonucLabel.TextSettings.Font.Size = 16;
  
  OneriLabel = AntrenmanForm.AddNewLabel(AnaPanel, 'OneriLabel', '');
  OneriLabel.Align = alTop;
  OneriLabel.WordWrap = True;
  OneriLabel.TextSettings.Font.Size = 14;
  
  ButtonPanel = AntrenmanForm.AddNewPanel(AnaPanel, 'ButtonPanel');
  ButtonPanel.Align = alTop;
  ButtonPanel.Height = 40;
  
  KolKasiButton = AntrenmanForm.AddNewButton(ButtonPanel, 'KolKasiButton', 'Kol Kası');
  SirtKasiButton = AntrenmanForm.AddNewButton(ButtonPanel, 'SirtKasiButton', 'Sırt Kası');
  BacakKasiButton = AntrenmanForm.AddNewButton(ButtonPanel, 'BacakKasiButton', 'Bacak Kası');
  
  MyForm.AddNewEvent(KolKasiButton, tbeOnClick, 'KasSecimiYap(\"Kol\")');
  MyForm.AddNewEvent(SirtKasiButton, tbeOnClick, 'KasSecimiYap(\"Sırt\")');
  MyForm.AddNewEvent(BacakKasiButton, tbeOnClick, 'KasSecimiYap(\"Bacak\")');
  
  HareketPanel = AntrenmanForm.AddNewPanel(AnaPanel, 'HareketPanel');
  HareketPanel.Align = alClient;
  
  for (Integer i = 1 to 5 do)
  
  {
    HareketButtons = AntrenmanForm.AddNewButton(HareketPanel, 'HareketButton' + IntToStr(i), '');
    HareketButtons.Align = alTop;
    HareketButtons.Height = 30;
    MyForm.AddNewEvent(HareketButtons, tbeOnClick, 'HareketTikla(' + IntToStr(i) + ')');
  }
}


koddum da hata alıyorum ve kodumu profesyonel bir uygulama yapmak istiyorum yardımınız için teşekkürler 






Cevaplar:
Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 30 Haziran 2025 Saat 11:39
 Merhaba Kayra,
7 ve 19. satırda ki dizi değişkenlerin yanlış 
HareketButtons, array[1..5] of :TCLButton;  olarak tanımlamışsın ama diziler 0 dan başlıyor 
HareketButtons: array[0..5] of TCLButton; bu şekil de tanımlaman da hata almazsın.



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