आपकी समस्या यह है कि स्टाइल परिवर्तन की वजह से फॉर्म को फिर से बनाया जा रहा है और इसकी शीर्ष शैली को खोने के बाद से वीसीएल को इसका कोई ज्ञान नहीं है। या तो उपयोग:
FormStyle := fsStayOnTop;
या CreateWindowHandle
तो ओवरराइड कि SetWindowPos
हर बार प्रपत्र निर्मित है कहा जाता है:
type
TForm1 = class(TForm)
..
protected
procedure CreateWindowHandle(const Params: TCreateParams); override;
..
procedure TForm1.CreateWindowHandle(const Params: TCreateParams);
begin
inherited;
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE);
end;
Btw, मैं नकल नहीं कर सकता है "unsetting/पुनः स्थापित करने नहीं है इसे ठीक करें "। मेरे परीक्षणों के साथ, SetWindowPos
पर कॉल करने से इसे फिर से तय किया गया।
स्रोत
2012-05-10 00:35:23
एक बग की तरह लगता है। आपको इसकी रिपोर्ट [क्यूसी] (http://qc.embarcadero.com/) पर करनी चाहिए। –
@MasonWheeler यह एक बग नहीं है, इस तरह vcl शैलियों का काम करता है, हर बार जब आप vcl शैली बदलते हैं तो रूपों का संभाल फिर से बनाया जाता है। – RRUZ
@RRUZ: ओपी के मूल विवरण के आधार पर, विशेषता को फिर से सेट करना शैलियों के साथ काम नहीं करता है, यह निश्चित रूप से एक बग होगा यदि यह सच था। (वास्तव में क्या हो रहा था के बेहतर स्पष्टीकरण के लिए एसएआरएटीएसी के जवाब पर ओपी की टिप्पणी देखें।) –