09-01-2018, 02:31 PM
السلام عليكم
الدالة Coalesce تشبه الموجودة في الـ FireBird انا عن نفسي استخدمها بكثرة
الدالة عملها بسيط تمرر قيمتين اذا كانت القيمة في البرامتر الاول null تعيد لك القيمة في البرامتر الثاني
اذا كانت القيمة Null تعيد لك القيمة التي ترغب فيها مثال من برنامجي GestPDV
نافذة ادخال كلمة المرور
مثال عن الاستخدام
الدالة 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;
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج


![[-]](https://delphi4arab.net/forum/D4A2020/collapse.png)