PDA

View Full Version : Tlabel,Twincontrol



iamehsan56
شنبه 16 شهریور 1387, 13:23 عصر
سلام
من يه كدي گرفتم كه براي resize , move كنترلها به طور Runtime هست
اما روي بعضي از كنترلها كار نمي كنه . از جمله tlabel , timage .
اون بخشايي كه مشكل منه قرمزه .
در واقع تو ControlMouseDown ( كه يه procedure واسهonmousedown مربوط به كنترلهاس )كد زير نوشته شده .
وقتي واسه Tlabel استفاده مي كنم وارد If نمي شه . گويا sender كه label باشه از ونوع twincontrol نيست . به همين خاطر هم نمي شه handle اونو در آورد


if (chkPositionRunTime.Checked) AND (Sender is TWinControl) then
begin
inReposition:=True;
SetCapture(TWinControl(Sender).Handle);
GetCursorPos(oldPos);
end;
اين آدرس لينك اين كده
http://delphi.about.com/library/weekly/code/src110105.zip
لطفا راهنماييم كنيد

vcldeveloper
شنبه 16 شهریور 1387, 17:48 عصر
بله، چون کنترل هایی مثل TLabel پنجره مخصوص به خودشون ندارند، Handle مخصوص به خودشون هم ندارند. برای اینکه بیشتر متوجه موضوع بشید، راهنمای دلفی برای کلاس های TGraphicControl و TWinControl را مطالعه کنید.

iamehsan56
یک شنبه 17 شهریور 1387, 08:30 صبح
يعني از اين روش براي حركت و Resize شون نمي شه استفاده كرد

vcldeveloper
یک شنبه 17 شهریور 1387, 17:59 عصر
يعني از اين روش براي حركت و Resize شون نمي شه استفاده كرد
خیر، نمیشه.

net_ved
دوشنبه 18 شهریور 1387, 10:33 صبح
برای حل این مشکل بجای Label از کامپوننت StaticText در پالت Additional استفاده کن و برای عکس هم از یه Panel واسه زیرش استفاده کن ... حل شد؟

iamehsan56
سه شنبه 19 شهریور 1387, 10:02 صبح
ممنون .دوست عزيز . حل شد .