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

Вниз

Как как првильно закрыть форму?   Найти похожие ветки 

 
Сергей   (2009-11-12 14:54) [0]

Всем привет. В FormShow загружаю в StringGrid данные через   LoadDataBaseOk. Если ошибка нужно закрыть форму не открывая ее close не помогает.

procedure TForm2.FormShow(Sender: TObject);
begin
try
LoadPrintSetupToControl();
G_RowIndex:=-1;
G_Color:=ClGreen;
if LoadDataBaseOk=false then  RiaseError(const_MessageBase);
LoadStrCridColInComBox(ComboBoxNameProject,StringGridPrintParam,1);
LoadStrCridColInComBox(ComboBoxNameReport,StringGridPrintParam,5);
except
!!! НУЖНО ЗАКРЫТЬ ФОРМУ, НЕ ПОКАЗЫВАЯ ЕЕ
end;
end;


 
Юрий Зотов ©   (2009-11-12 15:00) [1]

Зачем делать это в OnShow?

Создаем форму динамически, грузим в нее данные, если загрузились - показываем форму, если нет - убиваем ее.


 
Separator ©   (2009-11-12 15:04) [2]

А причём тут FormShow? Это событие отрабатывает именно во время показа формы. Для решения проблемы нужно использовать OnCreate и уже в нем, если всё нормально, то Show, иначе Application.Terminate
А в drp файле, обязательно прописать Application.ShowMainForm := False


 
Kolan ©   (2009-11-12 15:09) [3]

Зачем создавать форму, загружать что-то и убивать форму если не загрузилось? Нельзя сначала загрузить, и только если загрузить получится — показывать форму.


 
Сергей   (2009-11-12 15:30) [4]

А записывать данные в StringGrid можно на этапе OnCreate?


 
clickmaker ©   (2009-11-12 15:32) [5]

можно


 
Anatoly Podgoretsky ©   (2009-11-12 15:48) [6]


> А записывать данные в StringGrid можно на этапе OnCreate?

в ОnCreate все объекты уже созданы, но не все инициализированы.


 
Юрий Зотов ©   (2009-11-12 16:50) [7]

> Kolan ©   (12.11.09 15:09) [3]

Это зависит от механизма загрузки. Если он как-то связан с компонентами формы, то придется сначала эту форму создать.


 
Dennis I. Komarov ©   (2009-11-12 16:55) [8]


> Если он как-то связан с компонентами формы, то придется
> сначала эту форму создать.
ИМХО данные не должны хранится в визуальных компонентах


 
Юрий Зотов ©   (2009-11-12 16:59) [9]

> Dennis I. Komarov ©   (12.11.09 16:55) [8]

ИМХО, не все компоненты формы обязательно визуальные.


 
Dennis I. Komarov ©   (2009-11-12 17:05) [10]


> ИМХО, не все компоненты формы обязательно визуальные.

Бесспорно :) Сие я не утверждал...


 
Юрий Зотов ©   (2009-11-12 17:12) [11]

> Dennis I. Komarov ©   (12.11.09 17:05) [10]

В таком случае смысл [8] мне непонятен.


 
Dennis I. Komarov ©   (2009-11-12 17:16) [12]


> Юрий Зотов ©   (12.11.09 17:12) [11]

Оно не Вам. :) Оно в догонку к [7]


 
Юрий Зотов ©   (2009-11-12 17:46) [13]

> Dennis I. Komarov ©   (12.11.09 17:16) [12]

1. До сих пор я полагал, что если перед текстом сообщения стоит цитата со значком >, то это означает, что сообщение является ответом на эту цитату.

2. Зачастую данные не только хранятся, но еще и отображаются. И если в программе есть данные, которые меняются редко, а отображаются всегда, то почему бы не хранить их прямо в визуальном компоненте?

Всякие модели и т.п. - штука хорошая, но стоит ли превращать их в догмы?


 
Dennis I. Komarov ©   (2009-11-12 17:54) [14]


> 1. До сих пор я полагал, что если перед текстом сообщения
> стоит цитата со значком >, то это означает, что сообщение
> является ответом на эту цитату.

А написано "Цитата" :)
Ну, не принципиально....

> 2. Зачастую данные не только хранятся, но еще и отображаются.
>  И если в программе есть данные, которые меняются редко,
>  а отображаются всегда, то почему бы не хранить их прямо
> в визуальном компоненте?

Правила для того чтобы их нарушать, да и что за правило без исключений :)
Но тем не менее в соседней ветке упорно пытаются сохранить в одном Item две строки, с помощью неких магических символов P&^


 
Сергей   (2009-11-13 15:56) [15]

Всем привет. Попробовал решить задачу предложенным способом. Так как форма
не главная не могу применить метод application.terminate. Возможен другой путь?


 
{RASkov} ©   (2009-11-13 18:09) [16]

см [1]... нечто:
procedure TForm1.Button1Click(Sender: TObject);
var F: TForm; //Тут может быть любой TMyForm... с изменением ниже в коде...
function LoadData: Boolean;
begin
  result:=Random(5)>2;
  F.Caption:="Загрузилося";
end;
begin
 F:=TForm.Create(nil);
 with F do try
  if LoadData then ShowModal else ShowMessage("НЕ загрузилося");
 finally
  Free;
 end;
end;



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

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

Наверх





Память: 0.49 MB
Время: 0.004 c
15-1256994371
TUser
2009-10-31 16:06
2010.01.03
К дню политзаключенного. Чисто исторический вопрос.


6-1193385014
Alex_C
2007-10-26 11:50
2010.01.03
Заполнение поля TWebBrowser типа file


2-1258113824
Acrisim
2009-11-13 15:03
2010.01.03
Многострочный едит


15-1257163293
БарЛог
2009-11-02 15:01
2010.01.03
Опыт использования движков сайтов


15-1256477905
Leonid Troyanovsky
2009-10-25 16:38
2010.01.03
На Зинчука кто идет?





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