Показать сообщение отдельно
  #1  
Старый 20.04.2011, 17:36
apollon61 apollon61 вне форума
Прохожий
 
Регистрация: 20.04.2011
Сообщения: 3
Репутация: 10
По умолчанию как удалить кнопку?

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls,Registry, ComCtrls, Grids, Buttons;

type
  TForm1 = class(TForm)
    Up_Image: TImage;
    Down_Image: TImage;
    Center_Image: TImage;
    Button1: TButton;
    Image1: TImage;
    Button3: TButton;
    Button2: TButton;
    StringGrid1: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure knopka(Sender: TObject);
    procedure clearstrgr(Sender: TObject);
    procedure BitBtn1MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}
var o:integer;
procedure TForm1.Button1Click(Sender: TObject);
var
  f,g,j : TStringList;
  reg : tregistry;
  i,m:integer;
begin
  f := TStringList.Create();
  f.LoadFromFile('reg_hlm.bas');
  g := TStringList.Create();
  g.LoadFromFile('name_hlm.bas');
  j := TStringList.Create();
  j.LoadFromFile('inf_hlm.bas');
  reg := tregistry.create;
  try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKey('\',true);
    for o:=1 to 14 do
      if reg.KeyExists(f[o]) then
     begin
      StringGrid1.RowCount:=o+1;
      StringGrid1.Cells[0,o]:=g[o];
     end;
  finally
    reg.free;
  end;

  Knopka(Sender);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Form2.show;
end;

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



procedure TForm1.Knopka(Sender: TObject);
var m,i:integer;
begin
  for i:=1 to 14 do
 with TBitBtn.Create(StringGrid1) do
 begin
  Caption:='Кнопка';
  Parent:=StringGrid1;
  BoundsRect:=StringGrid1.CellRect(2, i);
  OnMouseUp:=BitBtn1MouseUp;
  for m:=1 to 14 do
   if i=m  then
    tag:=m;
end;
end;

procedure TForm1.BitBtn1MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
var j: TStringList;
begin
  j := TStringList.Create();
  j.LoadFromFile('inf_hlm.bas');
  ShowMessage(j[TButton(Sender).tag]);
//Form2.Show;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0]:='программа';
StringGrid1.Cells[1,0]:='Уровень угрозы';
StringGrid1.Cells[2,0]:='описание программы';
end;

end.
Админ: Пользуемся тегами для оформления кода!

программа берет ключи из реестра сравнивает их с ключами из файла reg_hlm.bas если ключи одинаковые то берется название программы из файла name_hlm.bas и выводится в первое поле. Создается кнопка в третьем поле по нажатии которой должно выводится полное описание программы из файла inf_hlm.bas проблема в том, что может быть такое что нет некоторых программ на компьютере которые есть в базе, подскажите как удалить пустые строки с созданными кнопками? Или как не выводя пустые строки связать с имя программы с описанием?
Заранее огромное спасибо!
Ответить с цитированием