घर
Top.Mail.Ru Yandeks.Metrika
मंच: "मुख्य";
वर्तमान संग्रह: 2002.01.08;
डाउनलोड करें: [xml.tar.bz2];

नीचे

यह सरल कोड काम क्यों नहीं करता है ... इसी तरह की शाखाएँ खोजें


Kost   (2001-12-15 13:06) [0]

एक फॉर्म TForm1 है। BitBtn1 "प्रायोगिक बटन" पर रखा गया है।
एक इच्छा है, दूसरे बटन पर क्लिक करके - Button1 निम्नलिखित करने के लिए:
- PaintTo का उपयोग करते हुए बिटमैप के कैनवास पर एक BitBtn1 छवि बनाएं
- फॉर्म के कैनवास में प्राप्त बिटमैप को आउटपुट करता है

हासिल नहीं हुआ! BitBtn1 को बिटमैप में नहीं निकाला जाता है! क्यों! मैं कहां से हूं?

प्रक्रिया TForm1.FormCreate (प्रेषक: TObject);
शुरू करना
// एक बिटमैप बनाएँ
bmp: = TBitmap.Create;
bmp.Width: = 150;
bmp.Height: = 150;
अंत;

प्रक्रिया TForm1.Button1 क्लिक करें (प्रेषक: TObject);
शुरू करना
// जब आप बटन पर क्लिक करते हैं, तो बिटमैप के कैनवास पर BitBtn1 खींचें
BitBtn1.PaintTo (bmp.Canvas.Handle, 0, XNXX);
अमान्य; // फॉर्म को फिर से तैयार करने के लिए मजबूर करना
अंत;

प्रक्रिया TForm1.FormPaint (प्रेषक: TObject);
शुरू करना
// कैनवास पर बिटमैप फॉर्म प्रिंट करें
कैनवस.ड्रॉव (एक्सएनयूएमएक्स, बीएमपी);
अंत;



Song   (2001-12-15 22:18) [1]

А почему Вы:
1) рисуете канвас с помощью PaintTo? Можно напрямую задавать глиф через Canvas.Draw - так будет правильней.
2) перерисовываете форму? нужно всего лишь перерисовать тот контрол который вы обновили, т.е.
либо так:
With BitBtn1 Do
शुरू करो
यह अद्यतन करता है;
अमान्य;
अंत;

либо просто BitBtn1.RePaint;



Kost   (2001-12-16 12:25) [2]

Я этим примером хотел показать что в битмэп (точнее на канвас битмэпа) невозможно нарисовать TBitBtn (или TButton) с помощью PaintTo.
У WinControl"ов есть такая член-функция
WinControl.PaintTo(DC: HDC; X,Y:integer)
с помощью которой, якобы, можно изображение винконтрола нарисовать на любом канвасе. Я попытался нарисовать изображение кнопки (TBitBtn) на канвасе битмэпа. Не получается. Провел исследования с другими WinControl"ами, получается, например с TPanel. T.e. изображение панели можно, с помощью PaintTo перенести в битмэп. Изображение TBitBtn, повторю, почемуто этой функцией не рисуется в битмэп.
Т.е. эта функция для разных WinControl"ов работает как бог на душу положит.



Song   (2001-12-16 22:31) [3]

Я думаю, вся проблема не в PaintTo, а в DС (тип HDC), он в случае с TBitBtn не корректно указывается, т.е. система воозвращает неккоректный handle для канваса кнопки :((



पन्ने: 1 पूरी शाखा

मंच: "मुख्य";
वर्तमान संग्रह: 2002.01.08;
डाउनलोड करें: [xml.tar.bz2];

ऊपर









मेमोरी: 0.82 एमबी
समय: 0.035 c
14-22353
एक प्रकार का बाज़
2001-11-02 10:13
2002.01.08
मैं चौंक गया


7-22418
Mikle
2001-09-20 09:06
2002.01.08
तत्काल! प्रिंटर के बजाय COMP।


1-22080
Delphimun
2001-12-18 17:11
2002.01.08
संसाधन से कर्सर को कैसे लोड करें, और फिर इसे डिस्क पर सहेजें?


1-22167
कला
2001-12-15 20:56
2002.01.08
ऐसी है समस्या !!!


14-22337
अलेक्सेंद्र
2001-11-05 13:20
2002.01.08
प्रिंट सर्वर DP-101 (D-Link) और DOS के तहत मुद्रण





अफ्रीकी अल्बानियन अरबी भाषा अर्मेनियाई आज़रबाइजानी बस्क बेलारूसी बल्गेरियाई कैटलन सरलीकृत चीनी) चीनी पारंपरिक) क्रोएशियाई चेक डेनिश डच अंग्रेज़ी एस्तोनियावासी फिलिपिनो फिनिश फ्रेंच
गैलिशियन् जॉर्जियाई जर्मन यूनानी हाईटियन यहूदी हिंदी हंगरी आइसलैंड का इन्डोनेशियाई आयरिश इतालवी जापानी कोरियाई लात्वीयावासी लिथुआनियाई मेसीडोनियन मलायी मोलतिज़ नार्वेजियन
फ़ारसी पोलिश पुर्तगाली रोमानियाई रूसी सर्बियाई स्लोवाक स्लोवेनियाई स्पेनिश स्वाहिली स्वीडिश थाई तुर्की यूक्रेनी उर्दू वियतनामी वेल्श यहूदी बंगाली बोस्नियाई
सिबुआनो एस्पेरांतो गुजराती हौसा हमोंग ईग्बो जावानीस कन्नड़ खमेर लाओ लैटिन माओरी मराठी मंगोलियन नेपाली पंजाबी सोमाली तामिल तेलुगु योरूबा
ज़ुलु
Английский Французский Немецкий Итальянский Португальский Русский Испанский