Поиск:

Ответ в темуСоздание новой темы Создание опроса
> очистка экрана 
:(
    Опции темы
ura5
Дата 6.6.2007, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



Проблема-не очищается экран.
На  главной форме-слева меню,справа-DBGrid1 (для справочников).
По выбору определенного пункта меню-переходим в на 
новую форму Form2 в новое окно и новый DBGrid2 (база).

Проблема: после выхода из этой формы (Form2) по закрытию (крестик) обратно на главную форму 
в правой части главной формы появляется содержимое предыдущего экрана.
Как избавиться от этой грязи?
Это фрагмент из главной формы,где переходим на форму Form2 ,но не помогает.Может не в том месте ?

Код
if (Trim(AnsiUpperCase(TreeView1->Selected->Text)) == "БАЗА")
  {
    PBaza->Show();
  ADOQuery2->Close(); 
  ADOQuery2->SQL->Clear();


PM MAIL   Вверх
Rodman
Дата 6.6.2007, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Мистика какая то... выложи полный код... 
PM MAIL WWW Skype GTalk YIM MSN   Вверх
ura5
Дата 6.6.2007, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



Главная форма 
[codeTrim(AnsiUpperCase(TreeView1->Selected->Text))== "СПРАВОЧНИК 1")
 {
//
}

if (Trim(AnsiUpperCase(TreeView1->Selected->Text)) == "БАЗА")
 {
  Pereg->Show();
  ADOQuery2->Close(); 
  ADOQuery2->SQL->Clear();
 }
[/code]
Далье функции пошли

это 2-я форма

Код

void __fastcall TPereg::FormActivate(TObject *Sender)
{
//
// Выбор года и месяца из текущей даты
  strYear  = FormatDateTime("yyyy",Now());
  strYear2 = FormatDateTime("yy",Now());
  strMonth = FormatDateTime("mm", Now());
  strNameMon = FormatDateTime("mmmm", IncMonth(Now(), -1)) ; // название месяца предыдущего

  CSpinEditPer->Text= strYear;

 ComboBoxPer->Items->Add("Январь");
 ComboBoxPer->Items->Add("Февраль");
 ComboBoxPer->Items->Add("Март");
 ComboBoxPer->Items->Add("Апрель");
 ComboBoxPer->Items->Add("Май");
 ComboBoxPer->Items->Add("Июнь");
 ComboBoxPer->Items->Add("Июль");
 ComboBoxPer->Items->Add("Август");
 ComboBoxPer->Items->Add("Сентябрь");
 ComboBoxPer->Items->Add("Октябрь");
 ComboBoxPer->Items->Add("Ноябрь");
 ComboBoxPer->Items->Add("Декабрь");
 ComboBoxPer->ItemIndex=strMonth-2;   //месяц 01-12

 if (strMonth==01)
     ntabl="C42" +AnsiString(strMonth+11)+AnsiString(strYear2-1); //январь прошлого года
 else
 {
 if (strMonth<=10)
     ntabl="C420" +AnsiString(strMonth-2)+AnsiString(strYear2);
 else
     ntabl="C42" +AnsiString(strMonth-1)+AnsiString(strYear2);
 }
    M_Lsab->ADOQueryLsab->Close();
    M_Lsab->ADOQueryLsab->SQL->Clear();
    M_Lsab->ADOQueryLsab->SQL->Text = "select count(table_name) tCount from user_catalog where table_type='TABLE' and (table_name ='" + ntabl + "')";

    M_Lsab->ADOQueryLsab->Open();
 if (M_Lsab->ADOQueryLsab->FieldByName("tCount")->AsInteger != 1)
 { ShowMessage("Нет информации по... "+strNameMon+" "+strYear +" г.");
      M_Lsab->ADOQueryLsab->SQL->Clear();
      M_Lsab->ADOQueryLsab->Close();
      return ;
 }
  M_Lsab->ADOQueryLsab->Close();
  M_Lsab->ADOQueryLsab->SQL->Text = "select * from " + ntabl + "";
  M_Lsab->ADOQueryLsab->Open();
}
//---------------------------------------------------------------------------
//это закрытие по крестику 2-форма
void __fastcall TPereg::OnClose(TWMClose& otv)
 {
          Close();
          M_Lsab->ADOQueryLsab->SQL->Clear();
 }
//---------------------------------------------------------------------------

PM MAIL   Вверх
medicdim
Дата 6.6.2007, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 19.1.2007

Репутация: нет
Всего: нет



Тебе просто нужно при закрытии второй формы выполнить СКЛ запрос, который формирует содержимое грида главной страницы.
PM MAIL   Вверх
ura5
Дата 6.6.2007, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



Главная форма - содержимое DBGrid1(справа),а слева-меню.
2-я форма         - содержимое DBGrid2(на ввесь экран).

В главной форме только,когда я вызываю справочники(небольшие)-они отображаются  справа т.е. являютcя содержимым DBGrid1.
А когда я кликаю  и вызываю всю базу (большая )-,то я перехожу на 2-ю форму на ввесь экран и отображение идет в новом DBGrid2.

По закрытию крестика 2-й  формы ,возвращаюсь обратно на главную форму,то вижу опять свою БАЗУ (которая была во 2-форме),только она сидит справа ,а не на ввесь экран .
А должна быть чистая  справа на главной форме. Никакой sql-запрос не надо делать.Пусто должно быть.

PM MAIL   Вверх
medicdim
Дата 6.6.2007, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 19.1.2007

Репутация: нет
Всего: нет



У тебя гриды получают данные от одного Dataset'a? Если - да, то после выполнения любого запроса, информация отображается одинаковая на обоих гридах.
PM MAIL   Вверх
ura5
Дата 6.6.2007, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



ДА!Что же делать? ВЕДЬ ДОЛЖЕН БЫТЬ ОТВЕТ НА ВОПРОС. Я закрываю скл-запрос и чищу экран .
PM MAIL   Вверх
medicdim
Дата 6.6.2007, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 19.1.2007

Репутация: нет
Всего: нет



Можно выполнить запрос, который не будет возврашать данные.

select * from Table1 where ID=0

Грид станет пустым
PM MAIL   Вверх
ura5
Дата 6.6.2007, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



Еще не пробовала.
Уже накрутичено. У меня при закрытии по крестику (2 стр) не срабатывает 
void __fastcall TPereg::OnClose(TWMClose& ot)
 {
//
}

Аналогичная функция есть (1-я стр) -закрытие по крестику
void __fastcall TTel1::OnClose(TWMClose& otv)
 {
//
}
Не так?

Может ли так быть?Если нет,то тогда как закрыть по крестику главную форму и 2-ю?

Короче,я закрываю крестик на 2-форме -функция ONClose на 2-й форме не срабатывает и по отладчику я не вхожу в эту фунцию вообще,а сама 2 стр закрывается и я перехожу на 1стр(главную ).
И,когда я закрываю главную форму,то уже вхожу в ф-ию 
TTel1::OnClose(TWMClose& otv)-на главной форме.

А в ф-ию ONClose (на 2-й форме ) я так и не попала.

Как же быть?
Нельзя иметь 2 ф-ии с одним названием ? 
PM MAIL   Вверх
medicdim
Дата 11.6.2007, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 19.1.2007

Репутация: нет
Всего: нет



Я всегда использовал ф-ю 

Код

void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
Application->MessageBoxA("Some message", "Test", NULL);
}


в навигаторе свойств открываешь закладку Events и дважды кликаешь на строчке OnClose. Прототип ф-ии создаётся сам и функция будет называться TForm2::FormClose(TObject *Sender, TCloseAction &Action)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.