![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Помогите плиз!
Есть такая процедура: Код:
procedure TForm4.BitBtn1Click(Sender: TObject); Var i:Integer; k:Byte; begin If (MaskEdit2.Text<>' , ') and (MaskEdit3.Text<>' , ') and (MaskEdit1.Text<>' ') and (MaskEdit4.Text<>' , ') and (MaskEdit5.Text<>' , ') and (MaskEdit6.Text<>' , ') Then If (StrToFloat(MaskEdit2.Text)<=6.0) and (StrToFloat(MaskEdit3.Text)<=6.0) and (StrToFloat(MaskEdit4.Text)<=6.0) and (StrToFloat(MaskEdit5.Text)<=6.0) and (StrToFloat(MaskEdit6.Text)<=6.0) Then Begin k:=0; For i:=1 To Form3.StringGrid1.RowCount-1 Do If MaskEdit1.Text=Form3.StringGrid1.Cells[1,i] Then Begin k:=1; Break; End; If k=0 Then Begin Form3.StringGrid1.RowCount:=Form3.StringGrid1.RowCount+1; Form3.StringGrid1.Cells[Form3.StringGrid1.RowCount-1,1]:=MaskEdit1.Text; Form3.StringGrid1.Cells[Form3.StringGrid1.RowCount-1,2]:=Edit1.Text; Form3.StringGrid1.Cells[Form3.StringGrid1.RowCount-1,3]:=Edit2.Text; Form3.StringGrid1.Cells[Form3.StringGrid1.RowCount-1,4]:=Edit3.Text; Form3.StringGrid1.Cells[Form3.StringGrid1.RowCount-1,5]:=MaskEdit2.Text; Form3.StringGrid1.Cells[Form3.StringGrid1.RowCount-1,6]:=MaskEdit3.Text; Form3.StringGrid1.Cells[Form3.StringGrid1.RowCount-1,7]:=MaskEdit4.Text; Form3.StringGrid1.Cells[Form3.StringGrid1.RowCount-1,8]:=MaskEdit5.Text; Form3.StringGrid1.Cells[Form3.StringGrid1.RowCount-1,9]:=MaskEdit6.Text; Close; End Else Label10.Visible:=True; End Else Label10.Visible:=True Else Label10.Visible:=True; end; По выполнению данной процедуры строка в Stringrid остается пустой, а должна заполняться... |
#2
|
||||
|
||||
![]() А на какой форме (имя формы) находятся Edit'ы? Попробуй в uses добавь имя модуля к которому ты обращаешься + добавь перед именем Edit'a название формы, где он находится. Например так: Form1.Edit1 и т.д.
Программирование - это искусство и наш смысл жизни. Последний раз редактировалось moo2k, 26.06.2008 в 20:52. |
#3
|
|||
|
|||
![]() в uses указан используемый юнит, в едитах пробовал ставить название формы,но все равно не помогает...
|
#4
|
|||
|
|||
![]() Код:
//здесь неправильно: Form3.StringGrid1.Cells[Form3.StringGrid1.RowCount-1,1]:=MaskEdit1.Text; И еще надо бы проверить, а заходим ли мы вообще по этому громоздкому условию чтоб сделать присвоения ячейкам. Не забывайте делать резервные копии |
#5
|
|||
|
|||
![]() Спасибо огромное за помощь! Все уже перепробовал, а это не замечал...)))
|
#6
|
|||
|
|||
![]() Хорошо что получилось. А вообще все плохо, потому что при данной конструкции необходимо блокировать исходную форму, а полтом разблокировать и т. д.
Иначе, если при нажатии кнопки "родительская" форма будет закрыта, то это вызовет ошибку. Лучше значения Едитов передавать параметрами, но для этого вместо стандартного Create для формы надо использовать конструктор. |
#7
|
|||
|
|||
![]() а как мне передать из 1 формы в другую по проэкту потому что когда я обьявляю к примеру так в одной форме и в другой:
public var maxmp : integer; maxhp : integer; heal: integer; man : integer; ydar:integer; i : integer; k : integer; j : integer; healBPAr: integer; manBPAr: integer; maxmpBPAr:integer; maxhpBPAr:integer; end; и используе одни и теже переменный данные отличаются |
#8
|
|||
|
|||
![]() а как мне передать из 1 формы в другую по проэкту потому что когда я обьявляю к примеру так в одной форме и в другой:
Код:
public var maxmp : integer; maxhp : integer; heal: integer; man : integer; ydar:integer; i : integer; k : integer; j : integer; healBPAr: integer; manBPAr: integer; maxmpBPAr:integer; maxhpBPAr:integer; end; |
#9
|
|||
|
|||
![]() Интересно, к чему относится этот кусок кода?
Если переменные объявлены в модуле, то причем тут pablic, если объявлены в классе формы, то причем здесть var. И чего конкретно мы хотим передать из одной формы в другую? Объявленные в классе формы переменные принадлежат этому классу, даже если есть класс формы с переменными, у которых имена повторяются. Поэтому объявленные в разных классах (впрочем как и в разных модулях) переменные с одинаковыми наименованиями - это совершенно разные переменные, занимающие разные участки памяти. form1.maxmp <> form2.maxmp Не забывайте делать резервные копии |