Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Panel ve çözünürlük
#1
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
Cevapla
#2
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;
Cevapla
#3
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.
WWW
Cevapla
#4
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.
Cevapla
#5
(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
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#6
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   ));
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#7
gridpanellayout componentini bi incelemeni önerrirm..
Cevapla
#8
(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.
DelphiCan'dır!
Cevapla
#9
(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
Cevapla
#10
oyun salonları için tombala programı yapılmak istenmiş, dertler aynı.

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


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Label leri Panel içersinde sıralama mersoy 2 572 10-08-2024, Saat: 03:51
Son Yorum: mersoy
  Panel rengi Husv 3 2.012 20-12-2021, Saat: 20:48
Son Yorum: engerex
  Çözünürlük sorunu klavye 17 15.974 23-12-2020, Saat: 08:44
Son Yorum: emozgun
  panel görüntüsünü alıp veritabanına kaydetme erdogan 4 3.638 03-05-2020, Saat: 13:39
Son Yorum: erdogan
  Form yada panel içinde taşıma info@guzelceker.com 2 2.772 13-12-2019, Saat: 15:15
Son Yorum: ozcanm



Konuyu Okuyanlar: 1 Ziyaretçi