Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - dizayn hatası
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

dizayn hatası

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
kacar.nursena Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 20 Ağustos 2024
Durum: Aktif Değil
Puanlar: 27
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı kacar.nursena Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: dizayn hatası
    Gönderim Zamanı: 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.


Yukarı Dön
Developer Açılır Kutu İzle
Forum Yöneticisi
Forum Yöneticisi


Kayıt Tarihi: 14 Haziran 2023
Durum: Aktif Değil
Puanlar: 354
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Developer Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 13 Eylül 2024 Saat 18:11
Merhaba Nursena,
Aşağıda yer alan linki inceleyebilir misin?
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,031 Saniyede Yüklendi.