|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Кнопка в StringGrid
Есть две процедуры: Первая рисует кнопки и открывает текстовый файл, вторая обрабатывает клик по кнопки. Вот эти процедуры:
Код:
procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; f : TStringList; begin f := TStringList.Create(); f.LoadFromFile('C:\1.txt'); for i:=1 to 4 do with TBitBtn.Create(StringGrid1) do begin Caption:='Кнопка'; Parent:=StringGrid1; BoundsRect:=StringGrid1.CellRect(1, i); OnMouseUp:=BitBtn1MouseUp; end; end; procedure TForm1.BitBtn1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ShowMessage(<Здесь информация о кнопки>) end; Вопрос: Как во второй процедуре по клику какой либо из кнопок выводилась информация из файла соответствующая данной кнопки . Заранее спасибо Последний раз редактировалось Admin, 20.04.2011 в 10:31. |
#2
|
||||
|
||||
всего 1 же файл C:\1.txt
и почему f не удаляется? Пишу программы за еду. __________________ |
#3
|
|||
|
|||
Вообщем нужно сделать следующее: после нажатия к примеру Кнопки находящейся в первой строке таблицы она выводила первую строку из файлы, при нажатии кнопки находящейся во второй строке она выводила вторую строку из файла и т.д.
|
#4
|
|||
|
|||
так?:
Код:
procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; begin for i:=1 to 4 do with TBitBtn.Create(StringGrid1) do begin Caption:='Кнопка'+IntToStr(i); Parent:=StringGrid1; BoundsRect:=StringGrid1.CellRect(1, i); Name:='BBtn'+IntToStr(i); OnMouseUp:=BBtnsMouseUp; end; end; procedure TForm1.BBtnsMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var f : TStringList; i : Integer; n : Integer; begin f := TStringList.Create(); f.LoadFromFile('C:\1.txt'); for i:=5 to Length(TBitBtn(Sender).Name) do n:=StrToInt(TBitBtn(Sender).Name[i]); StringGrid1.Cells[2,n]:=f.Strings[n]; f.Free; end; |
#5
|
||||
|
||||
Код:
unit Unit1; interface uses Buttons, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids; type TForm1 = class(TForm) StringGrid1: TStringGrid; procedure FormCreate(Sender: TObject); private { Private declarations } procedure ButtonMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var stringlist: TStringList; i: Integer; btn: TBitBtn; begin stringlist:=TStringList.Create; try stringlist.LoadFromFile('c:\Downloads\avatar.js'); for i:=0 to stringlist.Count-1 do begin btn:=TBitBtn.Create(Self); btn.Parent:=StringGrid1; btn.Caption:=Format('Button %d', [i]); btn.BoundsRect:=StringGrid1.CellRect(1, i+1); btn.ShowHint:=False; btn.Hint:=stringlist[i]; btn.OnMouseUp:=ButtonMouseUp; end; finally stringlist.Free; end; end; procedure TForm1.ButtonMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ShowMessage(TBitBtn(Sender).Hint); end; end. Пишу программы за еду. __________________ |