Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];

Вниз

StringGrid   Найти похожие ветки 

 
Ven   (2002-09-25 11:57) [0]

Привет мастера. Как проверить все Cells в StringGrid и позмолить их редактирование преама в StringGrid. Если написать:

for(y=0; y <LIN ;y++)
for(x=0; x < COLON ;x++)
if(StringGrid1->Cells[x][y].IsEmpty())
{
StringGrid1->Col=x;
StringGrid1->Row=y;
StringGrid1->EditorMode=true;
FocusControl(StringGrid1);
}


то остановится только на последнем исправление, Подскажите как сделати чтоб исправить их по порятку.


 
MBo   (2002-09-25 12:07) [1]

Я не понял, что ты хочешь сделать.
Для разрешения редактирования надо в Options goEditing поставить True. Для программной записи Cells[x,y]:=somestring;


 
Ven   (2002-09-25 12:19) [2]

Нужно проверите все Cells и исправить пустые. Код нписаныи выше останавливается на последнем исправление, а нижно чтобы он позволял исправить все пустые Cells.


 
MBo   (2002-09-25 12:21) [3]

Вставь break после focuscontrol


 
Ven   (2002-09-25 12:24) [4]

Тогда будет только первая


 
troits   (2002-09-25 12:25) [5]

:) 5 баллов.


 
Ven   (2002-09-25 12:28) [6]

Тогда будет только первая.


 
troits   (2002-09-25 12:29) [7]

Может, на OnSetEditText запускать опять цикл?


 
Ven   (2002-09-25 12:32) [8]

Тогда зациклица


 
gek   (2002-09-25 12:32) [9]

может так

for(y=0; y <LIN ;y++)
for(x=0; x < COLON ;x++)
if(StringGrid1->Cells[x][y].IsEmpty())
{
StringGrid1->EditorMode=true;
FocusControl(StringGrid1);
if InputQuery("enter data","enter data",s) {
Cells[x][y]=s;
}
continue;
}


 
Ven   (2002-09-25 12:36) [10]

Можна и так но хателась преама в StringGrid.


 
MBo   (2002-09-25 12:42) [11]

troits © (25.09.02 12:29)
не устраивает?


 
troits   (2002-09-25 13:19) [12]

Действительно не работает.
Есть вариант: кладем на форму таймер и на событие OnTimer

procedure TForm1.Timer1Timer(Sender: TObject);
const
BoolStr : array [Boolean] of string = ("False", "True");
begin
if not StringGrid1.EditorMode then FindEmpty;
end;

procedure TForm1.FindEmpty;
var
X, Y: Integer;
begin
for Y := 0 to StringGrid1.RowCount - 1 do
for X := 0 to StringGrid1.ColCount - 1 do
if StringGrid1.Cells[X, Y] = "" then
begin
StringGrid1.Col := X;
StringGrid1.Row := Y;
StringGrid1.EditorMode := True;
FocusControl(StringGrid1);
break;
end;
end;



 
Ven   (2002-09-25 13:40) [13]

А без таймер (только как временое решение) знает кто.


 
NP-237   (2002-09-25 13:47) [14]

Вешай проверку на onExit StringGrid
и не позволяй выходить пока все не заполнено
При запуске выполняй onExit принудительно.


 
Ven   (2002-09-25 16:08) [15]

onExit срабатывыает при выходе из StringGrid
но не после редактирования Cells.


 
Ven   (2002-09-25 17:12) [16]

Спосибо всем за советы но сделал я так :

void TForm1::SearchBadInGrid(int x, int y)
{
for( ; (y < LIN )?(!StringGrid1->Cells[x][y].IsEmpty()):false ; y++)
{
for(; (x < COLON)?(!StringGrid1->Cells[x][y].IsEmpty()):false; x++);

if(x==LIN )
x=0;
else
break;
}

if(y < LIN)
CorectedGrid(x,y);
}

void TForm1::CorectedGrid(const int x,const int y)
{
StringGrid1->Col=x;
StringGrid1->Row=y;
StringGrid1->EditorMode=true;
FocusControl(StringGrid1);
}

void __fastcall TForm1::StringGrid1KeyPress(TObject *Sender, char &Key)
{
if(Key == "\n" || Key == "\r" || Key == "\t")
{ SearchBadInGrid(StringGrid1->Col, StringGrid1->Row); return;}
}
//--------------------------------------------

если у кого есть другие идеи напишите vladr@basa.md


 
troits   (2002-09-25 17:26) [17]

>Ven (25.09.02 17:12)
Еще надо отслеживать переход на другую ячейку мышью, утрату компонентом фокуса ....



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
1-20981
Tadeush
2002-09-26 12:22
2002.10.07
А лгоритм поиска и замены.


4-21312
madcap
2002-08-09 22:45
2002.10.07
Как отправить письмо на SMTP?


4-21342
Timur_2002
2002-08-19 13:30
2002.10.07
Как на WinAPI рисовать картинки через OwnerDraw во всплыв. меню?


1-21093
dim-
2002-09-24 21:39
2002.10.07
String в Dll


3-20909
@andrew
2002-09-16 18:07
2002.10.07
ПРИВЕТ ВСЕМ!!! Очень нужен совет. Стратегический.





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