Sayfayı Yazdır | Pencereyi Kapat

dizayn hatası

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=932
Tarih: 06 Ocak 2025 Saat 13:22
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: dizayn hatası
Mesajı Yazan: kacar.nursena
Konu: dizayn hatası
Mesaj Tarihi: 13 Eylül 2024 Saat 17:15
kodumda 1.buton ve labellar olması gereken yere gelmiyor bide yeni buton eklediğimde öncekinin üstüne bindi nasıl düzeltebilirim ?

kod:var
  mainform: TCLForm;
  AtistirmaliklarPage: TclProPanel;
  Button: TClProButton;
  ProductID: Integer;
  ProductName: string;
  ProductPrice: Double;
  ProductImageURL: string;
  ProductQuery: TclSqlQuery;
  pricelabel, namelabel: TClProLabel;
  TopOffset, i, previousButtonTop, previousButtonLeft: Integer;

procedure SetupDatabaseConnection;
begin
  try
     Clomosy.DBSQLServerConnect('SQL Server', 'su-db.database.windows.net','dbAdmin','Azure1234','suDb', 1433);
    ShowMessage('Veritabanı bağlantısı başarıyla kuruldu!');
  except
    ShowMessage('Veritabanı bağlantısı kurulamadı: ');
  end;
end;

procedure LoadProductsToPage;
begin
  ProductQuery := TclSqlQuery.Create(nil);
  try
    ProductQuery.Connection := Clomosy.DBSQLServerConnection;
    ProductQuery.SQL.Text := 'SELECT ProductID, ProductName, ProductPrice, ProductImageURL FROM Products';
    
    try
      ProductQuery.Open;
    except
      ShowMessage('Ürün sorgusu açılamadı: ');
    end;

    previousButtonLeft := 10;  // İlk butonun sol kenardan uzaklığı
    previousButtonTop := 10;   // İlk butonun üst kenardan uzaklığı
    i := 0;

    while not ProductQuery.Eof do
    begin
      try
        ProductID := ProductQuery.FieldByName('ProductID').AsInteger;
        ProductName := ProductQuery.FieldByName('ProductName').AsString;
        ProductPrice := ProductQuery.FieldByName('ProductPrice').AsFloat;
        ProductImageURL := ProductQuery.FieldByName('ProductImageURL').AsString;

        // Yeni buton oluşturma
        Button := mainform.AddNewProButton(AtistirmaliklarPage, 'Button' + IntToStr(i), '');
        Inc(i); // i'yi 1 artır

        // Buton boyut ve pozisyon
        Button.Width := 150;
        Button.Height := 150;
        
        // Butonun yerleşimi (yatay ve dikey)
        if (ProductID mod 2 = 1) then
        begin
          // Tek butonlar, sol tarafa hizalanacak
          Button.Margins.Bottom := previousButtonTop; // Önceki butonun altına yerleştirmek için
          Button.Margins.Right := 0;  // Sol tarafa hizalanacak
          Button.Margins.Left := 10; 

          // Sonraki butonun üst mesafesini güncelle
          previousButtonTop := Button.Top + Button.Height + 40;
        end
        else
        begin
          // Çift butonlar, teklerin yanında yer alacak
          Button.Margins.Bottom := previousButtonTop;  // Önceki butonla aynı hizaya yerleştirmek için
          Button.Margins.Right := 300;  // Teklerin yanında olacak
          Button.Margins.Left := previousButtonLeft;

          // Sonraki butonun sol mesafesini güncelle
          previousButtonLeft := Button.Left + Button.Width + 20;
        end;

        // Ürün resmini butona ekleme
        if Assigned(mainform) then
          mainform.SetImage(Button, ProductImageURL);

        // Ürün adını göstermek için etiket oluşturma
        namelabel := mainform.AddNewProLabel(AtistirmaliklarPage, 'namelabel' + IntToStr(i), '');
        namelabel.Top := Button.Top + Button.Height + 5;  // Butonun hemen altında
        namelabel.Left := Button.Left;                    // Butonla hizalı
        namelabel.Text := ProductName;

        // Ürün fiyatını göstermek için etiket oluşturma
        pricelabel := mainform.AddNewProLabel(AtistirmaliklarPage, 'pricelabel' + IntToStr(i), '');
        pricelabel.Top := namelabel.Top + namelabel.Height + 5;  // Ürün adının altında
        pricelabel.Left := Button.Left;                          // Butonla hizalı
        pricelabel.Text := Format('Fiyat: %.2f TL', [ProductPrice]);

        ProductQuery.Next;
      except
        ShowMessage('Ürün bilgileri işlenirken hata: ');
      end;
    end;
  finally
    ProductQuery.Close;
    ProductQuery.Free;
  end;
end;

procedure AddProductPage;
begin
  try
    AtistirmaliklarPage := mainform.AddNewProPanel(mainform, 'AtistirmaliklarPage');
    if Assigned(AtistirmaliklarPage) then
    begin
      AtistirmaliklarPage.Align := alNone;  // Manuel hizalama
      AtistirmaliklarPage.Width := 600;     // Panel genişliği
      AtistirmaliklarPage.Height := 800;    // Panel yüksekliği
      AtistirmaliklarPage.Left := 50;       // Panelin sol kenardan uzaklığı
      AtistirmaliklarPage.Top := 50;        // Panelin üst kenardan uzaklığı
      AtistirmaliklarPage.Margins.Left := 10;
      AtistirmaliklarPage.Margins.Right := 10;
      AtistirmaliklarPage.Margins.Top := 5;
      AtistirmaliklarPage.Margins.Bottom := 10;
      AtistirmaliklarPage.clProSettings.BackgroundColor := clAlphaColor.clHexToColor('#ffffff');
      AtistirmaliklarPage.SetclProSettings(AtistirmaliklarPage.clProSettings);

      // Ürünleri sayfaya yükle
      try
        LoadProductsToPage;
      except
        ShowMessage('Ürünleri sayfaya yüklerken hata: ');
      end;
    end
    else
      ShowMessage('Atıştırmalıklar sayfası oluşturulamadı');
  except
    ShowMessage('Panel oluşturulurken hata: ');
  end;
end;

begin
  mainform := TCLForm.Create(nil);
  try
    mainform.SetFormColor('#CBEDD5', '', clGNone);
    SetupDatabaseConnection;
    try
      AddProductPage;
    except
      ShowMessage('Ana form çalıştırılırken hata: ');
    end;
    mainform.Run;
  except
    ShowMessage('Ana form çalıştırılırken hata: ');
  end;
end.





Cevaplar:
Mesajı Yazan: Developer
Mesaj Tarihi: 13 Eylül 2024 Saat 18:11
Merhaba Nursena,
Aşağıda yer alan linki inceleyebilir misin?
https://www.docs.clomosy.com/index.php/TclVertScrollBox" rel="nofollow - https://www.docs.clomosy.com/index.php/TclVertScrollBox



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net