Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
3 / 3 / 1
Регистрация: 13.12.2018
Сообщений: 214

Асинхронная подгрузка изображений

01.05.2020, 17:40. Показов 7332. Ответов 65
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Пытаюсь реализовать асинхронную подгрузку изображений в ListBox с помощью конвертера примерно так:

Класс конвертера:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
using FierceStukCloud_Lib.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Imaging;
using System.Globalization;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Data;
using System.Windows.Media.Imaging;
using System.Windows.Threading;
 
namespace FierceStukCloud_PC.Converters
{
    public class SongToImageConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {       
            return new AsyncTask(() =>
            {
                return GetImage((string)value);
            });
        }
 
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
 
        public class AsyncTask : INotifyPropertyChanged
        {
            public AsyncTask(Func<BitmapImage> valueFunc)
            {
 
                AsyncValue = new BitmapImage(new Uri("pack://application:,,,/FierceStukCloud_PC;component/Resources/musiciconlight.png"));
                LoadValue(valueFunc);
            }
 
            private async Task LoadValue(Func<BitmapImage> valueFunc)
            {
                AsyncValue = await Task<BitmapImage>.Run(() =>
                {
                    return valueFunc();
                });
               
                if (PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("AsyncValue"));
 
            }
 
            public event PropertyChangedEventHandler PropertyChanged;
 
          
            public BitmapImage AsyncValue { get; set; }
             
        }
 
        public BitmapImage GetImage(string url)
        {
            TagLib.File file_TAG = TagLib.File.Create(url);
            try
            {
                if (file_TAG.Tag.Pictures.Length >= 1)
                {
                    var bin = (byte[])(file_TAG.Tag.Pictures[0].Data.Data); 
                    var kek = file_TAG.Tag.Pictures[0].Type;
                    var image = System.Drawing.Image.FromStream(new MemoryStream(bin)); 
                    var bitmapImage = new BitmapImage();
                    using (var ms = new MemoryStream()) 
                    {
                        image.Save(ms, ImageFormat.Jpeg);
                        ms.Seek(0, SeekOrigin.Begin);
                        bitmapImage.BeginInit();
                        bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
                        bitmapImage.StreamSource = ms;
                        bitmapImage.EndInit();
                    }
                    return bitmapImage;
                }
                else
                {
                    return GetDefaultPicture();
                }
            }
            catch (Exception)
            {
                try
                {
                    if (file_TAG.Tag.Pictures.Length >= 1)
                    {
                        var bin = (byte[])(file_TAG.Tag.Pictures[0].Data.Data);
                        var image = System.Drawing.Image.FromStream(new MemoryStream(bin)); 
                        var bitmapImage = new BitmapImage();
                        using (var ms = new MemoryStream()) 
                        {
                            image.Save(ms, ImageFormat.Png);
                            ms.Seek(0, SeekOrigin.Begin);
                            bitmapImage.BeginInit();
                            bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
                            bitmapImage.StreamSource = ms;
                            bitmapImage.EndInit();
                        }
 
                        return bitmapImage;
                    }
                    else
                    {
                        return GetDefaultPicture();
                    }
                }
                catch (Exception)
                {
                    return GetDefaultPicture();
                }
            }
        }
 
        private BitmapImage GetDefaultPicture() => new BitmapImage(new 
                                                         Uri("pack://application:,,,/FierceStukCloud_PC;component/Resources/musiciconlight.png"));
    }
}
Обращение к конвертеру:

XML
1
2
3
4
 <Image Grid.Row="0"    
 
             DataContext="{Binding Path=LocalURL, Converter={StaticResource Key1}}"
             Source="{Binding AsyncValue}"/>
Класс взял отсюда: https://coderoad.ru/24731335/А... ачений-WPF

Метод GetImage возвращает BitmapImage, который вытягивается из mp3 файла. Сам метод рабочий, проверял его в коде Model.

Но происходит то, что я плохо понимаю. В классе AsyncTask в методе LoadValue после этого кода:
C#
1
2
3
4
                AsyncValue = await Task<BitmapImage>.Run(() =>
                {
                    return valueFunc();
                });
Я получаю вот такое значение в AsyncValue:

Однако сам метод valueFunc(GetImage) на моменте return bitmapImage имеет:


По итогу не получаю изображение из трека, если оно есть. Помогите кто знает как подобное решить.
Возможно есть другие варианты асинхронной подгрузки.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.05.2020, 17:40
Ответы с готовыми решениями:

Асинхронная загрузка изображений
Здравствуйте Делаю программу-просмотрщик яндекс карт. Есть до фига картинок, сохраненных на жестком диске. Есть окошко, в котором...

Асинхронная подгрузка данных при скролле страницы
всем привет. может кто то делал такую вещь? Асинхронная подгрузка данных при скроллинге страницы. Т.е. когда доходим до конца страницы...

Асинхронная подгрузка скриптов в wordpress
В гугле требуется добавить асинхронную подгрузку всех скриптов в шапке. Нужно к коду: &lt;script type='text/javascript'...

65
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16152 / 11273 / 2890
Регистрация: 21.04.2018
Сообщений: 33,147
Записей в блоге: 2
04.05.2020, 21:34
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от ForeverFast Посмотреть сообщение
Есть ли какая-нибудь команда в github, чтобы вернуть всё назад? Просто моих сохранений даже в истории проекта нету...
Я GitHub не сильно использую.
Таких нюансов не знаю.
0
3 / 3 / 1
Регистрация: 13.12.2018
Сообщений: 214
04.05.2020, 21:40  [ТС]
Так и не смог я восстановить решение. Создал новый проект, буду всё делать заново . Ну, в принципе плюсы тоже есть - переделаю пару моментов, которые давно не нравились.

В любом случае от помощи по теме вопроса не откажусь. Как раз будет меньше проблем со встраиванием обновлённого OnPropertyChangedClass. А вы можете, как вариант, добавить новую запись о WPF + .Net Core к своим обучающим темам по WPF.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16152 / 11273 / 2890
Регистрация: 21.04.2018
Сообщений: 33,147
Записей в блоге: 2
04.05.2020, 21:44
Цитата Сообщение от ForeverFast Посмотреть сообщение
Так и не смог я восстановить решение. Создал новый проект, буду всё делать заново
Примите это как урок.
Периодически делайте фиксации.

Добавлено через 1 минуту
Цитата Сообщение от ForeverFast Посмотреть сообщение
В любом случае от помощи по теме вопроса не откажусь
Доделаю.
Но там надо будет проверять многопоточную работу.
Поэтому быстро не получится.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16152 / 11273 / 2890
Регистрация: 21.04.2018
Сообщений: 33,147
Записей в блоге: 2
06.05.2020, 09:48
ForeverFast, хотел проверить на Core, но столкнулся с проблемой.
Не знаю как правильно сослаться на ресурсы.
Для простого Image пишу <Image Source="/Resources/Плюс.png"/>.
В Конструкторе XAML - изображение есть.
При запуске на исполнение - нет.

Картинки пробовал устанавливать как "Ресурс" и "Внедрённый ресурс".
Знаете как это решить?
0
3 / 3 / 1
Регистрация: 13.12.2018
Сообщений: 214
06.05.2020, 10:13  [ТС]
У меня тоже периодически возникают проблемы с этим. Попробуйте вот так:



XML
1
   <Image Source="/FierceStukCloud_NetCoreLib;component/Resources/Images/fsc_icon.png" />
Указать проект и перед путём к файлу добавить "component"
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16152 / 11273 / 2890
Регистрация: 21.04.2018
Сообщений: 33,147
Записей в блоге: 2
06.05.2020, 10:19
Цитата Сообщение от ForeverFast Посмотреть сообщение
У меня тоже периодически возникают проблемы с этим.
По коду всё было нормально.
Какой-то глюк.
Очистил и заново собрал проект - всё работет.

Теперь по самой задаче.
Я не смог воспроизвести вашу ошибку.
Специально создаю новые потоки и из них обновляю свойства - ошибки не возникает.

Когда восстановите проект - скиньте его архив или на GitHub чтобы я мог понять в какой ситуации возникает такая ошибка.
0
3 / 3 / 1
Регистрация: 13.12.2018
Сообщений: 214
06.05.2020, 11:35  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Очистил и заново собрал проект - всё работет
Я просто думал, что вы это в первую очередь сделали. А так я теперь хотя бы знаю, что не только у меня эта проблема.
Чтобы подгружать словари ресурсов(далее СР) к основному проекту, приходится очищать и собирать проект.

И у меня тут возник вопрос. Как мне пользоваться ресурсами из СР в другом СР?

Что я пытаюсь сделать: у меня есть СР с ресурсами Brush и я хочу их использовать в другом СР.

Добавлено через 49 минут

Нашёл как это сделать:

XML
1
2
3
 <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="pack://application:,,,/FierceStukCloud_NetCoreLib;component/Resources/ResourceDictionaries/Brushes.xaml"/>
    </ResourceDictionary.MergedDictionaries>
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16152 / 11273 / 2890
Регистрация: 21.04.2018
Сообщений: 33,147
Записей в блоге: 2
06.05.2020, 14:57
ForeverFast, не можете сделать маленький проект-пример на котором будет воспроизводится ошибка из поста #12?
0
3 / 3 / 1
Регистрация: 13.12.2018
Сообщений: 214
06.05.2020, 16:26  [ТС]
Элд Хасп, Хорошо, сделаю.

У меня кстати возникло небольшое подозрение, возможно без основательное, но всё же.
Может ли быть так, что из-за вызова команды подобным образом:
XML
1
2
3
4
5
   <i:Interaction.Triggers>
                <i:EventTrigger EventName="MouseLeftButtonDown">
                    <i:InvokeCommandAction Command="{Binding LoadImagesCommand}"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
Он выкидывал это исключение?

Библиотека System.Windows.Interactivity.WPF;

Добавлено через 56 минут
Элд Хасп, У меня получилось воспроизвести эту ошибку. Через несколько минут отправлю вам приглашение на GitHub
(прочитайте файл readme.txt).
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16152 / 11273 / 2890
Регистрация: 21.04.2018
Сообщений: 33,147
Записей в блоге: 2
06.05.2020, 17:55
Цитата Сообщение от ForeverFast Посмотреть сообщение
Может ли быть так, что из-за вызова команды подобным образом
Не должно.
Это всё обрабатывается внутри View в Dispetcher.
Если, конечно, не баг какой-то.
Но i:Interaction - очень простой тип и давно используется.
Вероятность бага практически нулевая.
0
3 / 3 / 1
Регистрация: 13.12.2018
Сообщений: 214
06.05.2020, 17:57  [ТС]
Да, так и есть. Проверил час назад.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16152 / 11273 / 2890
Регистрация: 21.04.2018
Сообщений: 33,147
Записей в блоге: 2
06.05.2020, 17:58
Цитата Сообщение от ForeverFast Посмотреть сообщение
Через несколько минут отправлю вам приглашение на GitHub
Принял.
Постараюсь сегодня проверить.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16152 / 11273 / 2890
Регистрация: 21.04.2018
Сообщений: 33,147
Записей в блоге: 2
07.05.2020, 20:42
Цитата Сообщение от ForeverFast Посмотреть сообщение
У меня получилось воспроизвести эту ошибку. Через несколько минут отправлю вам приглашение на GitHub
(прочитайте файл readme.txt).
Репозиторий скачал.
Была поковеркана структура папок и Решения.
Файла игнорирования, вообще, не было.
Исправил.
Сделал фиксацию в новой ветке.

НО!
У вас в Основном окне нет НИ ОДНОЙ привязки к контексту данных.
Ни каких изображений никуда не выводится.
Соответственно, ошибок не возникает.

Может вы не сделали нужную фиксацию?
0
3 / 3 / 1
Регистрация: 13.12.2018
Сообщений: 214
07.05.2020, 20:50  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Может вы не сделали нужную фиксацию?
Мой косяк. Я после этой ошибки продолжил восстанавливать проект.

Попробуйте скачать вот эту фиксацию:
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16152 / 11273 / 2890
Регистрация: 21.04.2018
Сообщений: 33,147
Записей в блоге: 2
07.05.2020, 23:05
Цитата Сообщение от ForeverFast Посмотреть сообщение
Попробуйте скачать вот эту фиксацию:
Ок!
У вас там кривая структура Репозитория.
Неправильно заданы попки в Решении.
Я поправил в ветке - посмотрите.
Если после этого не делали изменений, то слейте с основной.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16152 / 11273 / 2890
Регистрация: 21.04.2018
Сообщений: 33,147
Записей в блоге: 2
08.05.2020, 15:12
ForeverFast, я просто офигеваю (если не сказать грубее) какая там у вас свалка кода.
Там нарушено и перековеркано даже то, что я не представлял себе что возможно перековеркать.

Каким образом вы включили папки, а не сами проекты в Решение?
У вас там в сборке получаются дикие, непонятные пути.

Возьмите структуру которую я исправил и влейте её в основную ветку.

Далее...
Это что за дикий сеттер
C#
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
        public string Login
        {
            get => _login;
            set
            {
                if (value != null)
                {
                    if (value == "")
                    {
                        DefaultLoginTextShow = Visibility.Visible;
                        SetProperty(ref _login, value);
                    }
                    else
                    {
                        DefaultLoginTextShow = Visibility.Hidden;
                        SetProperty(ref _login, value);
                    }
                    FSC_Settings.Default.Login = _login;
                    FSC_Settings.Default.Save();
                }
            }
        }
Сеттер должен быть такой:
C#
47
        public string Login { get => _login; set => SetProperty(ref _login, value); }
И всё! Больше ничего в нём быть не должно.

А вот это, что за дичь
C#
95
96
97
98
99
100
101
        public Visibility DefaultLoginTextShow { get => _defaultLoginTextShow; set => SetProperty(ref _defaultLoginTextShow, value); }
 
        public Visibility DefaultPasswordTextShow { get => _defaultPasswordTextShow; set => SetProperty(ref _defaultPasswordTextShow, value); }
 
        public Visibility LoadGifVisiableAuthentication { get => _loadGifVisiableAuthentication; set => SetProperty(ref _loadGifVisiableAuthentication, value); }
 
        public Visibility LoadGifVisiableServerStatus { get => _loadGifVisiableServerStatus; set => SetProperty(ref _loadGifVisiableServerStatus, value); }
ViewModel даже знать не должна, что это за тип такой Visibility!
А вы ещё встраиваете управление видимостью UI элементов в VM....

ForeverFast, пока вы далеко не ушли в этих костылях - лучше все переделайте по нормальному.
А то будете ловить проблему на каждом шаге.

Добавлено через 22 минуты
Следующий, даже не костыль, а не знаю как назвать
C#
208
            SecurePassword = new NetworkCredential("",FSC_Settings.Default.Password).SecurePassword;
Храните пароль как ОБЫЧНУЮ СТРОКУ.
Потом переводите его в SecurityString и работаете с ней.
Для чего?
Чтобы жизнь малиной не казалась?

Если вам не нужна безопасность, то работайте с паролем как со строкой.
А если нужна, то В ПЕРВУЮ ОЧЕРЕДЬ надо озаботиться его безопасным хранение, так как это самое доступное место и оттуда легче всего получить пароль.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16152 / 11273 / 2890
Регистрация: 21.04.2018
Сообщений: 33,147
Записей в блоге: 2
08.05.2020, 16:31
ForeverFast, ошибку выдаёт вот эта строка
C#
21
            TagLib.File file_TAG = TagLib.File.Create((string)uri);
Не может извлечь файл из ресурсов.

Добавлено через 16 минут
Покажите пример как работает ваш код загрузки в последовательном коде.
Покажите в ветке которую я создал.
0
3 / 3 / 1
Регистрация: 13.12.2018
Сообщений: 214
08.05.2020, 17:51  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Покажите пример как работает ваш код загрузки в последовательном коде.
Покажите в ветке которую я создал
Так по идее весь код у вас уже есть.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
public BitmapImage GetImage(string url)
        {
            TagLib.File file_TAG = TagLib.File.Create(url);
            try
            {
                if (file_TAG.Tag.Pictures.Length >= 1)
                {
                    var bin = (byte[])(file_TAG.Tag.Pictures[0].Data.Data); 
                    var kek = file_TAG.Tag.Pictures[0].Type;
                    var image = System.Drawing.Image.FromStream(new MemoryStream(bin)); 
                    var bitmapImage = new BitmapImage();
                    using (var ms = new MemoryStream()) 
                    {
                        image.Save(ms, ImageFormat.Jpeg);
                        ms.Seek(0, SeekOrigin.Begin);
                        bitmapImage.BeginInit();
                        bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
                        bitmapImage.StreamSource = ms;
                        bitmapImage.EndInit();
                    }
                    return bitmapImage;
                }
                else
                {
                    return GetDefaultPicture();
                }
            }
            catch (Exception)
            {
                try
                {
                    if (file_TAG.Tag.Pictures.Length >= 1)
                    {
                        var bin = (byte[])(file_TAG.Tag.Pictures[0].Data.Data);
                        var image = System.Drawing.Image.FromStream(new MemoryStream(bin)); 
                        var bitmapImage = new BitmapImage();
                        using (var ms = new MemoryStream()) 
                        {
                            image.Save(ms, ImageFormat.Png);
                            ms.Seek(0, SeekOrigin.Begin);
                            bitmapImage.BeginInit();
                            bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
                            bitmapImage.StreamSource = ms;
                            bitmapImage.EndInit();
                        }
 
                        return bitmapImage;
                    }
                    else
                    {
                        return GetDefaultPicture();
                    }
                }
                catch (Exception)
                {
                    return GetDefaultPicture();
                }
            }
        }
 
        private BitmapImage GetDefaultPicture() => new BitmapImage(new 
                                                         Uri("pack://application:,,,/FierceStukCloud_PC;component/Resources/musiciconlight.png"));
    }
Большего у меня нету.

Касательно моих ошибок.

1)
Цитата Сообщение от Элд Хасп Посмотреть сообщение
А вот это, что за дичь
(видимость)
Признаю - фигня полная. Я её просто с сохранившейся части проекта вставил и забыл про неё. Переделаю.

2)
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Это что за дикий сеттер
Тут тоже самое, что и в 1.....

3)
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Храните пароль как ОБЫЧНУЮ СТРОКУ.
Эту штуку я просто тестировал как она работает. В последующих фиксациях по кнопке "Вход" я просто сделал переход к главному окну, а реализацию безопасного пароля я отложил до момента, как сделаю хотя бы разметку для большей части главного окна.

Ещё касательного этого. В .Net Core WPF отсутствует файл, где можно сохранить пользовательские настройки. И даже так, там нету типа SecureString. Возникает вопрос: а как хранить пароль, чтобы условный пользователь не вводил его несколько раз? Типо нужно его как-то зашифровать и хранить внутри этих самых настроек? или есть какой-либо ещё способ?

Говоря пользовательские настройки, я имею ввиду вот это:
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16152 / 11273 / 2890
Регистрация: 21.04.2018
Сообщений: 33,147
Записей в блоге: 2
08.05.2020, 18:35
Покажите пример как работает ваш код загрузки в последовательном коде.
Покажите в ветке которую я создал.
Цитата Сообщение от ForeverFast Посмотреть сообщение
Так по идее весь код у вас уже есть.
То есть вы хотите сказать если этот код выполнить синхронно (сразу в методе кнопки), то он будет работать без ошибок?

Добавлено через 7 минут
Цитата Сообщение от ForeverFast Посмотреть сообщение
Говоря пользовательские настройки, я имею ввиду вот это:
Я с Core только пока эксперементирую.
Это же многоплатформенный фрамеворк.
Возможно не на всех платформах можно использовать настройки как на Windows.
Ведь они сохраняются не сами, а через систему и используемую в Window структуру привязки приложения к пользователю.
Войдите на одном компе под разными пользователями.
И каждый пользователь сможет сохранять свои настройки отдельно.
При этом для самого приложения это будет прозрачно и никаких дополнительных "телодвижений" делать не надо.

Просто сделайте свой файл (xml, json, bin, txt и тд.) и сохраняйте туда.
Можете сделать его частью ресурсов (содержанием) приложения.
Но имейте ввиду возможные сложности при работе с приложением на одном компьютере разных пользователей.
0
3 / 3 / 1
Регистрация: 13.12.2018
Сообщений: 214
08.05.2020, 18:40  [ТС]
я так понимаю перед этим его нужно будет зашифровать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.05.2020, 18:40
Помогаю со студенческими работами здесь

OpenGL ES 2.0: Асинхронная подгрузка сцены
Здравствуйте! Никак не могу разобраться, как на Android в OpenGL ES 2.0 динамически сменить отрисовываемые сцены. То есть, у меня в...

Асинхронная загрузка изображений по клику на ссылки
Есть страница со списком фото. Под каждой фото кнопка-ссылка &quot;Сменить фото&quot;. Никак не могу разобраться как прикрутить вызов аплоадера по...

Подгрузка изображений
Помогите пожалуйста с такой задачей: &lt;img src=&quot;/image.jpg&quot; onmouseover=&quot;this.src='/image.gif'&quot;...

Список - подгрузка изображений
День добрый, уважаемые, форумчане! С наступающем всех! Подскажите, кому не сложно: Как сделать так, что бы при выборе, в...

TsAlphaImageList, динамическая подгрузка изображений
Нужно в TreeView получить имена папок(в определённой директории) и в зависимости от имени папки, загрузить для неё изображение в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru