Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Программа вылетает (delphi 7), свойство кнопки Enabled или Visibl   Найти похожие ветки 

 
Первокурсница ©   (2010-03-21 15:02) [0]

Доброго времени суток!
Программа:

unit laba3;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   StringGrid1: TStringGrid;
   Edit1: TEdit;
   Edit2: TEdit;
   Label1: TLabel;
   procedure Button1Click(Sender: TObject);
   procedure Edit1Change(Sender: TObject);
   procedure Edit1KeyPress(Sender: TObject; var Key: Char);
   procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
   procedure Edit2KeyPress(Sender: TObject; var Key: Char);
   procedure Edit2Change(Sender: TObject);
   procedure StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer;
     const Value: String);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
  const
SIZE=20;
var
a: array[1..SIZE] of integer;
 Form1: TForm1;
 I,J: integer;
  h,k,n,m: integer;

implementation

{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
begin
h:=0;
n:=StrToInt(Edit1.text);
If (n>20) OR (n<=0)
then begin ShowMessage("Выход за границы массива!");
    Edit1.Text:="20";
    end;
StringGrid1.ColCount:=n+1;
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
m:=StrToInt(Edit2.text);
if (2147483647 < StrToInt64(Edit2.Text)) or (-2147483647 > StrToInt64(Edit2.Text))
then
begin
 ShowMessage("Превышен размер числа!");
 Edit2.Text:="0";
end;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 case Key of
   "0".."9": ;
 else
   begin
     Key := #0;
     ShowMessage("Недопустимый элемент!");
   end;
   end;
   end;

   procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
   "0".."9": ;
 else
   begin
     Key := #0;
     ShowMessage("Недопустимый элемент!");
   end;
   end;
end;

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  h:=h+1;
  Label1.Caption:=IntToStr(h);
  for i:=1 to n-1 do
 a[i]:=StrToInt(StringGrid1.Cells[i,1]);
case Key of
   "0".."9": ;
 else
   begin
     Key := #0;
     ShowMessage("Недопустимый элемент!");
   end;
end;
end;

procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
 ARow: Integer; const Value: String);
begin
if (2147483647 < StrToInt64(Value)) or (-2147483647 > StrToInt64(Value))
then begin
 ShowMessage("Превышен размер числа!");
 for i:=1 to n do
 StringGrid1.Cells[i,j+1]:="";
end;
//if h=StrToInt(Edit1.Text) then Button1.Enabled:=True;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
found: boolean;
i: integer;
begin
{ввод числа элементов массива n<20}
{ввод массива }
{ввод искомого элемента массива}
{процедура поиска в массиве}
found:=false;
i:=1;
repeat
 if a[i]=m then
  found:=true
 else
  i:=i+1;
until (i>n) or (found = true);
if found=true then
 ShowMessage("Совпадение с элементом номер "+ IntToStr(i)+#13+
             "Поиск успешно завершен")
else
 ShowMessage("Заданный элемент не найден!");
end;
end.



Доброго времени суток! happy.gif
Программа:

unit laba3;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   StringGrid1: TStringGrid;
   Edit1: TEdit;
   Edit2: TEdit;
   Label1: TLabel;
   procedure Button1Click(Sender: TObject);
   procedure Edit1Change(Sender: TObject);
   procedure Edit1KeyPress(Sender: TObject; var Key: Char);
   procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
   procedure Edit2KeyPress(Sender: TObject; var Key: Char);
   procedure Edit2Change(Sender: TObject);
   procedure StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer;
     const Value: String);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
  const
SIZE=20;
var
a: array[1..SIZE] of integer;
 Form1: TForm1;
 I,J: integer;
  h,k,n,m: integer;

implementation

{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
begin
h:=0;
n:=StrToInt(Edit1.text);
If (n>20) OR (n<=0)
then begin ShowMessage("Выход за границы массива!");
    Edit1.Text:="20";
    end;
StringGrid1.ColCount:=n+1;
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
m:=StrToInt(Edit2.text);
if (2147483647 < StrToInt64(Edit2.Text)) or (-2147483647 > StrToInt64(Edit2.Text))
then
begin
 ShowMessage("Превышен размер числа!");
 Edit2.Text:="0";
end;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 case Key of
   "0".."9":;
 else
   begin
     Key := #0;
     ShowMessage("Недопустимый элемент!");
   end;
   end;
   end;

   procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
   "0".."9":;
 else
   begin
     Key := #0;
     ShowMessage("Недопустимый элемент!");
   end;
   end;
end;

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  h:=h+1;
  Label1.Caption:=IntToStr(h);
  for i:=1 to n-1 do
 a[i]:=StrToInt(StringGrid1.Cells[i,1]);
case Key of
   "0".."9":;
 else
   begin
     Key := #0;
     ShowMessage("Недопустимый элемент!");
   end;
end;
end;

procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
 ARow: Integer; const Value: String);
begin
if (2147483647 < StrToInt64(Value)) or (-2147483647 > StrToInt64(Value))
then begin
 ShowMessage("Превышен размер числа!");
 for i:=1 to n do
 StringGrid1.Cells[i,j+1]:="";
end;
//if h=StrToInt(Edit1.Text) then Button1.Enabled:=True;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
found: boolean;
i: integer;
begin
{ввод числа элементов массива n<20}
{ввод массива }
{ввод искомого элемента массива}
{процедура поиска в массиве}
found:=false;
i:=1;
repeat
 if a[i]=m then
  found:=true
 else
  i:=i+1;
until (i>n) or (found = true);
if found=true then
 ShowMessage("Совпадение с элементом номер "+ IntToStr(i)+#13+
             "Поиск успешно завершен")
else
 ShowMessage("Заданный элемент не найден!");
end;
end.

Преподаватель дал задание сделать Button1 недоступной или невидимой до тех пор пока не будут заполнены все ячейки StringGrid1. Подсказал что из процедуры Button1.Click нужно переместить всё что не связано непосредственно с кнопкой в Edit"ы и поставить в свойствах Button1 Enabled=False, а в тексте программы ввести счётчик и условие "если счётчик=кол-ву эл-тов то Enabled:=True" Я это сделала. Но как только пытаюсь щёлкнуть в Edit"ы или на StringGrid - программа вылетает с ошибкой "is not a valid integer value". С чем это связано? Я бы хотела доделать эту программу.


 
sniknik ©   (2010-03-21 15:31) [1]

> вылетает с ошибкой "is not a valid integer value". С чем это связано?
вероятно с незнанием английского.
http://delphimaster.net/view/15-1269080805/


 
Anatoly Podgoretsky ©   (2010-03-21 16:19) [2]

> Первокурсница  (21.03.2010 15:02:00)  [0]

Очень хорошо, можешь считать это сообщение, что грид не полностью заполнен.


 
Первокурсница ©   (2010-03-21 16:33) [3]

Спасибо =)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.066 c
2-1270706035
novai
2010-04-08 09:53
2010.08.27
Использование Format


15-1274214590
Юрий
2010-05-19 00:29
2010.08.27
С днем рождения ! 19 мая 2010 среда


2-1268654563
Thesis
2010-03-15 15:02
2010.08.27
Битовая логика


2-1272377517
inplicit_none
2010-04-27 18:11
2010.08.27
выделение компонентов на форме


2-1267946028
serhiyiv
2010-03-07 10:13
2010.08.27
Градиент





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский