![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() 1) Допустим при запуске ячейки заполняются автоматичски, можно ли сделать, чтобы когда пользователь очищал ячейки, то они не становились пустыми, а оставался 0, например.
2) как сделать, чтобы при введении данных в СтрингГрид появлялся " | " сбоку, ну как в обычных текстовых редакторах. 3) ну и чтобы не выделял ячейку синим, при запуске, а то как-то не круто смотрится. тут чо то в инете нашел, но ладу дать не могу %) хелп ми , пипл , плиз) Новичок в этом деле. |
#2
|
||||
|
||||
![]() 1) если там есть событие OnChange то сравниваешь текст, если пустота - то ставишь 0
2) не припомню в блокноте черточек слева ![]() 3) поставь фокус по дефолту куда-нить в другое место, мб поможет. jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
![]() а где ончендж?
![]() Новичок в этом деле. |
#4
|
||||
|
||||
![]() нету. Я неправильно сказал.
как очищаешь? jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
|||
|
|||
![]() в ручную.
просто выходит так, что когда редактирую ячейку можно очистить полностью => ошибку выскакивает. Новичок в этом деле. |
#6
|
||||
|
||||
![]() Вот так попробуй:
Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin if (ACol in [0..StringGrid1.FixedCols-1]) or (ARow in [0..StringGrid1.FixedRows-1]) then Exit; if Trim(StringGrid1.Cells[ACol,ARow]) = '' then StringGrid1.Cells[ACol,ARow] := '0' end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
|||
|
|||
![]() без изменений.
вот код, если это поможет ![]() Код:
type matrix= array [0..2, 0..2] of real; var Form1: TForm1; A, B, C: matrix; i, j, m, n, l, k: byte; s: real; procedure TForm1.FormCreate(Sender: TObject); begin StringGrid1.Cells[0, 0]:='0'; StringGrid1.Cells[0, 1]:='0'; StringGrid1.Cells[0, 2]:='0'; StringGrid1.Cells[1, 0]:='0'; StringGrid1.Cells[1, 1]:='0'; StringGrid1.Cells[1, 2]:='0'; StringGrid1.Cells[2, 0]:='0'; StringGrid1.Cells[2, 1]:='0'; StringGrid1.Cells[2, 2]:='0'; StringGrid2.Cells[0, 0]:='0'; StringGrid2.Cells[0, 1]:='0'; StringGrid2.Cells[0, 2]:='0'; StringGrid2.Cells[1, 0]:='0'; StringGrid2.Cells[1, 1]:='0'; StringGrid2.Cells[1, 2]:='0'; StringGrid2.Cells[2, 0]:='0'; StringGrid2.Cells[2, 1]:='0'; StringGrid2.Cells[2, 2]:='0'; end; procedure TForm1.Button1Click(Sender: TObject); begin n:=2; m:=2; l:=2; for i:=0 to n do for j:=0 to m do A[i, j]:=StrToFloat(StringGrid1.Cells[j, i]); for i:=0 to n do for j:=0 to m do B[i, j]:=StrToFloat(StringGrid2.Cells[j, i]); for i:=0 to n do for j:=0 to l do begin s:=0; for k:=0 to m do s:=s+A[k,i]*B[j,k]; C[j,i]:=s; end; for i:=0 to n do for j:=0 to m do StringGrid3.Cells[i, j]:=FloatToStrf(C[j, i], fffixed,2,1); end; Новичок в этом деле. |
#8
|
||||
|
||||
![]() А откуда там пустое место? FloatToStrf(C[j, i], fffixed,2,1); может вернуть пустоту? Если так, то
Код:
... StringGrid3.Cells[i, j]:=FloatToStrf(C[j, i], fffixed,2,1); if StringGrid3.Cells[i, j]='' then StringGrid3.Cells[i, j]:='0'; jmp $ ; Happy End! The Cake Is A Lie. |
#9
|
|||
|
|||
![]() ну пустое место, если удалять значения, а надо сделать так, чтобы он не мог очистить ячейку.
ну в третем СГ там подсчеты результатов, поэтому все хорошо. А в первых двух нужно убрать пустоты, чтобы ставил 0, когда удаляешь. Новичок в этом деле. Последний раз редактировалось whitehustle, 23.12.2010 в 22:48. |