PDA

View Full Version : مشکل با ارتفاع آیتم ListBox



mbshareat
یک شنبه 23 آبان 1389, 11:32 صبح
با سلام و عرض تسلیت
بنده یه ListBox دارم که Style اون رو برابر lbOwnerDrawVariable قرار دادم.:لبخندساده:
یه دکمه هم دارم که امکان تنظیم قلم رو به کاربر می ده.:لبخند:
من می خوام با تنظیم قلم ارتفاع آیتم توسط MeasureItem به تناسب قلم تنظیم بشه.:بامزه:
اما تو این رویداد نمی تونم متغیر عمومی LineHeight که از TextHeight متن بدست اومده استفاده کنم.
(ظاهرا هیچ متغیر عمومی رو هم نمی شناسه چون یه متغیر Boolean رو هم نشناخت:گیج:)
حتی نمی تونم تو رویداد کلیک دکمه قلم قلم ListBox یا canvas اون رو تنظیم کنم و تو MeasureItem ارتفاع قلم رو با TextHeight به دست بیارم و همیشه همون ارتفاع اولیه ثابت میمونه در حالیکه از هر راه هم که برم اشکالی نمی گیره.:افسرده:
ولی اگه Height رو توی رویداد MeasureItem با عدد و نه متغیر مقدار بدم کار می کنه!
کسی راهی بلده که من بتونم متناسب باقلم ارتفاع رو تنظیم کنم؟:متفکر:
این هم کد من که کار نکرد::عصبانی++:

var
Form1: TForm1;
LineHeight:Byte;
U:Boolean;
...
procedure TForm1.LinesListMeasureItem(Control: TWinControl; Index: Integer;
var Height: Integer);
begin
If U=true then ShowMessage(IntToStr(LineHeight));
Height:=LinesList.Canvas.TextHeight('ٌٍ');
end;
procedure TForm1.BitBtn6Click(Sender: TObject);
begin
If FontDialog.Execute then
Begin
LinesList.Canvas.Font.Name:=FontDialog.Font.Name;
LinesList.Canvas.Font.Size:=FontDialog.Font.Size;
LineHeight:=LinesList.Canvas.TextHeight('ٌٍ');
LinesList.Font.Name:=FontDialog.Font.Name;
LinesList.Font.Size:=FontDialog.Font.Size;
U:=true;
End;
end;