Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - bilgisayar ve telefon ekranında butonların kayması
  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.

bilgisayar ve telefon ekranında butonların kayması

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


Kayıt Tarihi: 1 saat 55 Dakika Önce
Durum: Aktif Değil
Puanlar: 2
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı rümeysa Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: bilgisayar ve telefon ekranında butonların kayması
    Gönderim Zamanı: 1 saat 40 Dakika Önce Saat 12:44
Var
  MainForm: TclForm;
  ImgMain, ImgQuestion: TclImage;
  BtnMag1, BtnMag2, BtnMag3, BtnMag4, BtnMag5, BtnMag6: TclProButton;
  BtnA, BtnT, BtnG, BtnC: TclProButton;
  QuestionPanel, TopHUD, CardPanel, ButtonPanel: TclProPanel;
  LblScore, LblHealth, LblTitle, LblSub: TclProLabel;
  score, health, solved: Integer;
  currentAnswer, currentMag: String;
  done1, done2, done3, done4, done5, done6: Boolean;

void UpdateHUD
{
  LblScore.Text = 'SKOR: ' + IntToStr(score);
  if (health == 3) LblHealth.Text = 'HAK: ❤️❤️❤️';
  else if (health == 2) LblHealth.Text = 'HAK: ❤️❤️';
  else if (health == 1) LblHealth.Text = 'HAK: ❤️';
  else LblHealth.Text = 'HAK: BİTTİ';

  if (done1 == True) BtnMag1.Visible = False; else BtnMag1.Visible = True;
  if (done2 == True) BtnMag2.Visible = False; else BtnMag2.Visible = True;
  if (done3 == True) BtnMag3.Visible = False; else BtnMag3.Visible = True;
  if (done4 == True) BtnMag4.Visible = False; else BtnMag4.Visible = True;
  if (done5 == True) BtnMag5.Visible = False; else BtnMag5.Visible = True;
  if (done6 == True) BtnMag6.Visible = False; else BtnMag6.Visible = True;
}

void ShowQuestion
{
  ImgMain.Visible = False;
  TopHUD.Visible = False;
  BtnMag1.Visible = False; BtnMag2.Visible = False; BtnMag3.Visible = False;
  BtnMag4.Visible = False; BtnMag5.Visible = False; BtnMag6.Visible = False;
  QuestionPanel.Visible = True;
}

void ShowMain
{
  ImgMain.Visible = True;
  TopHUD.Visible = True;
  QuestionPanel.Visible = False;
  UpdateHUD;
}

void ResetGame
{
  score = 0; health = 3; solved = 0;
  done1 = False; done2 = False; done3 = False;
  done4 = False; done5 = False; done6 = False;
  ShowMain;
}

void CheckAnswer(ans: String)
{
  if (ans == currentAnswer) {
    ShowMessage('Doğru ✅');
    score = score + 20; solved = solved + 1;
    if (currentMag == '1') done1 = True;
    if (currentMag == '2') done2 = True;
    if (currentMag == '3') done3 = True;
    if (currentMag == '4') done4 = True;
    if (currentMag == '5') done5 = True;
    if (currentMag == '6') done6 = True;

    if (solved == 6) {
      ShowMessage('Tebrikler 🎉 Sarmal Tamamlandı!');
      ResetGame;
    } else ShowMain;
  } else {
    ShowMessage('Yanlış ❌');
    health = health - 1; score = score - 10;
    if (health <= 0) {
      ShowMessage('Hakkınız Bitti!');
      ResetGame;
    }
  }
  UpdateHUD;
}

void ClickA { CheckAnswer('A'); }
void ClickT { CheckAnswer('T'); }
void ClickG { CheckAnswer('G'); }
void ClickC { CheckAnswer('C'); }

void Open1 { currentMag = '1'; currentAnswer = 'T'; MainForm.setImage(ImgQuestion, 'https://resmim.net/cdn/2026/05/02/Ce0Anb.jpg'); ShowQuestion; }
void Open2 { currentMag = '2'; currentAnswer = 'C'; MainForm.setImage(ImgQuestion, 'https://resmim.net/cdn/2026/05/02/Ce0uED.jpg'); ShowQuestion; }
void Open3 { currentMag = '3'; currentAnswer = 'G'; MainForm.setImage(ImgQuestion, 'https://resmim.net/cdn/2026/05/02/Ce0VFy.jpg'); ShowQuestion; }
void Open4 { currentMag = '4'; currentAnswer = 'G'; MainForm.setImage(ImgQuestion, 'https://resmim.net/cdn/2026/05/02/Ce07uc.jpg'); ShowQuestion; }
void Open5 { currentMag = '5'; currentAnswer = 'A'; MainForm.setImage(ImgQuestion, 'https://resmim.net/cdn/2026/05/02/Ce0iD7.jpg'); ShowQuestion; }
void Open6 { currentMag = '6'; currentAnswer = 'T'; MainForm.setImage(ImgQuestion, 'https://resmim.net/cdn/2026/05/02/Ce0RPq.jpg'); ShowQuestion; }

void SetupUI
{
  MainForm = TclForm.Create(Self);
  score = 0; health = 3; solved = 0;

  // ANA EKRAN TASARIMI 
  ImgMain = MainForm.AddNewImage(MainForm, 'ImgMain');
  ImgMain.Align = alClient;
  MainForm.setImage(ImgMain, 'https://resmim.net/cdn/2026/05/07/Cri56b.jpg');

  // Skor ve Hak Paneli (Sol Üste Sabitlendi)
  TopHUD = MainForm.AddNewProPanel(MainForm, 'TopHUD');
  TopHUD.Align = alNone;
  TopHUD.SetBounds(20, 20, 150, 80);
  
  LblScore = MainForm.AddNewProLabel(TopHUD, 'LblScore', 'SKOR: 0');
  LblScore.Align = alTop; LblScore.Margins.Top = 10; LblScore.Margins.Left = 10;
  
  LblHealth = MainForm.AddNewProLabel(TopHUD, 'LblHealth', 'HAK: ❤️❤️❤️');
  LblHealth.Align = alTop; LblHealth.Margins.Top = 5; LblHealth.Margins.Left = 10;

  // BÜYÜTEÇLER (Koordinatlar tam sarmal üzerine göre )
  // Sol taraf
  BtnMag1 = MainForm.AddNewProButton(MainForm, 'BtnMag1', '🔍');
  BtnMag1.Align = alNone; BtnMag1.SetBounds(50, 180, 55, 55); MainForm.AddNewEvent(BtnMag1, tbeOnClick, 'Open1');

  BtnMag2 = MainForm.AddNewProButton(MainForm, 'BtnMag2', '🔍');
  BtnMag2.Align = alNone; BtnMag2.SetBounds(50, 410, 55, 55); MainForm.AddNewEvent(BtnMag2, tbeOnClick, 'Open2');

  BtnMag3 = MainForm.AddNewProButton(MainForm, 'BtnMag3', '🔍');
  BtnMag3.Align = alNone; BtnMag3.SetBounds(50, 640, 55, 55); MainForm.AddNewEvent(BtnMag3, tbeOnClick, 'Open3');

  // Sağ taraf
  BtnMag4 = MainForm.AddNewProButton(MainForm, 'BtnMag4', '🔍');
  BtnMag4.Align = alNone; BtnMag4.SetBounds(300, 280, 55, 55); MainForm.AddNewEvent(BtnMag4, tbeOnClick, 'Open4');

  BtnMag5 = MainForm.AddNewProButton(MainForm, 'BtnMag5', '🔍');
  BtnMag5.Align = alNone; BtnMag5.SetBounds(300, 510, 55, 55); MainForm.AddNewEvent(BtnMag5, tbeOnClick, 'Open5');

  BtnMag6 = MainForm.AddNewProButton(MainForm, 'BtnMag6', '🔍');
  BtnMag6.Align = alNone; BtnMag6.SetBounds(300, 740, 55, 55); MainForm.AddNewEvent(BtnMag6, tbeOnClick, 'Open6');

  // SORU EKRANI TASARIMI 
  QuestionPanel = MainForm.AddNewProPanel(MainForm, 'QuestionPanel');
  QuestionPanel.Align = alClient;
  QuestionPanel.Visible = False;

  LblTitle = MainForm.AddNewProLabel(QuestionPanel, 'LblTitle', 'DNA TAMAMLAMA');
  LblTitle.Align = alNone; LblTitle.SetBounds(60, 40, 280, 40);

  CardPanel = MainForm.AddNewProPanel(QuestionPanel, 'CardPanel');
  CardPanel.Align = alNone; CardPanel.SetBounds(40, 110, 320, 260);

  ImgQuestion = MainForm.AddNewImage(CardPanel, 'ImgQuestion');
  ImgQuestion.Align = alClient; ImgQuestion.Margins.Left = 10; ImgQuestion.Margins.Right = 10;

  ButtonPanel = MainForm.AddNewProPanel(QuestionPanel, 'ButtonPanel');
  ButtonPanel.Align = alNone; ButtonPanel.SetBounds(0, 420, 400, 280);

  // Butonlar 
  BtnA = MainForm.AddNewProButton(ButtonPanel, 'BtnA', 'A');
  BtnA.Align = alNone; BtnA.SetBounds(20, 20, 160, 90); MainForm.AddNewEvent(BtnA, tbeOnClick, 'ClickA');

  BtnT = MainForm.AddNewProButton(ButtonPanel, 'BtnT', 'T');
  BtnT.Align = alNone; BtnT.SetBounds(210, 20, 160, 90); MainForm.AddNewEvent(BtnT, tbeOnClick, 'ClickT');

  BtnG = MainForm.AddNewProButton(ButtonPanel, 'BtnG', 'G');
  BtnG.Align = alNone; BtnG.SetBounds(20, 140, 160, 90); MainForm.AddNewEvent(BtnG, tbeOnClick, 'ClickG');

  BtnC = MainForm.AddNewProButton(ButtonPanel, 'BtnC', 'C');
  BtnC.Align = alNone; BtnC.SetBounds(210, 140, 160, 90); MainForm.AddNewEvent(BtnC, tbeOnClick, 'ClickC');

  UpdateHUD;
  MainForm.Run;
}

{
  SetupUI;
}

kod açıldığında telefon ekranında büyüteçlerin yerleri istenilen gibi olurken bilgisayar ekranında büyüteçlerin yerleri kaymış olarak gözüküyor nasıl düzeltebilirim ve büyüteçler emoji şeklinde ekli biraz daha nasıl büyültülebilirim


https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
kaanl0 Açılır Kutu İzle
Kıdemli Üye
Kıdemli Üye
Simge

Kayıt Tarihi: 16 Eylül 2025
Konum: konya
Durum: Aktif
Puanlar: 197
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı kaanl0 Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 3 Dakika Önce Saat 14:21
Telefon ve bilgisayarın genişlik ve uzunluk değerleri farklı olduğu için iki farklı cihazda farklı gözüküyor, Bunun için 2 yöntem önerebilirim

1. yöntem scaledlayout kullanmak aşağıda verdiğim kodu kullanıp kullanıp bütün componentlerin parentını form yerine scaledlayout'u yapacağız bu şekilde her cihazda aynı gözükecek.

var
 MyForm:TCLForm;
 ScaledLayout: TclScaledLayout;
 testButton : TclButton;

{
MyForm = TCLForm.Create(Self);

ScaledLayout = MyForm.AddNewScaledLayout(MyForm, 'ScaledLayout');
ScaledLayout.Align = alClient;
ScaledLayout.OriginalHeight = 750; 
ScaledLayout.OriginalWidth = 370;

testButton = MyForm.AddNewButton(ScaledLayout,'testButton','Click');
testButton.StyledSettings = ssFamily;
testButton.TextSettings.Font.Size = 20;
testButton.TextSettings.FontColor = clAlphaColor.clHexToColor('#8a067c');




clRTSetProperty(MyForm,'ClientHeight',750);
clRTSetProperty(MyForm,'ClientWidth',370);
MyForm.Run;
}


2. yöntem ise bütün widht height margin değerlerini responsive yapmak, aşağıda attığım şekilde mainformun boyutuna göre yüzdelik olarak hesaplıyor. Marginlerde top ve bottomlarda clheight left ve rightlarda clwidht kullanmalısın

  TitlePnl.Height = (MainForm.clHeight*18)/100;
  TitlePnl.Width = (MainForm.clWidth*100)/100;

https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
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.