בית
Top.Mail.Ru Yandeks.Metrika
פורום: "ראשי";
ארכיון נוכחי: 2002.01.08;
הורדה: [xml.tar.bz2];

למטה

למה זה לא עובד קוד פשוט ... מצא סניפים דומים


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

יש טופס TForm1. BitBtn1 "כפתור ניסיוני" מונח עליו.
יש רצון, על ידי לחיצה על כפתור אחר - כפתור 1 לבצע את הפעולות הבאות:
- צייר תמונת BitBtn1 על הבד של מפת הסיביות באמצעות PaintTo
- פלט את מפת הסיביות שהתקבלה לבד הטופס

לא קיבל! BitBtn1 לא נמשך למפת הסיביות! למה! איפה אני צודק?

הליך TForm1.FormCreate (שולח: TObject);
להתחיל
// צור מפת סיביות
bmp: = TBitmap.Create;
bmp. רוחב: = 150;
bmp. גובה: = 150;
הסוף;

הליך TForm1.Button1Click (שולח: TObject);
להתחיל
// כשאתה לוחץ על הכפתור, צייר את BitBtn1 על הבד של מפת הסיביות
BitBtn1.PaintTo (bmp.Canvas.Handle, 0, 0);
לא תקף // כדי להכריח את הטופס מחדש
הסוף;

הליך TForm1.FormPaint (השולח: TObject);
להתחיל
// הדפיס את טופס מפת הסיביות על הבד
Canvas.Traw (0,0, bmp);
הסוף;



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

למה אתה:
1) לצייר בד עם PaintTo? אתה יכול להגדיר ישירות את הגליף דרך Canvas.Draw - זה יהיה נכון יותר.
2) צייר מחדש את הטופס? אתה רק צריך לצייר מחדש את הפקד שעידכנת, כלומר
או כך:
עם BitBtn1 עשה
להתחיל
תאריך עדכון
לא חוקי;
סוף;

או רק BitBtn1.RePaint;



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

את הדוגמא הזו רציתי להראות שבמפת הסיביות (ליתר דיוק, על הבד של מפת הסיביות) אי אפשר לצייר TBitBtn (או TButton) באמצעות PaintTo.
ל- WinControl פונקצית חברות כזו
WinControl.PaintTo (DC: HDC; X, Y: מספר שלם)
בעזרתו, לכאורה, תוכלו לצייר תמונה של WinControl על כל קנבס. ניסיתי לצייר תמונת כפתור (TBitBtn) על הבד של מפת הסיביות. זה לא מסתדר. ערכו מחקר עם WinControls אחרים, מסתבר למשל עם TPanel. ניתן להעביר את תמונת הפאנל למפת הסיביות באמצעות PaintTo. תמונת TBitBtn, אני חוזר, מסיבה כלשהי פונקציה זו אינה נמשכת למפת הסיביות.
כלומר פונקציה זו עבור WinControls שונים פועלת כפי שאלוהים מניח את הנפש.



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

אני חושב שהבעיה כולה לא נמצאת ב- PaintTo, אלא ב- DC (סוג HDC), היא לא מצוינת כראוי במקרה של TBitBtn, כלומר המערכת מחזירה ידית שגויה עבור בד הכפתור: ((



עמודים: 1 ענף שלם

פורום: "ראשי";
ארכיון נוכחי: 2002.01.08;
הורדה: [xml.tar.bz2];

למעלה





זיכרון: 0.55 MB
זמן: 0.036 c
4-22504
בסה
2001-09-11 11:11
2002.01.08
Winecec neponyatka


1-22087
Serg5
2001-12-19 15:14
2002.01.08
אנשים, שאלה די קלה! קישור לנוהל במילה אחת.


3-21980
אלכסנדר
2001-12-05 13:26
2002.01.08
כיצד ליצור מחרוזת חיבור TADOConnection בתוכנית?


1-22082
צ'אק
2001-12-19 10:07
2002.01.08
כיצד להעביר פרמטר פונקציה ב- DLL


1-22130
Катерина
2001-12-20 07:37
2002.01.08
עזור לאנשים טובים





אפריקאנס אלבני ערבי אַרְמֶנִי אזרביג'אן הבסקים בלארוסית בולגרי קטלאנית הסיני (פשוט) סינית (מסורתית) קרואטית צ'כיה דני הולנדי אנגלית אסטוני פיליפיני פיני צרפתית
גליציה גאורגיה גרמני יווני קריאולית האיטית עברי הינדי הונגרי איסלנדי אינדונזי אירי איטלקי יפני קוריאני לטבי ליטאי מקדוניה מלאית מלטזית נורבגי
פרסי פולני פורטוגזי רומנית רוסי סרבית סלובקי סלובני ספרדי סוואהילית שבדי תאילנדי תורכי אוקראיני אורדו ויאטנמית וולשית יידיש בנגלית בוסנית
קבואנו אספרנטו גוג'ראטית האוסה המונג איגבו יָאוָנִי קנאדה לחמר לאו הלטינית מאורים מרתי מונגולי נפאלית פונג'בית סומליה טמילית טלוגו יורובה
זולו
Английский Французский Немецкий Итальянский Португальский Русский Испанский