13-07-2017, Saat: 00:08
(12-07-2017, Saat: 17:07)yhackup Adlı Kullanıcıdan Alıntı: Merhabalar,
Bu tip bir panel yapmak istiyorum, Listview düşündüm, Scroolbox koyup içerisin nesneleri create edeyim dedim ama kafamda oturtamadım.
Ücretsiz önerilerinizi bekliyorum
Eskiden bir projemde alt alta olmak şartı ile veritabanın da bulunan kayıtları panel ile listelemek istemiştim. Kendi projeme uyarlı bir biçimde yazmış olduğum bir fonksiyon mevcut. Fikir vermesi amacıyla;
procedure TbiMainMenu.ProjeYenile(SQLSorgu: String);
var
aquery, aquerya: TUniQuery;
I, I2: Integer;
Panel: TbsSkinPanel;
Baslik, ProjeSahibi, Dil, Kisi, Tarih, ID: TbsSkinLabel;
Katil: TbsSkinButton;
ScrollPanel: TbsSkinScrollPanel;
begin
projeler.Close;
projeler.SQL.Text := SQLSorgu;
projeler.Open;
projeler.Active := True;
for I2 := biMainMenu.ComponentCount - 1 downto 0 do
begin
if biMainMenu.Components[I2] is TbsSkinScrollPanel then
biMainMenu.Components[I2].Destroy;
end;
ScrollPanel := TbsSkinScrollPanel.Create(Self);
ScrollPanel.SkinData := BiLogin.bsSkinData1;
ScrollPanel.Parent := biMainMenu;
ScrollPanel.Visible := False;
// ScrollPanel.ScrollType := stHorizontal;
// ScrollPanel.ScrollOffset := 100;
// ScrollPanel.ScrollTimerInterval := 100;
ScrollPanel.Top := 47;
ScrollPanel.Width := 617;
ScrollPanel.Left := 381;
ScrollPanel.Height := 477;
ScrollPanel.ScrollType := stVertical;
ScrollPanel.Name := 'bsSkinScrollPanel1';
ScrollPanel.Visible := True;
projeler.first;
while not projeler.Eof do
begin
for I := 0 to projeler.RecordCount - 1 do
begin
Panel := TbsSkinPanel.Create(self);
Panel.Parent := ScrollPanel;
Panel.Visible := False;
Panel.SkinData := BiLogin.bsSkinData1;
Panel.TransparentMode := True;
Panel.Name := 'Panel'+IntToStr(I);
Panel.BorderStyle := bvRaised;
Panel.Top := 16 + I * 140;
Panel.Left := 16;
Panel.Height := 130;
Panel.Width := 585;
Baslik := TbsSkinLabel.Create(self);
Baslik.Parent := Panel;
Baslik.Visible := False;
Baslik.SkinData := BiLogin.bsSkinData1;
Baslik.Caption := projeler.FieldByName('BASLIK').AsString;
Baslik.UseSkinSize := False;
Baslik.UseSkinFont := False;
Baslik.DefaultFont.Style := [fsBold];
Baslik.DefaultFont.Size := 10;
Baslik.Left := 14;
Baslik.Top := 11;
Baslik.Width := 529;
Baslik.Height := 21;
Baslik.Visible := True;
ProjeSahibi := TbsSkinLabel.Create(self);
ProjeSahibi.Parent := Panel;
ProjeSahibi.Visible := False;
ProjeSahibi.SkinData := BiLogin.bsSkinData1;
aquery := TUniQuery.Create(nil);
aquery.Connection := BiLogin.UniConnection1;
aquery.Close;
aquery.SQL.Text := 'select * from bilogin where ID='+projeler.FieldByName('SAHIPID').AsString;
aquery.Open;
aquery.Active := True;
ProjeSahibi.Caption := 'Proje Sahibi: '+aquery.FieldByName('ADSOYAD').AsString;
ProjeSahibi.Left := 16;
ProjeSahibi.Top := 28;
ProjeSahibi.Width := 529;
ProjeSahibi.Height := 21;
ProjeSahibi.Visible := True;
Dil := TbsSkinLabel.Create(self);
Dil.Parent := Panel;
Dil.Visible := False;
Dil.SkinData := BiLogin.bsSkinData1;
Dil.Caption := 'Proje Dili: '+projeler.FieldByName('DIL').AsString;
Dil.Left := 16;
Dil.Top := 46;
Dil.Width := 529;
Dil.Height := 21;
Dil.Visible := True;
ID := TbsSkinLabel.Create(self);
ID.Parent := Panel;
ID.Visible := False;
ID.SkinData := BiLogin.bsSkinData1;
ID.Caption := projeler.FieldByName('ID').AsString;
ID.Left := 16;
ID.Top := 46;
ID.Width := 529;
ID.Height := 21;;
Kisi := TbsSkinLabel.Create(self);
Kisi.Parent := Panel;
Kisi.Visible := False;
Kisi.SkinData := BiLogin.bsSkinData1;
Kisi.Caption := 'Proje Katılım Sayısı: '+IntToStr(projeler.FieldByName('KISI').AsInteger);
Kisi.Left := 16;
Kisi.Top := 63;
Kisi.Width := 529;
Kisi.Height := 21;
Kisi.Visible := True;
Tarih := TbsSkinLabel.Create(self);
Tarih.Parent := Panel;
Tarih.Visible := False;
Tarih.SkinData := BiLogin.bsSkinData1;
Tarih.Caption := 'Proje Başlangıç Tarihi: '+DateToStr(projeler.FieldByName('TARIH').AsDateTime);
Tarih.Left := 16;
Tarih.Top := 81;
Tarih.Width := 529;
Tarih.Height := 21;
Tarih.Visible := False;
Katil := TbsSkinButton.Create(self);
Katil.Parent := Panel;
Katil.Visible := False;
Katil.SkinData := BiLogin.bsSkinData1;
Katil.UseSkinSize := False;
Katil.CanFocused := True;
Katil.TabStop := True;
Katil.Name := 'B'+IntToStr(projeler.FieldByName('ID').AsInteger);
Katil.Caption := 'Ayrıntılar';
Katil.Top := 90;
Katil.Width := 75;
Katil.Height := 35;
Katil.Left := 480;
Katil.UseSkinSize := False;
Katil.CanFocused := False;
Katil.OnClick := KatilButon;
Katil.Visible := True;
Panel.Visible := True;
projeler.Next;
end;
end;
Saygılarımla,
İyi çalışmalar.




