استئصال وعلاج مرض وراثي
#4
Photo 
القيت نظرة على الكود قمت بعض المحاولات ...
الكود التالي يعمل لاظهار النص في منتصف الخانات عموديا  و لكن يحتاج الى كثير من التنقيح لانه كما يقال الشيطان في التفاصيل
الكود يعمل و لكن لا ياخذ بعين الاعتبار نمط font لكل عمود اذا تم تحدده بشكل مستقل لكل عمود..
تعديل كود الدالة DrawCell
كود :
procedure TNewDBGrid.DrawCell(ACol, ARow: Longint; ARect: TRect;   AState: TGridDrawState); var   H:integer; begin   H := (DefaultRowHeight - Abs(Canvas.Font.Height)) div 2;   Canvas.MoveTo(ARect.Left + 2, ARect.Top  + H -3);   SetTextAlign(Canvas.Handle, TA_UPDATECP);   inherited;   SetTextAlign(Canvas.Handle, TA_NOUPDATECP); end;

[صورة: bd.png]



بالنسبة Edit 
يمكن استعمال EM_SETRECT للتحديد مساحة العمل المتاحة و هذا يتطلت انشاء المكون بخاصية 
mulitilines

كود :
TEdit2 = class(Vcl.StdCtrls.TEdit)   protected     procedure UpdateClientRect();     procedure CreateParams(var params:TCreateParams); override;     procedure CreateWnd(); override;     procedure WMSize(var Message: TWMSize); message WM_SIZE;   end; implementation { TEdit } procedure TEdit2.CreateParams(var params: TCreateParams); begin   inherited;   Params.Style := Params.Style                   or ES_MULTILINE; end; procedure TEdit2.CreateWnd; begin   inherited;   UpdateClientRect; end; procedure TEdit2.WMSize(var Message: TWMSize); begin   inherited;   UpdateClientRect(); end; procedure TEdit2.UpdateClientRect; var   R: TRect;   H, dlt:integer; begin   R := ClientRect;   H := Abs(Font.Height) * 120 div 100;   dlt := (R.Height - H) div 2;   R.Top := R.Top + dlt;   R.Height := H;   Perform(EM_SETRECT, 0, Longint(@R)); end;

[صورة: bd.png]


يجب التنبيه انه الكود على النحو   Canvas.Font.Height احيانا لايعمل اذا لم تكن font فعليا مستعملة في Canvas
[-] كل من 2 users say قال شكرا ل Ndagor على المشاركة المفيدة
  • kobayashi maru, Delphi4Us
الرد


الردود في هذا الموضوع
استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 16-11-2023, 06:40 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 17-11-2023, 10:56 AM
RE: استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 17-11-2023, 04:04 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Ndagor - 17-11-2023, 08:24 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 17-11-2023, 10:45 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 18-11-2023, 09:35 AM
RE: استئصال وعلاج مرض وراثي - بواسطة Ndagor - 18-11-2023, 12:14 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 18-11-2023, 03:31 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 18-11-2023, 07:13 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Ndagor - 18-11-2023, 09:32 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 19-11-2023, 10:22 AM
RE: استئصال وعلاج مرض وراثي - بواسطة Ndagor - 19-11-2023, 01:22 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 22-11-2023, 05:25 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Ndagor - 22-11-2023, 08:37 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 24-11-2023, 03:05 PM
RE: استئصال وعلاج مرض وراثي - بواسطة DAMOCLES - 24-11-2023, 04:30 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 24-11-2023, 07:08 PM
RE: استئصال وعلاج مرض وراثي - بواسطة DAMOCLES - 24-11-2023, 08:33 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 25-11-2023, 06:47 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Ndagor - 25-11-2023, 09:45 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 25-11-2023, 10:36 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 26-11-2023, 09:29 AM
RE: استئصال وعلاج مرض وراثي - بواسطة Ndagor - 26-11-2023, 01:52 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Ndagor - 26-11-2023, 08:29 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Delphi4Us - 01-12-2023, 12:14 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Ndagor - 07-12-2023, 07:47 PM
RE: استئصال وعلاج مرض وراثي - بواسطة Ndagor - 08-12-2023, 05:13 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم