Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.07.14;
Скачать: CL | DM;

Вниз

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

 
Данилыч   (2012-11-19 15:15) [0]

Здравствуйте! Нужен совет мастеров. На форме лежит стандартный стринггрид, вывожу на оншов формы данные в грид. Все бы хорошо но в некоторых строках грида данные почему то не обновляются сразу, а только после щелчка мышью на другой какой то строке :( Пример открываю форму(не основная,а дополнительная информационная) первый раз прога показывает одни данные, закрываю,открываю повторно, показаны следующие данные,но в некоторых строках остаются предыдущие до щелчка на любой из строк. На онклик грида нет процедуры обработки щелчка, только на оншов формы на которой лежит грид. В таком стиле: StringGrid1.Cells[0,0]:="бла-бла-бла" и так для всех строк(цифры конечно соответствуют номерам строк). Че за приколы у грида не пойму :( Больше никакого кода для вывода данных в строки грида нигде в проге нет.


 
Amoeba_   (2012-11-19 15:33) [1]


> Глюк StringGrid
> Че за приколы у грида

Не надо на зеркало пенять ...


 
AV ©   (2012-11-19 16:54) [2]

"не верю"

заменить все
TStringGrid.Cells[a, b] := s;
на
 SG_CELL(a, b, s);

где
procedure TForm1.SG_CELL(ACol, ARow: Integer; const Value: string);
begin
 if EnableChange then
  TStringGrid.Cells[ACol, ARow] := Value else
   raise Exception.create(" ошибка логики");
end;

EnableChange включать принудительно, только когда нужно действительно писать в ячейку, после сразу выключать


 
Данилыч   (2012-11-19 16:55) [3]

На онклик грида нет обработчика


 
AV ©   (2012-11-19 17:01) [4]

давай минимальный код, иллюстрирующий проблему


 
Данилыч   (2012-11-19 17:25) [5]

на оншов формы StringGrid1.Cells[0,0]:="бла-бла-бла" нет больше никакого кода. Такие же операторы для остальных 15 строк грида, только в каждой строке другая инфа


 
Данилыч   (2012-11-19 17:27) [6]

По наивности в конце еще грид.рефреш прикрутил :) не помогло :(


 
AV ©   (2012-11-19 17:31) [7]

http://www.fotolink.su/v.php?id=d32d753ca95d877a0699593e1dfd20a8
проблема не воспроизводится


 
Данилыч   (2012-11-19 19:15) [8]

По логике тоже так быть не должно,я понимаю но тем не менее факты налицо :( Строк StringGrid1.Cells[0,0]:="бла-бла-бла" у меня 16  :) Возможно глючный грид в ломаной Delphi2010 architect ?


 
Ghost del vonte ©   (2012-11-19 19:56) [9]

Аналогично...

http://www.fotolink.su/v.php?id=e2d153b5651add1256d3e71302cd0517


 
Ghost del vonte ©   (2012-11-19 20:00) [10]


> Аналогично...
>
> http://www.fotolink.su/v.php?id=e2d153b5651add1256d3e71302cd0517


http://www.fotolink.su/v.php?id=b579ebc9786ab9d0dcbd309cae79b59a


 
Ghost del vonte ©   (2012-11-19 20:12) [11]


> первый раз прога показывает одни данные, закрываю,открываю
> повторно, показаны следующие данные,но в некоторых строках
> остаются предыдущие


Может перед показом очищать весь грид от строк? не?


 
Данилыч   (2012-11-19 23:59) [12]

Прикол в том,что грид чистится перед показом, присваиваю пробелы последовательно всем строкам(иначе не знаю)


 
sniknik ©   (2012-11-20 01:08) [13]

> Прикол в том,что
без подтверждения кодом(достоверной инфой, "нотариально заверенным скриншотом" например) плевать на твои "приколы".


 
Германн ©   (2012-11-20 01:40) [14]


> Данилыч   (19.11.12 23:59) [12]
>
> Прикол в том

Прикол в том, что несмотря на твои заверения типа
> На онклик грида нет процедуры обработки щелчка, только на
> оншов формы на которой лежит грид. В таком стиле: StringGrid1.
> Cells[0,0]:="бла-бла-бла" и так для всех строк


> Больше никакого кода для вывода данных в строки грида нигде
> в проге нет

до сих пор не представлен простой тестовый пример программы, который сей "якобы" глюк TStringGrid демонстрирует.


 
AV ©   (2012-11-20 17:04) [15]


> Прикол в том,что грид чистится перед показом, присваиваю
> пробелы последовательно всем строкам(иначе не знаю)

и так тоже не воспроизводится.
http://www.fotolink.su/v.php?id=e10fd57045a99715f79d7e69c8dc8e73

Обратить внимание на методы самого стринггрида.
А лучше проект выложить, если минимальный код не получается выцепить


 
Данилыч   (2012-11-20 17:19) [16]

Замучился уже з гридом, сменил на листвьюв. Теперь все работает как часы! :)
Че за хрень с гридом, можт потом разберусь... Для показа пару строк данных любой список-компонент подойдет :)


 
AV ©   (2012-11-20 17:25) [17]

потому что, скорее всего, все-таки обращается.\

или так написать

 private
   function GetSG: TStringGrid;
 public     { Public declarations }
   B: Boolean;
   property SG:TStringGrid read GetSG;

// теперь обращаться не к StringGrid1, а к SG

function TForm1.GetSG: TStringGrid;
begin
 if not(b) then
   raise Exception.Create("Ups");
 Result := sg1;  //StringGrid1
end;

procedure TForm1.FormShow(Sender: TObject);
begin
 b := True; // можно дергать стринггрид
 sg.Cells[Random(5),Random(5)] := TimeToStr(now); // дергаем1
 sg.Cells[Random(5),Random(5)] := TimeToStr(now); // дергаем2
 b := False; // теперь нельзя
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
 sg.Cells[Random(5),Random(5)] := TimeToStr(now); // тут будет ошибка
end;



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

Текущий архив: 2013.07.14;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.009 c
15-1361977811
zekk3r
2013-02-27 19:10
2013.07.14
после перезагрузки программа не работает


15-1361901394
O'ShinW
2013-02-26 21:56
2013.07.14
Подскажите про ТЭН для WD-10130N. Мощность интересует


2-1353403594
Александр_2012
2012-11-20 13:26
2013.07.14
Проверка логических условий при записи в БД


11-1245592958
Демьян
2009-06-21 18:02
2013.07.14
Порт lzma под KOL


15-1362086783
Androider
2013-03-01 01:26
2013.07.14
Хочу кодить для планшетов