|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Переменные b и db глобальные. Соответственно после выполнения программы сохраняют свои значения, а при повторном нажатии на буттон не присваиваются заново.
Короче надо их присваивание перенести из FormCreate в начало процедуры Button1Click. |
#2
|
|||
|
|||
О.. точно! Спасибо)
|
#3
|
|||
|
|||
Это снова я - не подскажите как можно сделать так, что бы при нажатии на баттон 2 выплывало окно что небл нажат баттон 1 - тоесть у меня на баттон 1 напрмер заполняется матрица а на 2 меняются столбцы - если нажать на 2 перед наджатием на 1 выдает злой эрор - а я хочу его на свой заменить - как это можно сделать?
|
#4
|
|||
|
|||
Если думать совсем не хочется, то так:
Код:
procedure TMyForm.Button2Click(Sender : TObject); begin Try // Здесь твоя логика Except On E : Exception Do MessageDlg('Произошла страшная ошибка!!!',mtError,[mbOK],0); End; end; Если думать все-таки хочется, то анализируй сначала исходные данные и выводи причину, почему они не могут быть обработаны перед тем, как запускать вычисления. |
#5
|
|||
|
|||
Я конечно уверен что буклеровская переменна рулит - но меня четвертуют если увидят в моей работе ее - ведь мы даже не проходили ничего, кроче массивов, у всех будет шок от других моих программ, которые Вы все мне любездно помогли сделать - боюсь буклеровская переменна убьет моего препода... MegaPiha, не могли бы Вы попробовать всунуть тот код на эррор в мою прогу - может получится - то просо я карявый наверное и как всегда не туда пихал - если коненчо не трудо
|
#6
|
|||
|
|||
Цитата:
Не убьет. булевские переменные на самом деле азы программирования, как и integer. Ну если убъет можете использовать integer. Сперва присваивать 0, потом 1. Вот отладчик try except как раз используют профи. |
#7
|
|||
|
|||
Эх, ладно - короче объедутся пусть они этим сообщением - и без него прога работает - ат я не через переменную, не через try except не сделаю Спасибо)
|
#8
|
|||
|
|||
Цитата:
|
#9
|
|||
|
|||
описываем в самом начале программы
Код:
Var btnPres:=boolean; Код:
procedure TForm5.Button6Click(Sender: TObject); var i,j:integer; begin n:=12; m:=9; setlength(A,n,m); stringgrid1.RowCount:=n; stringgrid1.ColCount:=m; for i:=0 to n-1 do for j:=0 to m-1 do begin A[i,j]:=sin(j)/cos(j)+exp(cos(i));; stringgrid1.Cells[j,i]:=FormatFloat('0.00',A[i,j]); end; btnPres:=true; end; Код:
procedure TForm5.Button7Click(Sender: TObject); var i,j,t:integer; tmp:real; begin if btnPres = true then begin m:=stringgrid1.ColCount; k:=0; l:=8; for i:=0 to n-1 do begin tmp:=A[i,k]; A[i,k]:=A[i,l]; A[i,l]:=tmp; end; for t:=0 to n-1 do for j:=0 to m-1 do stringgrid1.Cells[j,t]:=FormatFloat('0.00',A[t,j]); end; end; |
#10
|
|||
|
|||
Спасибо, щас попробую!
|
#11
|
|||
|
|||
обмани препода, сделай аналог булевской перменной...создай не булеву перемнную а интэжер, и назначай либо 1 либо 0 в разных ситуациях, сообтветственно и проверяй так же, типа If tram_papam=1 then ...
думаю тебя препод похвалит за сообразительность и...будет час пудрить мозги тебе гениальному что есть спец тип переменных boolean |
#12
|
|||
|
|||
Просто у меня олучается так - заполняются 3 сразу - но столбцы меняет только в той матрице, которая последней заполнилась... а как сделать что бы в 3-х меняла - это для меня загадка...
|
#13
|
||||
|
||||
Насчет сокращения кода:
Код:
var cp: TComponent; i: integer; begin for i:=1 to 3 do begin cp := FindComponent('StringGrid'+IntToStr(i)); if cp <> nil then begin (cp as TStringGrid).RowCount:=n; (cp as TStringGrid).ColCount:=m; for i:=0 to n-1 do for j:=0 to m-1 do begin A[i,j]:=sin(j)/cos(j)+exp(cos(i));; (cp as TStringGrid).Cells[j,i]:=FormatFloat('0.00',A[i,j]); end; end; end; end; end; Программирование - стиль жизни |
#14
|
|||
|
|||
Zylex спасибо... разберусь... ато им мои коды длинные не нравятся... а с прогой я поступил проще - на 1 кнопку все задал - главное работает
|
#15
|
|||
|
|||
Много мелких недочетов.
1. В 1 м коде три лишних begin end. Ну это так к слову о сокращении размеров программы. 2. В кодах A, B, C не задан n/ 3. В кодах B и C надо указывать вывод не в StringGrid1 а в соответственно StringGrid5, StringGrid6 4. К вопросу об сокращении кода - ИМХО ничего сокращать не надо. |