ايران ويج

نسخه‌ی کامل: گروهی کار کردن روی ابجکت
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام
بنده میخواهم در برنامه دلفی روی ابجکتها گروهی کار کنم به طور مثال میخواهم ازedit1تا edit10 یک جا یک عمل را انجام دهم و تک تک آنها را ننویسم اگر کسی وی بی کار کرده معادل دستور with در وی بی

هر سری یه فکری داره
خب دلفی هم دستور withداره وهم میتونی این 9 تا از editها رو معادل 10 edit قرار بدی
lord_viper نوشته است:خب دلفی هم دستور withداره وهم میتونی این 9 تا از editها رو معادل  10 edit قرار بدی
با تشکر دستور with do را پیدا کردم ولی در مورد edit ها هر گاه میخوام نام انها را یکسان بدم که به صورت اریه ای در بیاید خطا میگیره و مثل وی بی نیست
ممنون میشم اگه راهنمایی ام کنی
راه حل 1

کد:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure EditChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  ArrayEdit: Array [0..9] of TEdit;
  
implementation

{$R *.dfm}

procedure TForm1.EditChange(Sender: TObject);
begin
ShowMessage('');
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=0 to 9 do
begin
  ArrayEdit[i]:=TEdit.Create(Self);
  ArrayEdit[i].Parent:=Self;
  ArrayEdit[i].Top:=i*10;
  ArrayEdit[i].Left:=i*10;
  ArrayEdit[i].Show;
  ArrayEdit[i].OnChange:=EditChange;
end;

end;

end.
کد:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

begin

end;

end;

procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
for i:=0 to ControlCount-1 do
  Case Controls[i].Tag of
    1: TEdit(Controls[i]).Text:='1';
    2: TEdit(Controls[i]).Text:='2';
    3: TEdit(Controls[i]).Text:='3';
  end;
end;

procedure TForm1.Edit1Click(Sender: TObject);
begin
  Case TEdit(Sender).Tag of
    1: TEdit(Sender).Text:='I';
    2: TEdit(Sender).Text:='II';
    3: TEdit(Sender).Text:='III';
  end;
end;

end.

کد:
object Form1: TForm1
  Left = 192
  Top = 114
  Width = 696
  Height = 480
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Edit1: TEdit
    Tag = 1
    Left = 536
    Top = 24
    Width = 121
    Height = 21
    TabOrder = 0
    Text = 'Edit1'
    OnClick = Edit1Click
  end
  object Edit2: TEdit
    Tag = 2
    Left = 536
    Top = 56
    Width = 121
    Height = 21
    TabOrder = 1
    Text = 'Edit2'
    OnClick = Edit1Click
  end
  object Edit3: TEdit
    Tag = 3
    Left = 536
    Top = 88
    Width = 121
    Height = 21
    TabOrder = 2
    Text = 'Edit3'
    OnClick = Edit1Click
  end
  object Button2: TButton
    Left = 568
    Top = 144
    Width = 75
    Height = 25
    Caption = 'Button2'
    TabOrder = 3
    OnClick = Button2Click
  end
end