Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1353028451
Abcdef123
2012-11-16 05:14
2013.07.14
как контролировать ShortCut клавиши?


1-1310799635
lesstab
2011-07-16 11:00
2013.07.14
ActionList-ы на соседных фреймах.


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


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


15-1361977811
zekk3r
2013-02-27 19:10
2013.07.14
после перезагрузки программа не работает





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