Tüm Platformlar için Hızlı Uygulama Geliştirme Kitabı... Delphi
Ön Sipariş Talebinde Bulunan Üyelerimiz
Sipariş Talebinde Bulunan Üyelerimiz

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
ScrollBox hk
#21
(07-08-2018, Saat: 14:39)elixir84 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(26-03-2018, Saat: 17:15)mrmarman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlŞöyle basitinden bir örnek hazırladım sana. Yanlış anlamamışsam istediğin bu olduğunu değerlendiriyorum.


//Uses ExtCtrls; // veya Delphi XE için     vcl.ExtCtrls; 

Var
  ServerPanelleri : Array of TPanel;

procedure TForm1.PanelleriDuzenle();
Const
  iPad = 4;
Var
  aLeft, aTop : Integer;
  i : Integer;
begin
  aLeft := iPad;
  aTop  := iPad;
  for i := low(ServerPanelleri) to high(ServerPanelleri) do
  begin
    TPanel(ServerPanelleri[i]).Left := aLeft;
    TPanel(ServerPanelleri[i]).Top  := aTop;

    // Bir sonraki Panel için yer bakalım.
    Inc( aLeft, TPanel(ServerPanelleri[i]).Width + iPad );
    if (aLeft + TPanel(ServerPanelleri[i]).Width) > ScrollBox1.Width
    then begin
      aLeft := iPad;
      aTop  := aTop + TPanel(ServerPanelleri[i]).Height + iPad;
    end;
  end;
end;

procedure TForm1.YeniPanelEkle;
Var
  i      : Integer;
  SPanel : TPanel;
begin
  i := High( ServerPanelleri );
  // Yeni server için Array genişletmece...
  if i < 0 // hiç server tanımlı değil
    then i := 1
    else i := High( ServerPanelleri ) - Low( ServerPanelleri ) +2;

  SetLength( ServerPanelleri, i );
  TPanel(ServerPanelleri[i-1]) := TPanel.Create(self);
  With TPanel(ServerPanelleri[i-1]) do begin
    Parent := ScrollBox1;

    Width  := 100;
    Height := 50;
    Color  := clMaroon;
    ParentBackground := False;

  end;

  PanelleriDuzenle();
end;

procedure TForm1.ScrollBox1Resize(Sender: TObject);
begin
  PanelleriDuzenle();
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  YeniPanelEkle();
end;


mry4y1eevuk1crhlyiwf.gif

Sayfayı kapatmadan Panelleri yok etmek istersen nasıl yapacaz? Yani stok listesi veya masa listesi var yenilemek gerekiyor yada tekrar listelemek.

Create edilen bütün paneller bir (array) diziye ekleniyor. Döngüyle hepsini FreeAndNil edip, diziden düşmeniz lazım.
Cevapla
#22
@edo Küçük bir ayrıntıyı kaçırmışım "SetLength(Server Panelleri, 0 );"


var
i:integer;
begin
for i:=low(Serverpanelleri) to High(Serverpanelleri) do
begin
Serverpanelleri[i].free;
Serverpanelleri[i]:=nil;
end;
SetLength(ServerPanelleri, 0 );
end;
Cevapla
#23
(07-08-2018, Saat: 15:07)elixir84 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol@edo Küçük bir ayrıntıyı kaçırmışım "SetLength(Server Panelleri, 0 );"


var
i:integer;
begin
for i:=low(Serverpanelleri) to High(Serverpanelleri) do
begin
Serverpanelleri[i].free;
Serverpanelleri[i]:=nil;
end;
SetLength(ServerPanelleri, 0 );
end;

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol metodunu kullanabilirsin  Rolleyes

var
i:integer;
begin
for i:=low(Serverpanelleri) to High(Serverpanelleri) do
begin
   FreeAndNil(Serverpanelleri[i]);
end;
SetLength(ServerPanelleri, 0 );
end;
Cevapla
#24
Teşekkürler.
Cevapla
#25
(26-03-2018, Saat: 17:15)mrmarman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlŞöyle basitinden bir örnek hazırladım sana. Yanlış anlamamışsam istediğin bu olduğunu değerlendiriyorum.


//Uses ExtCtrls; // veya Delphi XE için     vcl.ExtCtrls; 

Var
  ServerPanelleri : Array of TPanel;

procedure TForm1.PanelleriDuzenle();
Const
  iPad = 4;
Var
  aLeft, aTop : Integer;
  i : Integer;
begin
  aLeft := iPad;
  aTop  := iPad;
  for i := low(ServerPanelleri) to high(ServerPanelleri) do
  begin
    TPanel(ServerPanelleri[i]).Left := aLeft;
    TPanel(ServerPanelleri[i]).Top  := aTop;

    // Bir sonraki Panel için yer bakalım.
    Inc( aLeft, TPanel(ServerPanelleri[i]).Width + iPad );
    if (aLeft + TPanel(ServerPanelleri[i]).Width) > ScrollBox1.Width
    then begin
      aLeft := iPad;
      aTop  := aTop + TPanel(ServerPanelleri[i]).Height + iPad;
    end;
  end;
end;

procedure TForm1.YeniPanelEkle;
Var
  i      : Integer;
  SPanel : TPanel;
begin
  i := High( ServerPanelleri );
  // Yeni server için Array genişletmece...
  if i < 0 // hiç server tanımlı değil
    then i := 1
    else i := High( ServerPanelleri ) - Low( ServerPanelleri ) +2;

  SetLength( ServerPanelleri, i );
  TPanel(ServerPanelleri[i-1]) := TPanel.Create(self);
  With TPanel(ServerPanelleri[i-1]) do begin
    Parent := ScrollBox1;

    Width  := 100;
    Height := 50;
    Color  := clMaroon;
    ParentBackground := False;

  end;

  PanelleriDuzenle();
end;

procedure TForm1.ScrollBox1Resize(Sender: TObject);
begin
  PanelleriDuzenle();
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  YeniPanelEkle();
end;


mry4y1eevuk1crhlyiwf.gif

Merhabalar,
Her panelin ustune bir 1 tane label eklemek istiyorum. ve label ustunde bit timer veya baska bir yapi uzerinden saat hesabi yapip anlik gostercek. Mesela panel1 de islemin bitmesine 3 dk 20 saniye kaldi yazacak panel2 nin ustunde islemin bitmesine 4 dk 10 saniye kaldi gibi... anlik islem durumlarini gosterecek bir ozellik nasil ekleyebilirim. Ayrica sure bitince panel rengi degisecek. uzerine tekrar tıklayınca renk degisip hesaplama yeniden baslatilacak.
Teşekkürler.
Cevapla
#26
(17-09-2018, Saat: 14:58)klavye Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhabalar,
Her panelin ustune bir 1 tane label eklemek istiyorum. ve label ustunde bit timer veya baska bir yapi uzerinden saat hesabi yapip anlik gostercek. Mesela panel1 de islemin bitmesine 3 dk 20 saniye kaldi yazacak panel2 nin ustunde islemin bitmesine 4 dk 10 saniye kaldi gibi... anlik islem durumlarini gosterecek bir ozellik nasil ekleyebilirim. Ayrica sure bitince panel rengi degisecek. uzerine tekrar tıklayınca renk degisip hesaplama yeniden baslatilacak.
Teşekkürler.

Konu başlığından çok sapmış oluyoruz. İleride arama yapanların ilgili konuları bulması zorlaşıyor. Bence en iyisi, yeni bir konu açıp sorunuzu orada sormanız.
There's no place like 127.0.0.1
WWW
Cevapla
#27
(17-09-2018, Saat: 16:26)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(17-09-2018, Saat: 14:58)klavye Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhabalar,
Her panelin ustune bir 1 tane label eklemek istiyorum. ve label ustunde bit timer veya baska bir yapi uzerinden saat hesabi yapip anlik gostercek. Mesela panel1 de islemin bitmesine 3 dk 20 saniye kaldi yazacak panel2 nin ustunde islemin bitmesine 4 dk 10 saniye kaldi gibi... anlik islem durumlarini gosterecek bir ozellik nasil ekleyebilirim. Ayrica sure bitince panel rengi degisecek. uzerine tekrar tıklayınca renk degisip hesaplama yeniden baslatilacak.
Teşekkürler.

Konu başlığından çok sapmış oluyoruz. İleride arama yapanların ilgili konuları bulması zorlaşıyor. Bence en iyisi, yeni bir konu açıp sorunuzu orada sormanız.

Uyarınız için teşekkür ederim @SimaWB.
@mrmarman hocamın örneğinin biraz daha geliştirilmiş şekilde devamı niteliginde hepsi bir arada olur diye düşünmüştüm. Hem derdimi anlatması da daha kolay oluyordu Smile
Cevapla
#28
(24-03-2018, Saat: 17:19)elixir84 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Oludv2owh8.jpg

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

İnşallah işini görür.

(01-11-2018, Saat: 16:08)iyarar Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,
Bu bahsettiğiniz işlemleri runtime button create yapmadan
TDbCtrlGrid ile çok rahatlıkla yapabilirsiniz.

İlgili dosya bulunamadı diyor tekrar yükleme imkanınız varmıdır
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  scrollbox'ta alfabetik sıralama arsl01 7 360 31-07-2018, Saat: 18:48
Son Yorum: arsl01



Konuyu Okuyanlar: 1 Ziyaretçi