![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. К вопросу об сокращении кода - ИМХО ничего сокращать не надо. |