Главная страница
    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.097 c
15-1263829418
TStas
2010-01-18 18:43
2010.08.27
А куда пропало "Показать мои вопросы"


15-1271140789
TRSteep
2010-04-13 10:39
2010.08.27
Net Framework 3.5 зависает при установке


3-1240933824
Александр из Перми
2009-04-28 19:50
2010.08.27
Как изменять данные в 2-х таблицах малой кровью


15-1270007391
Дмитрий С
2010-03-31 07:49
2010.08.27
Какой гугл умный:


4-1233489021
Vemer
2009-02-01 14:50
2010.08.27
Рисунок не хочет прикреплятся к Popup Меню.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский