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

Вниз

Вопрос по поводу Splash рисунка при загрузке программы.   Найти похожие ветки 

 
vegarulez ©   (2006-09-30 09:52) [0]

Привет всем Мастерам!

В хелпе приведён вот такой код процедуры для отображения splash при загрузке формы.

procedure TForm1.FormActivate(Sender: TObject);
begin
if Startup then
begin
Startup := False;
SplashScreen.Show;
end;
end;

procedure TForm2.Timer1Timer(Sender: TObject);
begin
Close;
end;

И написано следующее:The constant Startup is declared in Form1"s interface part. Типа поместите константу Startup в блок interface (сверху сразу после Unit как я понимаю)

Так вот 2 вопроса.
1) Как эту константу туда поместить?
Тобишь чему она там должна равняться?

unit Unit1;

interface
const Startup=xxx;  Или как?  (что с ней сделать вобщем.)

2) Что будет показываться если сплаш пустой?
И как туда засунуть картинку...
SplashScreen.LoadFromFile("бла..бла..бла")  Так?
Просто когда набираю просто SplashScreen он чот отказывается его воспринимать... и не выводит методы которые к нему доступны...


 
X9 ©   (2006-09-30 10:04) [1]

Из какого хелпа пример?
Константе нельзя (прошу буквоедов не читать :) ) присваивать значения, на то она и константа.
По приведённому Вами коду мало что понятно, дайте ссылку на источник.


 
Virgo_Style ©   (2006-09-30 10:09) [2]

Почитай что-нибудь...

Про булевы переменные... про то, что const - это константа... и когда вызывается OnActivate... И что форму надо хотя бы объявить, а в идеале и создать ;-)... причем обе, и SplashScreen и Form2...
Зачем тебе TForm2, ты не написал, кстати... Хотя скорее всего SplashScreen:TForm2. Легально, хоть и не совсем красиво.
И про формы почитай, и про TImage, к примеру.

В общем, по программированию что-нибудь, даже Фленова с Архангельским и то пойдет... Или бросай это дело.


 
X9 ©   (2006-09-30 10:17) [3]

Источник нашёл :) Только там вся статься глючная, даже форматирование поехало (и это в официальной справке к Delphi!), неверное, студенты писали.

Нужно объявить переменную Startup в модуле главной формы, затем создать ещё одну форму (это и будет SplashScreen), оформить её по вкусу (напрмер, добавить TImage, в котором и будет выводиться картинка, растянуть его на всё окно и выставить у формы BorderStyle в bsNone).
На форму SplashScreen положить Timer, выставить ему соответствующий Interval (время показа Splash), а в обработчике OnTimer закрыть форму с помощью Close.
Всё это чудо показывается с помощью вызова SplashScreen.Show, помещённого в событие OnCreate (так лучше, ибо Splash будет висеть, пока выполняются процедуры и функции инициализации), а не в OnActivate, как написано в Help"e.

Не забудть подключить оба модуля друг к дуругу (File | Use Unit для каждого модуля).


 
X9 ©   (2006-09-30 10:20) [4]

Если нужно, могу привести свой пример, хотя, конечно, лучше почитать основы.


 
Percent   (2006-09-30 11:02) [5]

Всё это чудо показывается с помощью вызова SplashScreen.Show, помещённого в событие OnCreate

Как минимум - вызвать хотя бы Repaint. Я так думаю.


 
X9 ©   (2006-09-30 12:04) [6]

> [5] Percent   (30.09.06 11:02)
>
> Как минимум - вызвать хотя бы Repaint. Я так думаю.

Согласен, упустил.


 
vegarulez ©   (2006-09-30 20:54) [7]

Всем большое спасибо.
Сам точно так и делал всегда... как вы все выше описали...
Тока признаюсь честно сразу и не вкупил, что там в хелпе такое косодырство...  )))
Просто я думал что есть какой-то отдельный элемент, который так и называется splashscreen который специально и создан для этих нужд...
Как я сразу не допёр, что это просто форма так называется... меня  в заблуждение ввёл блок interface про который в хелпе и говорилось... думал что с помощью него этот   мифический элемент (splashscreen) и работает...
8-)



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

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

Наверх




Память: 0.46 MB
Время: 0.049 c
15-1158493473
Furyz
2006-09-17 15:44
2006.10.15
Бесплатные движки форума


2-1159446298
pavel_guzhanov
2006-09-28 16:24
2006.10.15
как просуммировать значения одного поля по условию


2-1158667148
[PSIH]
2006-09-19 15:59
2006.10.15
Insufficient memory for this operation


1-1156620324
SUN_ALF
2006-08-26 23:25
2006.10.15
Перехват нажатий клавиш в системе.


2-1159190036
Интересующийся
2006-09-25 17:13
2006.10.15
несколько в одном прокручивающемся списке





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