05-03-2020, 07:36 PM
(05-03-2020, 06:18 PM)S.FATEH كتب : السلام عليكم
بالنسبة للـ Sender
Parent, Sender,Owner, ControlCount, ComponentCount
هذا حل اخر باستخدام TStringList لم اجرب كثيرا عليه يمكنك تعديله بما يناسبك
PHP كود :unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
Button1: TButton;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
OrderByClause: TStringList;
S: string;
function BuildSql(ASQl: string): string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TForm1.BuildSql(ASQl: string): string;
var
I: Integer;
begin
if OrderByClause.Count = 0 then
begin
Exit;
S := '';
end;
S := 'order by ';
I := 0;
while OrderByClause.Count - 1 <> I do
begin
S := S + OrderByClause[I] + ', ';
Inc(I);
end;
S := S + OrderByClause[OrderByClause.Count - 1];
Result := ASQl + ' ' + S;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := BuildSql('select from table');
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
var
CheckBoxComponent: TCheckBox;
begin
CheckBoxComponent := TCheckBox(Sender);
if CheckBoxComponent.Checked then
OrderByClause.Add(CheckBoxComponent.Caption)
else
OrderByClause.Delete(OrderByClause.IndexOf(CheckBoxComponent.Caption));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
OrderByClause := TStringList.Create;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
OrderByClause.Free;
end;
end.
جزاك الله خير
جاري التجربه


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