Delphi Can

Orjinalini görmek için tıklayınız: Panel ve çözünürlük
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Merhaba, bir konuda fikrinizi almak istiyorum.
Aşağıdaki resimde görüldüğü gibi  Ana ve client isminde panel kullanarak oluşturduğum iki panom var. 

AMAC : Dışarıdan girilen rakam hangisinde varsa o kutunun rengi değişsin.

Sorunlar:
1) Bu formu 1024 çözünürlükte tasarladım. Fakat uygulama televizyona bağlanmış bilgisayarlardada çalışacak. Televizyon çözünürlüklerini tahmin edemediğim için Formun ve formdaki panellerin ekran büyüklüğüne göre orantılı olarak büyümesi gerekiyor. Bu konuda scalebye olarak bir kaç konu okudum fakat neye göre nasıl kullanılacağını anlayamadım. Bu konuda ne yapabilirim.

2) Dışarıdan elle herhangi bir rakam girildiğinde aşağıdaki panellerin hangisinde varsa o panellerin rengini değiştirmek istiyorum. Buna ilk aklıma gelen bir prosedür ile bütün panellerin captionları gezip eşleşenlerin rengini değiştirmek. 135 adet panelim var bu şekilde yapmam doğru olurmu farklı bir fikriniz varmı? 

Not: Ben panel kullanarak oluşturdum fakat aşağıdaki şekli sağlayacak ve yukarıda bahsettiğim sorunları aşmakta daha kolay olacak farklı fikirleriniz var ise o şekildede oluşturabilirim. Örnek: Panel değil de shape kullanarak oluştur gibi... Siz olsanız nasıl yapardınız ?

Benimle deneyim ve bilgilerinizi paylaşırsanız sevinirim.




g9kooR.png
2. için
panellerine uygun isim verip,
Var
 aPanel tpanel;
.
.
aPanel := (FindComponent('pnlTombala'+TasNo.tosting)) as TPanel;
if aPanel <> nil then
Begin
 aPanel.color := clRed;
End;
Panellerle hiç uğraşma hocam, aşağıda bi kod örneği var bak.
procedure TForm1.FormCreate(Sender: TObject);
VAR
X:INTEGER;
begin
TABLO.Active:=TRUE;
FOR X:=1 TO 90 DO BEGIN
TABLO.Append;
TABLOKOD.AsInteger:=X;
TABLOONAY.AsInteger:=0;
TABLO.Refresh;
END;
end;

procedure TForm1.DBCtrlGrid1PaintPanel(DBCtrlGrid: TDBCtrlGrid; Index: Integer);
begin
if DBCtrlGrid1.DataSource.DataSet.FieldByName('ONAY').AsInteger=0 then
   DBCtrlGrid1.Color:=clGray
 else
   DBCtrlGrid1.Color:=clBlue;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
TABLO.Locate('KOD',INTTOSTR(STRTOINT(EDIT1.Text)-1),[loPartialKey]);
TABLO.Edit;
TABLOONAY.AsInteger:=1; // 1 olunca onaylandı demektir, yukarıda direk maviye boyar refresh edince.
TABLO.Refresh;
end;

TABLO dediğim memtable bendeki, dbctrlgrid koy forma, width, height, row count, col count ayarla, gerisi zaten kodda var. istediğin veritabanı ile yaparsın, ben olsam direk memtable ile yapardım. Hangi rakam yazılırsa o kodu boyarsın olur biter.
Meko arkadaşım,
Çok teşekkürler. Sanırım paylaşmış olduğun kod component name göre arıyor değil mi ?  Hemen deniyorum.


Esistem , arkadaşım
emeğine sağlık güzel kod çok teşekkür ediyorum ama dbctrlgrid ile benden beklenen görselliği veremiyorum.  Görünen panellerin arkasına resimler eklenecek o yüzden onları kullanamıyorum.
(23-09-2017, Saat: 00:34)Lord_Ares Adlı Kullanıcıdan Alıntı: [ -> ]Meko arkadaşım,
Çok teşekkürler. Sanırım paylaşmış olduğun kod component name göre arıyor değil mi ?  Hemen deniyorum.


Esistem , arkadaşım
emeğine sağlık güzel kod çok teşekkür ediyorum ama dbctrlgrid ile benden beklenen görselliği veremiyorum.  Görünen panellerin arkasına resimler eklenecek o yüzden onları kullanamıyorum.

Aşağıdaki linkte konu cevaplandı;

http://www.delphican.com/deger-donduren-...46#pid9346
Ekran çözünürlüğünü için aşağıdaki örneği inceleyebilirsiniz;

ShowMessage('Screen Width = ' + inttostr(   Screen.Width   ) + #13#10 + 'Screen Height = ' + inttostr(   Screen.Height   ));
gridpanellayout componentini bi incelemeni önerrirm..
(27-09-2017, Saat: 17:18)mcuyan Adlı Kullanıcıdan Alıntı: [ -> ]gridpanellayout componentini bi incelemeni önerrirm..

Merhaba,
Sanırım @Lord_Ares uygulamayı VCL olarak geliştiriyor. Belirtmiş olduğunuz TGridLayout, FMX platformuna ait bir nesnedir.
(27-09-2017, Saat: 17:23)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: [ -> ]
(27-09-2017, Saat: 17:18)mcuyan Adlı Kullanıcıdan Alıntı: [ -> ]gridpanellayout componentini bi incelemeni önerrirm..

Merhaba,
Sanırım @Lord_Ares uygulamayı VCL olarak geliştiriyor. Belirtmiş olduğunuz TGridLayout, FMX platformuna ait bir nesnedir.

Evet. Yanlış görmüşüm. Pardon. Smile
oyun salonları için tombala programı yapılmak istenmiş, dertler aynı.

http://www.delphican.com/showthread.php?tid=3085