Массив целого типа, 5 элементов, вводится с клавиатуры. Выводится в столбец. Найти сумму и среднее арифметическое арифметическое положительных четных элементов.
↧
Массив целого типа - Pascal ABC
↧
Игровой ПК ~60 - Собрать игровой компьютер
↧
↧
Заполнение списка - C# Windows Forms
создал два класса,расположил на форме кнопку для добавления элемента в список,удаления выбранного элемента,отчистки списка.
Но каждый раз предыдущий элемент заменяется новым.Как сделать,чтобы новый элемент не заменял предыдущий,а просто добавлялся?
И как сделать,чтоб в listbox выводилось все содержимое списка?
Но каждый раз предыдущий элемент заменяется новым.Как сделать,чтобы новый элемент не заменял предыдущий,а просто добавлялся?
Кликните здесь для просмотра всего текста
Код:
// первый класс
class Unit
{
protected int health;
protected int damage;
public int Health
{
get
{
return health;
}
}
public int Damage
{
get
{
return damage;
}
}
public Unit()
{
health = 0;
damage = 0;
}
public Unit(int A,int B)
{
health = A;
damage = B;
}
public virtual string GetString()
{
return( string.Format("Здоровье: {0}\nУрон: {1}", health,damage));
}
}
//второй класс
class Transport:Unit
{
public List<Unit> passengers;
public List<Unit> Passengers
{
get
{
if (passengers == null)
{
passengers = new List<Unit>();
}
return passengers;
}
}
public Transport():base()
{
}
public Transport(int A,int B):base(A,B)
{
}
public void LoadUnit(Unit Un)
{
Passengers.Add(Un);
}
public void DropUnit(int i)
{
Passengers.RemoveAt(i);
}
public void DropAll()
{
Passengers.Clear();
}
public override string GetString()
{
return string.Format("{0},{1}", health, damage);
}
//класс form1
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void unit_Click(object sender, EventArgs e)
{
int health;
int damage ;
Unit Un ;
if (textBox1.Text !="" && textBox2.Text !="")
{
health = Convert.ToInt32(textBox1.Text.Trim(' '));
damage = Convert.ToInt32(textBox2.Text.Trim(' '));
Un = new Unit(health, damage);
richTextBox1.Text = Un.GetString();
}
else
{
Un = new Unit();
richTextBox1.Text = Un.GetString();
}
}
int Health;
int Damage;
int index;
Transport tr;
private void add_Click(object sender, EventArgs e)
{
if (textBox16.Text != "" && textBox17.Text != "")
{
Health = Convert.ToInt32(textBox16.Text.Trim(' '));
Damage = Convert.ToInt32(textBox17.Text.Trim(' '));
tr = new Transport(Health, Damage);
}
else
{
tr = new Transport();
}
tr.LoadUnit(tr);
foreach (Unit tr in tr.Passengers)
listBox1.Items.Add(tr.GetString());
textBox16.Text = string.Format("{0}",tr.Passengers.Count());
textBox17.Clear();
}
private void removeAt_Click(object sender, EventArgs e)
{
if (textBox18.Text != "")
{
index = Convert.ToInt32(textBox18.Text.Trim(' '));
tr.DropUnit(index);
}
else { }
foreach (var p in tr.Passengers)
listBox1.Items.Add(p.GetString());
textBox18.Clear();
}
private void clear_Click(object sender, EventArgs e)
{
tr.DropAll();
listBox1.Items.Clear();
foreach (var p in tr.Passengers)
listBox1.Items.Add(p.GetString());
}
}
И как сделать,чтоб в listbox выводилось все содержимое списка?
↧
Работа в Unity - Unity, Unity3D
Начинаю программировать на Unity, пока что мало что знаю.
Для теста нужно сделать программу, которая сначала считывает имя, уровень и умение, а затем создаёт карту персонажа с именем, звёздами(Горящими и погасшими, горящие обозначают текущий уровень, погасшие - максимальный), умением и изображением, которое загружается в зависимости от имени.
Как сделать что то подобное, или что почитать нужно,что бы начать?
Для теста нужно сделать программу, которая сначала считывает имя, уровень и умение, а затем создаёт карту персонажа с именем, звёздами(Горящими и погасшими, горящие обозначают текущий уровень, погасшие - максимальный), умением и изображением, которое загружается в зависимости от имени.
Как сделать что то подобное, или что почитать нужно,что бы начать?
↧
Яндекс Карты API Информация о маркере GeoQuery - JavaScript и API
Здравствуйте. Делаю карту пунктов самовывоза. На данный момент сделал, чтобы открывался сразу город по ip и в нем уже были маркеры. Также маркеры добавляются по мере листания карты. Все работает, но появилась проблема, как для каждого из маркера вывести по клику информацию о нем (адрес, телефон, название)?! Всего точек по России более 1000 штук.
Заранее спасибо за ответ.
Заранее спасибо за ответ.
Код:
ymaps.ready(init);
var myMap, myPlacemark, geolocation;
function init() {
geolocation = ymaps.geolocation;
coords = [geolocation.latitude, geolocation.longitude],
myMap = new ymaps.Map('map', {center: coords, zoom: 10});
myMap.behaviors.enable('scrollZoom');
myMap.controls
// Кнопка изменения масштаба.
.add('zoomControl', { left: 5, top: 5 })
var objects = ymaps.geoQuery([
{type: 'Point', coordinates: [56.2428,42.1234]},
{type: 'Point', coordinates: [53.7249,91.4363]},
{type: 'Point', coordinates: [47.105,39.4204]},
{type: 'Point', coordinates: [47.2731,39.8718]}
]);
// Найдем объекты, попадающие в видимую область карты.
objects.searchInside(myMap)
// И затем добавим найденные объекты на карту.
.addToMap(myMap);
myMap.events.add('boundschange', function () {
// После каждого сдвига карты будем смотреть, какие объекты попадают в видимую область.
var visibleObjects = objects.searchInside(myMap).addToMap(myMap);
// Оставшиеся объекты будем удалять с карты.
objects.remove(visibleObjects).removeFromMap(myMap);
});
↧
↧
Инерция – выдумка мыслителей - Механика
Инерциальные и неинерциальные системы отсчёта это философско-математическая абстракция, искажающая реальность нашего мира.
Искажение, во-первых, начинается с того, что в названых системах говориться только о безотносительном движении или покое тела. В реальном же мире движение и покой тел осуществляется только относительно других тел.
Во-вторых, в этих системах не отражаются причинно-следственные связи движущихся или покоящихся тел. И, как следствие, инерция определяется как беспричинная способность тела сохранять состояние покоя или прямолинейного равномерного движения.
И, в-третьих, в реальном мире не существует пространства, где тела могли бы беспрепятственно осуществлять прямолинейное равномерное движение, ибо вселенная заполнена гравитационными полями, искривляющими, и прямолинейность, и равномерность движения тел.
Таким образом, можно однозначно констатировать, что названные системы отсчёта демонстрируют ложное отражение реальности.
Восхищает примитивизм, с которым Галилео Галилей доказывает вечность инерциального движения: движение тела по горизонтальной плоскости вечно, если устраняются причины ускорения (движение по наклонной плоскости вниз) или замедления (движение по наклонной плоскости вверх).
Конечно, Галилея извиняет то, что эти мысли были рождены почти пятьсот лет тому назад.
Хотя, мысленный эксперимент Эйнштейна по доказательству относительности одновременности, где он время заменил часами, полагая, что это одно и то же, – это такой же примитивизм, хотя и изобретённый сто лет тому назад.
Видимо, дело не в древности рождённой мысли, а в специфике интеллекта – не всякому дано докопаться до истины.
А как же выглядит невыдуманное движение тел в нашем мире.
Гравитационные поля гравитирующих тел образованы гравитонами – магнитными диполями, которые, притягиваясь друг к другу разноимёнными полюсами, образуют гравитонные цепочки – силовые линии гравитационных полей.
Вокруг гравитирующих тел гравитонные цепочки складываются в гравитонные сферы, которые генерируют вектор магнитной индукции, направленные к центру гравитирующих тел, чем и определяется всемирное тяготение.
Все тела во вселенной движутся силой магнитной индукции, которую генерируют гравитонные сферы гравитирующих тел.
Поляризация образующих гравитационные поля гравитонов определяет направление вектора магнитной индукции. А вектор магнитной индукции определяет направление движение тел.
Если камень лежит на поверхности Земли, то гравитоны гравитонного поля камня поляризованы по направлению к центру Земли, как и гравитоны гравитонного поля самой Земли. И совместное гравитационное поле камня и Земли генерируют магнитную индукцию равную весу камня.
Если же мы бросим камень вдоль поверхности Земли, то гравитоны гравитонного поля камня будут поляризованы вдоль поверхности Земли, но под некоторым углом к Земле. И совместное гравитационное поле камня и Земли будет генерировать магнитную индукцию, обеспечивающую движение камня по параболе.
В реальном мире существует движение, генерируемое магнитной индукцией гравитационных полей гравитирующих тел, которая является движущей силой перемещения всех тел во вселенной.
Подробности можно посмотреть на сайте автора: статья Великое объединение состоялось http://tverd4.narod.ru/100.html
Искажение, во-первых, начинается с того, что в названых системах говориться только о безотносительном движении или покое тела. В реальном же мире движение и покой тел осуществляется только относительно других тел.
Во-вторых, в этих системах не отражаются причинно-следственные связи движущихся или покоящихся тел. И, как следствие, инерция определяется как беспричинная способность тела сохранять состояние покоя или прямолинейного равномерного движения.
И, в-третьих, в реальном мире не существует пространства, где тела могли бы беспрепятственно осуществлять прямолинейное равномерное движение, ибо вселенная заполнена гравитационными полями, искривляющими, и прямолинейность, и равномерность движения тел.
Таким образом, можно однозначно констатировать, что названные системы отсчёта демонстрируют ложное отражение реальности.
Восхищает примитивизм, с которым Галилео Галилей доказывает вечность инерциального движения: движение тела по горизонтальной плоскости вечно, если устраняются причины ускорения (движение по наклонной плоскости вниз) или замедления (движение по наклонной плоскости вверх).
Конечно, Галилея извиняет то, что эти мысли были рождены почти пятьсот лет тому назад.
Хотя, мысленный эксперимент Эйнштейна по доказательству относительности одновременности, где он время заменил часами, полагая, что это одно и то же, – это такой же примитивизм, хотя и изобретённый сто лет тому назад.
Видимо, дело не в древности рождённой мысли, а в специфике интеллекта – не всякому дано докопаться до истины.
А как же выглядит невыдуманное движение тел в нашем мире.
Гравитационные поля гравитирующих тел образованы гравитонами – магнитными диполями, которые, притягиваясь друг к другу разноимёнными полюсами, образуют гравитонные цепочки – силовые линии гравитационных полей.
Вокруг гравитирующих тел гравитонные цепочки складываются в гравитонные сферы, которые генерируют вектор магнитной индукции, направленные к центру гравитирующих тел, чем и определяется всемирное тяготение.
Все тела во вселенной движутся силой магнитной индукции, которую генерируют гравитонные сферы гравитирующих тел.
Поляризация образующих гравитационные поля гравитонов определяет направление вектора магнитной индукции. А вектор магнитной индукции определяет направление движение тел.
Если камень лежит на поверхности Земли, то гравитоны гравитонного поля камня поляризованы по направлению к центру Земли, как и гравитоны гравитонного поля самой Земли. И совместное гравитационное поле камня и Земли генерируют магнитную индукцию равную весу камня.
Если же мы бросим камень вдоль поверхности Земли, то гравитоны гравитонного поля камня будут поляризованы вдоль поверхности Земли, но под некоторым углом к Земле. И совместное гравитационное поле камня и Земли будет генерировать магнитную индукцию, обеспечивающую движение камня по параболе.
В реальном мире существует движение, генерируемое магнитной индукцией гравитационных полей гравитирующих тел, которая является движущей силой перемещения всех тел во вселенной.
Подробности можно посмотреть на сайте автора: статья Великое объединение состоялось http://tverd4.narod.ru/100.html
↧
Треугольник Паскаля - С++ для начинающих
как написать код, чтобы числа выводились именно треугольником?
↧
Выход за пределы выделенной памяти (new, malloc) - С++ для начинающих
День был пасмурный... Чашка чая помогала не заснуть перед монитором... На экране высвечивались два файла с разными расширениями: .c и .cpp... Идея была проста - путём нехитрых манипуляций посмотреть, как будет себя вести компилятор при выходе за пределы динамически выделенной памяти. Первый файл.
На выходе получаем правильно откомпилированный результат. (1 2 3 4 5 6)
Второй файл.
На выходе получаем правильно откомпилированный результат. (1 2 3 4 5 6)
Объясните мне кто-нибудь, почему я могу спокойно выйти за пределы выделенной памяти? Я понимаю, что так писать нельзя и нужно использовать <vector>, но я глупенький и люблю эксперименты.
Код:
#include <stdio.h>
int main(){
int i;
int *p;
p = malloc (4 * sizeof (int));
for (i = 0; i < 6; ++i){
*(p + i) = i + 1;
}
for (i = 0; i < 6; ++i){
printf ("%d ", *(p + i));
}
}
Второй файл.
Код:
#include <iostream>
using namespace std;
int main (){
int i;
int *p = new int[4];
for (i = 0; i < 6; ++i){
*(p + i) = i + 1;
}
for (i = 0; i < 6; i++){
cout << *(p + i) << " ";
}
}
Объясните мне кто-нибудь, почему я могу спокойно выйти за пределы выделенной памяти? Я понимаю, что так писать нельзя и нужно использовать <vector>, но я глупенький и люблю эксперименты.
↧
Создать классы Телефонный_справочник, Персона, Организация, Друг - C# для начинающих
1) Создать абстрактный класс Телефонный_справочник с методами, позволяющими вывести на экран информацию о записях в телефонном справочнике, а также определить соответствие записи критерию поиска.
2) Создать производные классы: Персона (фамилия, адрес, номер телефона), Организация (название, адрес, телефон, факс, контактное лицо), Друг (фамилия, адрес, номер телефона, дата рождения) со своими методами вывода информации на экран, и определения соответствия искомому типу.
3) Создать базу (массив) из n товаров, вывести полную информацию из базы на экран, а также организовать поиск в базе по фамилии.
На основе данных входного файла составить список вкладчиков банка, включив следующие данные: ФИО, № счета, сумма, год открытия счета. Вывести в новый файл информацию о тех вкладчиках, которые открыли вклад в текущем году, отсортировав их по сумме вклада.
2) Создать производные классы: Персона (фамилия, адрес, номер телефона), Организация (название, адрес, телефон, факс, контактное лицо), Друг (фамилия, адрес, номер телефона, дата рождения) со своими методами вывода информации на экран, и определения соответствия искомому типу.
3) Создать базу (массив) из n товаров, вывести полную информацию из базы на экран, а также организовать поиск в базе по фамилии.
На основе данных входного файла составить список вкладчиков банка, включив следующие данные: ФИО, № счета, сумма, год открытия счета. Вывести в новый файл информацию о тех вкладчиках, которые открыли вклад в текущем году, отсортировав их по сумме вклада.
↧
↧
Несколько div в одну строку - HTML, CSS
Всем доброго времени суток! Сделал несколько div с свойством display: inline-block. Все они нормально отображались. Когда стал заполнять их текстом они стали странно перемещаться вниз...Код предоставлять не буду, могу дать сразу ссылку на сайт, думаю так будет удобнее. Проблемы возникают в футере и блоке, который идет сразу после хэдера.
Буду благодарен, если подскажите в чем мой косяк. За ранее спасибо!
http://cabine17.beget.tech/
Буду благодарен, если подскажите в чем мой косяк. За ранее спасибо!
http://cabine17.beget.tech/
↧
Написать программу вычисления суммы 1+1/2+1/3+.+1/n для заданного числа n - Выбор конфигурации компьютера
Написать программу вычисления суммы 1+1/2+1/3+...+1/n для заданного числа n. Результат представить в виде несократимой дроби p/q (p, q — натуральные).Решить задачу с помощью функции или процедуры не получается( Ниже запись программы не используя проц или функции.
var p, q, n, i: integer;
begin
write('n=');
readln(n);
p:=1;
q:=1;
for i:=2 to n do
begin
p:=p*i+q;
q:=i*q;
end;
write('Summa=',p,'/',q);
readln
end.
var p, q, n, i: integer;
begin
write('n=');
readln(n);
p:=1;
q:=1;
for i:=2 to n do
begin
p:=p*i+q;
q:=i*q;
end;
write('Summa=',p,'/',q);
readln
end.
↧
Не могу подставить формулу - MS Office Excel
Здравствуйте, есть таблица с вкладками: "Из Нового Уренгоя", "В Новый Уренгой", Учет отработанных дней", в "Учете отработанных дней" ФИО всех сотрудников, в "Из Нового Уренгоя" - те, кто оттуда приехали, "в "В Новый Уренгой" те, кто туда уехали, нужно в "Учете отработанных дней" напротив нужной фамилии автоматически эти данные вставлялись по мере их заполнения. Спасибо.
↧
функция теряет контекст? - JavaScript
Доброго времени суток!
Не могу разобраться, у меня есть конструктор "Con" у которого есть метод "speak" которому я передаю объект
"{ f: function() { alert(hello);} }", метод speak с помощью callback таймера выводит каждую секунду функцию переданного объекта.
Проблема в том что callback не видит свойство объекта(
но если я добавлю в таймер например console.log(функцию (свойство объекта)) то callback уже видит!
как передать параметром объект что бы callback таймера увидел функцию (свойство объекта)???
Не могу разобраться, у меня есть конструктор "Con" у которого есть метод "speak" которому я передаю объект
"{ f: function() { alert(hello);} }", метод speak с помощью callback таймера выводит каждую секунду функцию переданного объекта.
Проблема в том что callback не видит свойство объекта(
но если я добавлю в таймер например console.log(функцию (свойство объекта)) то callback уже видит!
как передать параметром объект что бы callback таймера увидел функцию (свойство объекта)???
Код:
function Con() {
var say;
this.speak = function(obj) {
setTimeout (function one() {
step = setTimeout(function() {
one();
say = obj['f'] ? obj['f'] : function(){};
//console.log(say) //Если снять комментарий то callback покажет переданную функцию!
}, 1000, function() { //это callback Таймера который должен вывести в консоль текст функцию
alert(say);
});
});
};
};
var testObj = new Con();
testObj.speak({f: function() {
alert(hello);
}
});
↧
↧
Определить, у какого из числе сумма цифр больше. Pascal - Выбор конфигурации компьютера
Даны три целых числа. Определить, сумма цифр которого из них больше. Не могу сделать программу с помощью процедур или функций.
↧
Ошибка работы с графическими функциями windows.h Qt - Qt
Здравствуйте, коллеги:) Использую библиотеку windows.h в проекте для работы с windows API
Ругается на функции, которые работают с графикой: BitBlt, GetDeviceCaps итд
Ошиьбки вида: undefined reference to `_imp__GetDeviceCaps@8'
Компилятор mingw32, система x64. Пробовал dll кидать с нужными библиотеками в папку с компилятором
Вот здесь http://discourse.glfw.org/t/undefine...sing-mingw/580 пишут, что "You are using an old version of MinGW. You need to manually link against gdi32"
Версии QT 5.3, 5.4, 5.7 устанавливал - та же ошибка. Какая еще версия новее?
Что я не так делаю? Может быть в файле проекта нужно подключить какие-то библиотеки?
Решил проблему добавлением библиотек в файл проекта:
Ругается на функции, которые работают с графикой: BitBlt, GetDeviceCaps итд
Ошиьбки вида: undefined reference to `_imp__GetDeviceCaps@8'
Компилятор mingw32, система x64. Пробовал dll кидать с нужными библиотеками в папку с компилятором
Вот здесь http://discourse.glfw.org/t/undefine...sing-mingw/580 пишут, что "You are using an old version of MinGW. You need to manually link against gdi32"
Версии QT 5.3, 5.4, 5.7 устанавливал - та же ошибка. Какая еще версия новее?
Что я не так делаю? Может быть в файле проекта нужно подключить какие-то библиотеки?
Решил проблему добавлением библиотек в файл проекта:
Код:
LIBS += -luser32 -lshell32 -lgdi32
↧
Data driven test по данным из Access - C# для начинающих
вот есть такой тест
и XML таблица к нему
по подобию этого всего нам задали сделать тест с проверкой базы данных Access и рыская по просторам интернета и не найдя нужной информации,возник вопрос:а можно ли сделать тест на подобии этого только с Access?если да,то подскажите как это сделать,пожалуйста!
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassDataDriven
{
public class UsersClass
{
public bool Add(string userId, string telephone,string email)
{
if (userId.Length < 4)
{
throw new Exception("userId должно < 4");
}
if (telephone.Contains("a"))
{
throw new Exception("телефон должен сожержать только цифры");
}
if (!email.Contains("@"))
{
throw new Exception("email должен сожержать @");
}
return true;
}
}
}
Код:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DataDrivenTest
{
[TestClass]
public class UnitTest1
{
private TestContext testContextInstance;
public TestContext TestContext
{
get { return testContextInstance; }
set { testContextInstance = value; }
}
private ClassDataDriven.UsersClass manager = new ClassDataDriven.UsersClass();
/*определение источника данных
1- имя провайдера
2-строка подключения или путь к файлу
3- имя таблицы или путь
4 - как происходит доступ из источника данных
*/
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "XMLFile2.xml", "User",
DataAccessMethod.Random)]
[TestMethod]
public void UserTest()
{
string userId = Convert.ToString(TestContext.DataRow["userId"]);
string telephone = Convert.ToString(TestContext.DataRow["telephone"]);
string email = Convert.ToString(TestContext.DataRow["email"]);
bool resalt = manager.Add(userId, telephone, email);
Assert.IsTrue(resalt, "ttttt");
}
}
}
Код:
<?xml version="1.0" encoding="utf-8" ?>
<Users>
<User userId='Ivan' telephone="+7937872274222" email="ivan@mail.ru"/>
<User userId="Roman" telephone="+7937875574222" email="roman@mail.ru"/>
<User userId="Alex" telephone="+7933372274222" email="alex@mail.ru"/>
</Users>
↧
Spring web Сохранение картинок из формы в файл - Java EE (J2EE)
Здравстуйте. При регистрации пользователя хочу, чтобы можно было загружать картинку.
Показывает, что сохраняет в папку tomcat, но там этого файла нет. И как потом переместить этот файл в нужную папку?
Код:
<div class="container">
<form:form method="POST" modelAttribute="userForm" class="form-signin">
<h2 class="form-signin-heading">Create your account</h2>
<spring:bind path="login">
<div class="form-group ${status.error ? 'has-error' : ''}">
<form:input type="text" path="login" class="form-control" placeholder="login"
autofocus="true"/>
<form:errors path="login"/>
</div>
</spring:bind>
<spring:bind path="password">
<div class="form-group ${status.error ? 'has-error' : ''}">
<form:input type="password" path="password" class="form-control" placeholder="Password"/>
<form:errors path="password"/>
</div>
</spring:bind>
<spring:bind path="file">
<div>
<form:input type="file" path="file" class="form-control"/>
</div>
</spring:bind>
<button class="btn btn-lg btn-primary btn-block" type="submit">Submit</button>
</form:form>
</div>
Код:
@RequestMapping( value = "/registration", method = RequestMethod.POST )
public String registration( @ModelAttribute( "userForm" ) User userForm, BindingResult bindingResult ){
validator.validate( userForm, bindingResult );
if( bindingResult.hasErrors() )
return "registration";
userService.saveUser( userForm );
return "redirect:/";
}
Код:
public boolean saveUser( User user ){
System.out.println( user.getLogin() );
System.out.println( passwordEncoder.encodePassword( user.getPassword(), null ) );
System.out.println( UserRoles.USER.name() );
System.out.println( user.getFile().getAbsolutePath() );
return true;
}
↧
↧
В одномерном числовом массиве найти - Turbo Pascal
В одномерном числовом массиве найти: а) сумму всех элементов, стоящих на четных местах; б) сумму всех элементов, имеющих нечетное значение.
↧
Найти отношение - Механика
При вращении тела по окружности в некоторый момент времени угол между полным ускорением и линейной скоростью равен 60 градусов. Найти отношение тангенциального ускорения к нормальному ускорению.
Правильно ли я решаю?
Правильно ли я решаю?
↧
Замирает окно после закрытия заставки - C#: WPF и Silverlight
Всем привет!
Пишу не большое приложение. Необходимо сделать заставку перед открытием главного окна на 10 секунд.
Реализую вот так:
Все вроде работает, но есть одна проблема, после закрытия заставки главное окно "не активно", курсов в текстбоксе стоит но не мигает, нельзя ввести текст, должны появиться некоторые данные в окне но они не отображаются, все появляется когда я вызываю контекстное меню у текстбокса или появляется всплывающая подсказка на одном из элементов. Собственно вопрос: почему замирает форма?
Пишу не большое приложение. Необходимо сделать заставку перед открытием главного окна на 10 секунд.
Реализую вот так:
Код:
public partial class App : Application
{
MainWindow mw; // Главное окно
SplashScreen ss; // Окно заставки
private BackgroundWorker bwSS = new BackgroundWorker(); // Поток в котором отрисовываются элементы на заставке
protected override void OnStartup(StartupEventArgs e)
{
ss = new SplashScreen();
ss.Show();
bwSS.DoWork += bwSS_DoWork;
bwSS.RunWorkerCompleted += bwSS_RunWorkerCompleted;
bwSS.RunWorkerAsync();
}
private void bwSS_DoWork(object Sender, System.ComponentModel.DoWorkEventArgs e)
{
this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate()
{
mw = new MainWindow();
mw.Show();
});
for (int i = 0; i < 10; i++)
{
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate()
{
ss.progressBarLoad.Value = ss.progressBarLoad.Value + 1;
ss.LabelSostSS.Content = "Идет загрузка...";
});
Thread.Sleep(1000);
}
}
private void bwSS_RunWorkerCompleted(object Sender, System.ComponentModel.RunWorkerCompletedEventArgs e)
{
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate()
{
ss.Close();
//this.MainWindow = mw;
});
}
↧