2010-12-02 14 views
5

के लिए पृष्ठभूमि छवि कैसे सेट करें मेरे पास संपादन बॉक्स पृष्ठभूमि के लिए एक छवि कैसे हो सकती है?संपादन (डेल्फी)

उत्तर

13

यह वास्तव में बहुत संभव है। अपने रूप में,

private 
    { Private declarations } 
    FBitmap: TBitmap; 
    FBrush: HBRUSH; 
protected 
    procedure WndProc(var Message: TMessage); override;  

को परिभाषित करने और कर

procedure TForm1.FormCreate(Sender: TObject); 
begin 
    FBitmap := TBitmap.Create; 
    FBitmap.LoadFromFile('C:\Users\Andreas Rejbrand\Pictures\AS20Utv.bmp'); 
    FBrush := 0; 
    FBrush := CreatePatternBrush(FBitmap.Handle); 
end; 

और

procedure TForm1.WndProc(var Message: TMessage); 
begin 
    inherited; 
    case Message.Msg of 
    WM_CTLCOLOREDIT, WM_CTLCOLORSTATIC: 
     if (Message.LParam = Edit1.Handle) and (FBrush <> 0) then 
     begin 
     SetBkMode(Message.WParam, TRANSPARENT); 
     Message.Result := FBrush; 
     end; 
    end; 
end; 

बेशक आप अपने खुद के का एक घटक में इस लपेट कर सकते हैं, TEditEx का कहना है। अगर मुझे समय मिल जाए, तो मैं ऐसा कर सकता हूं। (और, नोटिस नहीं एक तीसरी पार्टी कंपनी से एक महंगी (और शायद नहीं है कि उच्च गुणवत्ता वाले) घटक पैक खरीदने के लिए की जरूरत है कि।)

Custom edit background http://privat.rejbrand.se/editbkg.png

+0

ऐसा क्यों downvoted किया गया था? –

+2

क्यों WM_CTLCOLOREDIT? नियंत्रण अक्षम होने पर इसे कॉल नहीं किया जाएगा। WM_ERASEBACKGROUND और WM_PRINTCLIENT क्यों नहीं? –

+0

+1 क्योंकि किसी ने एक कामकाजी कोड के लिए मतदान किया है! यह – VibeeshanRC