freeman35 yazdı: ↑25 Şub 2020 11:17
"btnMASA.Info2:=Self.Tag;"
tag ı nerde neye eşitliyorsun? tbutton class ında Info2 diye bir property mi var?
info2 yok hocam tüm kod aşağıdaki gibi,
asıl yapmak istediğim butonlar oluşturup x butonun adını rengini değiştirmek ve butonların onclik olayını çalıştırmak.
Kod: Tümünü seç
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels,
cxLookAndFeelPainters, cxStyles, cxCustomData, cxFilter, cxData,
cxDataStorage, cxEdit, cxNavigator, dxDateRanges, Data.DB, cxDBData,
Vcl.StdCtrls, Vcl.Mask, Vcl.DBCtrls, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxGridCustomView, cxGrid,
DBAccess, Uni, SQLServerUniProvider, UniProvider, ODBCUniProvider,
AccessUniProvider, MemDS, Vcl.ExtCtrls, Vcl.Grids, Vcl.DBGrids;
type
TForm1 = class(TForm)
srcQRY_SIPARISLER: TUniDataSource;
QRY_RS_MASALAR: TUniQuery;
AccessUniProvider1: TAccessUniProvider;
SQLServerUniProvider1: TSQLServerUniProvider;
DB: TUniConnection;
Button1: TButton;
Button2: TButton;
FlowPanel1: TFlowPanel;
Button3: TButton;
DBGrid1: TDBGrid;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
type
TButton = class(Vcl.StdCtrls.TButton)
private
FBilgi: integer;
public
property Bilgi: integer read FBilgi write FBilgi;
end;
private
{ Private declarations }
procedure OnMasaClick(Sender: TObject);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
MASA: Integer;
btnMASA: TButton;
begin
for MASA := 1 to QRY_RS_MASALAR.RecordCount do
begin
btnMASA := TButton.Create(FlowPanel1);
btnMASA.Parent := FlowPanel1;
btnMASA.Caption := QRY_RS_MASALAR.FieldByName('MASA_ADI').Text;
btnMASA.Height := 100;
btnMASA.Width := 100;
btnMASA.Bilgi:=Self.Tag;
btnMASA.OnClick:=OnMasaClick;
Self.Tag:=Self.Tag + 1;
QRY_RS_MASALAR.Next;
end;
end;
procedure TForm1.OnMasaClick(Sender: TObject);
var
i:integer;
Begin
if Sender is TButton then
Caption:= TButton(Sender).Bilgi.ToString;
for i := 0 to ComponentCount-1 do
begin
if (Components[i] is TButton) AND (TButton(Components[i]).Tag=10) Then
Begin
TButton( Components[i]).Caption :='BtnNamexx';
TButton( Components[i]).Color :=clGreen;
// TButton( Components[i]).Free; // Silmek için..
End;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
QRY_RS_MASALAR.Open;
QRY_RS_MASALAR.Refresh;
end;
procedure TForm1.Button3Click(Sender: TObject);
Begin
TButton(Components).Free;
end.