![]() |
| 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
|
| Yazar | |
rümeysa
Yeni Üye
Kayıt Tarihi: 1 saat 60 Dakika Önce Durum: Aktif Değil Puanlar: 2 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Konu: bilgisayar ve telefon ekranında butonların kaymasıGönderim Zamanı: 1 saat 45 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 |
|
![]() |
|
kaanl0
Kıdemli Üye
Kayıt Tarihi: 16 Eylül 2025 Konum: konya Durum: Aktif Puanlar: 197 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 8 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; } 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">
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; |
|
![]() |
|
Yanıt Yaz
|
|
| Tweet |
| Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |