PDA

View Full Version : StringGrid پویا



mohsenrahx
چهارشنبه 03 بهمن 1386, 17:53 عصر
سلام
من در برنامه ای که می نویسم حتما باید از آرایه ها کمک بگیرم و چون stringgride این خواسته من رو بصورت قابل دیدن در اختیارم قرار میده از اون استفاده کردم.
خوب سوال: طرز کار استرینگ گراد چطوره آیا دقیقا مانند یک آرایه عمل می کند، یعنی مثلا ما در آرایه دو بعدی تعریف می کنیم که 5 سطر و 5 ستون داشته باشد و رایانه این حافظه را در اختیار برنامه قرار می دهد و دقیقا ممکنه حافظه بعد آن را به متغیر دیگری اختصاص بده. در این صورت (اگر کار استرینگ گراید شبیه آرایه باشه) ما یک مشکل داریم که اگر یک بار در بر نامه از استرینگ گراد استفاده کردیم و 5 سطر و 5 ستون به آن اختصاص دادیم و برای بار دوم از آن استفاده کرده و 6 سطر و 5 ستون به آن اختصاص بدهیم داده های دیگرمون دچار نقص می شوند.
در این صورت چه باید کرد؟
خوب فرض کنیم ما بخواهیم از استرینگ گراید بصورت پویا استفاده کنیم یعنی آن را از بین برده و هر جه بخواهیم از آن را ایجاد کنیم. چطوری؟؟؟؟؟؟؟

dkhatibi
پنج شنبه 04 بهمن 1386, 07:22 صبح
خیلی منظورتون واضح نیست.
به طور معمول با خاصیتهای RawCount و ColCount می توانید همانن ارایه ها ابعاد را تغییر دهید.

mohsenrahx
جمعه 05 بهمن 1386, 09:37 صبح
ممنون از جوابت ولی این جواب سوال من نیست.
من می دونم که چطور یک ردیفایجاد کنم و چطور کم کنم .
من دارم از مدیریت حافظه و رفع اشکالهای احتمالی صحبت می کنم. دو باره سوال رو بخون من گفتم هر وقت که بخواهم بتونم یک StringGrid ایجاد کنم و هر وقت خواستم اونو از بین ببرم و حافظه اشغال شده را آزاد کنم البته این بعد از در نظر گرفتن شرایط گفته شده در بالاست.
ممنون

rasool_brn
جمعه 05 بهمن 1386, 10:22 صبح
var
Form1:TForm1;
STGrid:TStringGrid;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
STGrid:=TStringGrid.Create(self);
STGrid.Parent:=self;
STGrid.SetBounds(50,50,400,200);
STGrid.RowCount:=3;
STGrid.ColCount:=5;
STGrid.Show;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
FreeAndNil(STGrid);
end;