PDA

View Full Version : شکل دادن به فرم



sima_gh7
سه شنبه 15 شهریور 1384, 10:09 صبح
چطور میشه در دلفی شکل فرم را به صورت یکی از اشکال هندسی (دایره , بیضی و...) درآورد ؟

Touska
سه شنبه 15 شهریور 1384, 10:22 صبح
با کامپوننتهای abc یا 1firstcalss میشه.

من نمی دونم چه علاقه ای به کامپوننت دارم.

m-khorsandi
سه شنبه 15 شهریور 1384, 11:17 صبح
درود
اگه خواستی خودت بنویسی میتونی از توابع زیر استفاده کنی:



CreateEllipticRgn
CreateEllipticRgnIndirect
CreatePolygonRgn
CreatePolyPolygonRgn
CreateRectRgn
CreateRectRgnIndirect
CreateRoundRectRgn


نمونه:


SetWindowRgn(Form1.Handle, CreateEllipticRGN(0, 0, Width, Height), True);

Naficy
سه شنبه 15 شهریور 1384, 15:30 عصر
یه چیزی بگم؟
بعد از ساختن یک Rgn با یکی از دستوراتی که گفتند، و بعد از اینکه کارتون باش تموم شد، باید اونو پاک کنید. به کمک دستور DeleteObject. (کاری که نمونه کدی که مثال زدند انجام نمی ده)

همه چیز در Help دلفی توضیح داده شده...

m-khorsandi
سه شنبه 15 شهریور 1384, 16:45 عصر
دوست عزیز،
همونطور که میبینی من مثالی در مورد توابعی که لیستشون رو نوشتم ، آوردم. شما هم بهتره به جای اینکه
نقش لاک غلط گیری رو بازی کنی یه مقدار در مورد چیزی که مینویسی توضیح بدی...

Naficy
پنج شنبه 17 شهریور 1384, 14:09 عصر
خواهشا از صحبت من نرنجید.
ببینید، گاهی جواب یک سوال را می دهیم، خب تا جایی که بشود توضیح می دهیم. اما گاهی قبلا حق مطلب ادا شده، فقط باید نکات کوچکی را به آن اضافه کرد.
اعتراف هم می کنم که فقط در حالتی بسیار بسیار نادر (موکدا بسیار نادر!!) کد نمونه مساله پیدا می کند. هرچند برخورد ضحیح با errorها از نکات مهم یک برنامه خوب است اما اصلا نیازی به بازی کردن نقش لاک غلطگیر نبود! می بخشید.

چشم. من هم توضیح بیشتر می دم اگر ایرادی دیدید، شما هم می توانید تذکر دهید:


procedure TForm1.FormCreate(Sender: TObject);
var MyRgn: HRgn;
begin
MyRgn := CreateEllipticRGN(0, 0, Width, Height);
if MyRgn <> 0 then begin // if it could not be created!
if not SetWindowRgn(Handle, MyRgn, True) then // if it could not be set on the window!
DeleteObject(MyRgn);
end;
end;