Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Button Renk sorunu
#2
(15-05-2026, Saat: 00:35)CesuR Adlı Kullanıcıdan Alıntı: VCL uygulamalarda speedbutton gibi bileşenlerin neden propertisinde color rengi yok anlamış değilim. Formdaki nesnelerin renklerini Delphi 7 de ne güzel basitçe değiştirebiliyorduk.  Rad Studio ise style desinger koymuş resmen ayrı bir dil oda. Arkadaş kolaylık yapacaklarına zorluk çıkarmışlar resmen..

1) VCL kontrolleri tamamen MSWindows işletim sistemi kontrollerine dayanır, bu nedenle varsayılan olarak Object Pascal (Delphi) nesneleri değil, yalnızca orijinal işletim sistemi kontrollerini paketleyen bir "sarmalayıcı"dır. Stiller ve diğer "tuval" özellikleri kısıtlanmadığı ve serbestçe kullanılabildiği Delphi'de oluşturulan kontrollerin aksine.

2) Varsayılan olarak, Delphi sistemin stilini yakalamaya ve bunu kendi avantajına kullanmaya çalışır, ancak yerel MSWindows kontrolleri için son söz genellikle MSWindows'a aittir ve kullanıcının ekranında efekt ve renk "karnavalı" oluşturmaktan kaçınmak için kuralları katıdır.

3) Bununla birlikte, tüm TControl'ler için, temelde kontrolleri yeniden oluşturmanız veya Delphi temel sınıfında özel bir teknik kullanarak ortak davranışını yakalamanız veya değiştirmeniz gerekir.

4) Bunu yapmanın daha kolay bir yolu, örneğin TButton gibi standart sınıfa dayalı yeni bir sınıf (veya bileşen) oluşturmak ve bileşen penceresinin işletim sisteminden almayı beklediği yöntemleri veya mesajları değiştirmektir. Bu şekilde, bileşenin veya nesnenin davranışını değiştirebilirsiniz. Ancak, bunun kolay olmadığını hatırlatmalıyım, çünkü bileşene her zaman düzinelerce veya yüzlerce mesaj geliyor ve son olarak, Delphi stil yöneticisi, MSWindows, Linux, Android, macOS vb. işletim sisteminin dayattığı kurallara uymaya çalışıyor...

5) TButton'larla ilgili sorununuzu çözmek için, aşağıdaki gibi bazı yöntemlerin davranışını düzenleyebilir veya değiştirebilirsiniz:

private
{ Mesaj Kesicileri }

  private
    { Interceptadores de Mensagem }
    procedure CNDrawItem( var Message: TWMDrawItem ); message CN_DRAWITEM;
    procedure WMEraseBkgnd( var Message: TWMEraseBkgnd ); message WM_ERASEBKGND;
    procedure CMMouseEnter( var Message: TMessage ); message CM_MOUSEENTER;
    procedure CMMouseLeave( var Message: TMessage ); message CM_MOUSELEAVE;
    procedure WMSize( var Message: TWMSize ); message WM_SIZE;


korumalı
procedure CreateParams( var Params: TCreateParams ); override;
procedure SetButtonStyle( ADefault: Boolean ); override;

6) Bu şekilde, SetButtonStyle(...) yöntemini "sessize" edebilirsiniz, yani sınıftaki temel işlevi olmadan: düğmeyi biçimlendirmek!!!

7) Düğmenin tuvaline kendi stilinizi çizmek için yapabileceğiniz bir şey şöyledir. Başlangıçta, düğmeyi şu parametrelerle oluşturursunuz:

{ Win32 Mesajları }

procedure TBlueButton.CreateParams( var Params: TCreateParams );
begin
  inherited CreateParams( Params );
  Params.Style := Params.Style or BS_OWNERDRAW;
end;


procedure TBlueButton.SetButtonStyle( ADefault: Boolean );
begin
  // VCL'yi sessize alır
end;

8) Şimdi, düğmeyi istediğiniz gibi biçimlendirmek için yukarıdaki diğer yöntemleri kullanabilirsiniz: renk, kenarlıklar vb...

9) Örneğe bakın:


SOURCE CODE FULL


Ek Dosyalar Resimler
   
MSWindows, AndroidRAD Studio 13 Florence ve kafamda bir fikir  Tongue  
WWW
Cevapla


Bu Konudaki Yorumlar
Button Renk sorunu - Yazar: CesuR - 15-05-2026, Saat: 00:35
Cvp: Button Renk sorunu - Yazar: emailx45 - 16-05-2026, Saat: 05:53
Cvp: Button Renk sorunu - Yazar: CesuR - 19-05-2026, Saat: 12:46
Cvp: Button Renk sorunu - Yazar: emailx45 - 21-05-2026, Saat: 04:29

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Win 11 ve Delphi 7 Minimize sorunu. enigma 7 550 11-02-2026, Saat: 10:27
Son Yorum: RAD Coder
  Delphi SLL kullanım sorunu Bay_Y 12 1.331 22-12-2025, Saat: 18:11
Son Yorum: Bay_Y
  CxGrid Türkçe karakter sorunu mur93 1 362 12-11-2025, Saat: 09:22
Son Yorum: cinarbil
Exclamation Ftp gönderilen dosyada tr karakter sorunu forumcuali 7 3.495 01-05-2025, Saat: 02:26
Son Yorum: m_ekici
  Java Script ile sayfayı kapatma sorunu MEK 2 1.226 01-03-2025, Saat: 23:16
Son Yorum: mkysoft



Konuyu Okuyanlar: 1 Ziyaretçi