Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.04.2011, 06:14
apollon61 apollon61 вне форума
Прохожий
 
Регистрация: 20.04.2011
Сообщения: 3
Репутация: 10
По умолчанию Кнопка в 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  
Старый 20.04.2011, 08:47
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

всего 1 же файл C:\1.txt
и почему f не удаляется?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 20.04.2011, 10:46
apollon61 apollon61 вне форума
Прохожий
 
Регистрация: 20.04.2011
Сообщения: 3
Репутация: 10
По умолчанию

Вообщем нужно сделать следующее: после нажатия к примеру Кнопки находящейся в первой строке таблицы она выводила первую строку из файлы, при нажатии кнопки находящейся во второй строке она выводила вторую строку из файла и т.д.
Ответить с цитированием
  #4  
Старый 20.04.2011, 12:48
Janom Janom вне форума
Начинающий
 
Регистрация: 04.02.2011
Адрес: Москва
Сообщения: 148
Версия Delphi: 7
Репутация: 133
По умолчанию

так?:
Код:
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  
Старый 20.04.2011, 13:01
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
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.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter