delphi useful functions دوال و إجراءات دلفي مفيدة
#10
السلام عليكم
الدالة Coalesce تشبه الموجودة في الـ FireBird انا عن نفسي استخدمها بكثرة
الدالة عملها بسيط تمرر قيمتين اذا كانت القيمة في البرامتر الاول null تعيد لك القيمة في البرامتر الثاني

PHP كود :
uses System.Variants;

function 
Coalesce(Value1: Variant; Value2: Variant): Variant;
begin
 if not VarIsNull
(Value1) then
   Result 
:= Value1
 else
   Result 
:= Value2
end
; 


اذا كانت القيمة Null تعيد لك القيمة التي ترغب فيها  مثال من برنامجي GestPDV

PHP كود :
edtCredit.Value := Coalesce(frmComptoir.cdsCreditTOTAL.Value, 0); 
نافذة ادخال كلمة المرور
PHP كود :
unit Unit2;

interface


uses
  Vcl
.Graphics, Winapi.Windows, Vcl.Forms, Vcl.StdCtrls, Vcl.Controls;

function 
InputBoxPass(const ACaption, APrompt, ADefault: string): string;
function 
InputSenha(const ACaption, APrompt: string; var Value: string): Boolean;
function 
GetAveCharSize(Canvas: TCanvas): TPoint;

implementation

function GetAveCharSize(Canvas: TCanvas): TPoint;
var
  I: Integer;
  Buffer: array[0..51] of Char;
begin
  
for I := 0 to 25 do Buffer[I] := Chr(I + Ord('A'));
  for I := 0 to 25 do Buffer[I + 26] := Chr(I + Ord('a'));
  GetTextExtentPoint(Canvas.Handle, Buffer, 52, TSize(Result));
  Result.X := Result.X div 52;
end;

function 
InputBoxPass(const ACaption, APrompt, ADefault: string): string;
begin
  Result 
:= ADefault;
  InputSenha(ACaption, APrompt, Result);
end;

function 
InputSenha(const ACaption, APrompt: string;
  var Value: string): Boolean;
var
  Form: TForm;
  Prompt: TLabel;
  Edit: TEdit;
  DialogUnits: TPoint;
  ButtonTop, ButtonWidth, ButtonHeight: Integer;
begin
  Result 
:= False;
  Form := TForm.Create(Application);
  with Form do
  try
    Canvas.Font := Font;
    DialogUnits := GetAveCharSize(Canvas);
    BorderStyle := bsDialog;
    Caption := ACaption;
    ClientWidth := MulDiv(180, DialogUnits.X, 4);
    ClientHeight := MulDiv(63, DialogUnits.Y, 8);
    Position := poMainformcenter;
    Prompt := TLabel.Create(Form);
    with Prompt do
    begin
      Parent 
:= Form;
      AutoSize := True;
      Left := MulDiv(8, DialogUnits.X, 4);
      Top :=  MulDiv(8, DialogUnits.Y, 8);
      Caption := APrompt;
    end;
    Edit := TEdit.Create(Form);
    with Edit do
    begin
      Parent 
:= Form;
      Left := Prompt.Left;
      Top := MulDiv(19, DialogUnits.Y, 8);
      Width := MulDiv(164, DialogUnits.X, 4);
      {} MaxLength := 255;
      {} Passwordchar := '*';
      {} Font.Color := clBlue;
      Text := Value;
      SelectAll;
    end;
    ButtonTop := MulDiv(41, DialogUnits.Y, 8);
    ButtonWidth := MulDiv(50, DialogUnits.X, 4);
    ButtonHeight := MulDiv(14, DialogUnits.Y, 8);
    with TButton.Create(Form) do
    begin
      Parent 
:= Form;
      Caption := 'Ok';
      ModalResult := mrOk;
      Default := True;
      SetBounds(MulDiv(38, DialogUnits.X, 4), ButtonTop, ButtonWidth, ButtonHeight);
    end;
    with TButton.Create(Form) do
    begin
      Parent 
:= Form;
      Caption := 'Annuler';
      ModalResult := mrCancel;
      Cancel := True;
      SetBounds(MulDiv(92, DialogUnits.X, 4), ButtonTop, ButtonWidth,ButtonHeight);
    end;
    if ShowModal = mrOk then
    begin
    Value 
:= Edit.Text;
    Result := True;
    end;
  finally
    Form.Free;
  end;
end;

end. 
مثال عن الاستخدام

PHP كود :
  Str := InputBoxPass('fenêtre mot de passe', 'Mot de passe : ', '*******');

  if Str = '*******' then Exit; 
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
[-] كل من 2 users say قال شكرا ل S.FATEH على المشاركة المفيدة
  • rahiche, محمد عبد العزيز
الرد


الردود في هذا الموضوع
RE: delphi useful functions دوال و إجراءات دلفي مفيدة - بواسطة S.FATEH - 09-01-2018, 02:31 PM

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


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