Форум: "Начинающим";
Текущий архив: 2013.07.14;
Скачать: [xml.tar.bz2];
ВнизГлюк 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c