-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80




Форум на Исходниках.RU


Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.

Исходная информация - http://forum.sources.ru.
Данный дневник сформирован из открытого RSS-источника по адресу http://forum.sources.ru/yandex.php, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

[Обновить трансляцию]

Визуализация уровня данных

Вторник, 04 Августа 2020 г. 18:39 + в цитатник
^D^ima:
Цитата ivan1234 @
1. как скролить такой большой массив как в примере?
2. как к скролу дополнительно добавить поток строк?

Я бы выбрал визуальный компонент типа Grid и заполнял ячейки цветом. Тогда и скролить было бы можно. Осталось найти такой компонент

https://forum.sources.ru/index.php?showtopic=419273&view=findpost&p=3835816


Метки:  

Визуализация уровня данных

Вторник, 04 Августа 2020 г. 16:34 + в цитатник
ivan1234:
Цитата MBo @
Процедура AddFigure реализована плохо

)за что купил, за то продал
попробовал ваш совет:
    procedure TForm1.FormPaint(Sender: TObject);
    begin
    for v:=0 to 12000 do
    for g:=0 to 63 do
    with Form1.Canvas do
    begin
    s:= Random(255);
    Pen.Color:=RGB(s,s,s);
    Brush.Color:=RGB(s,s,s);
    Rectangle(10*g, 10*v, 10*g+10, 10*v+10);
    end;
    end;

работает значительно быстрее - просто замечательно
Но по ходу изучения возникло ещё 2 вопроса:
1. как скролить такой большой массив как в примере?
2. как к скролу дополнительно добавить поток строк?

https://forum.sources.ru/index.php?showtopic=419273&view=findpost&p=3835813


Метки:  

Буквы национального алфавита

Вторник, 04 Августа 2020 г. 13:56 + в цитатник
^D^ima: Попробуй так:
    var
    e:TEncoding;
    begin
    e:=TEncoding.Unicode;
    memo1.Lines.LoadFromFile ('c:.txt',e);
    end;

https://forum.sources.ru/index.php?showtopic=419335&view=findpost&p=3835808


Метки:  

Буквы национального алфавита

Вторник, 04 Августа 2020 г. 11:50 + в цитатник

Метки:  

Догма

Вторник, 04 Августа 2020 г. 10:23 + в цитатник
OpenGL:
Цитата Prince @
Вот я же говорил, что единственные умения из настоящего, которые пригодятся в прошлом - из области практической медицины.

Зависит от кругозора современного человека. Если человек занимается стрельбой из блочного лука, то он понимает, как он устроен, и, вероятно, сможет его повторить, если найдёт грамотного ремесленника, который сможет ему изготовить детали нужных форм.
Можно попытаться сделать дамасскую сталь, и таким образом ковать крутые мечи.
Можно попытаться сделать ручную эспрессо-кофеварку и, обрабатывая кофе натуральным способом, делать настоящее эспрессо.
Если есть хорошее образование в области химии, то наверняка можно найти и ему примерение.
Можно в конце-концов пойти в науку и обычный университетский курс матана "изобрести". Во времена древнего Рима может быть и не сработало бы это, но вот во времена Ньютона - уже запросто.

https://forum.sources.ru/index.php?showtopic=354045&view=findpost&p=3835801


Метки:  

Язык для обучения программированию

Вторник, 04 Августа 2020 г. 08:36 + в цитатник
applegame:
Цитата swf @
Похоже я поняла, в чём была моя ошибка. Стала учить паскаль с сыном без энтузиазма и восторга.
Дети реагируют не на смысл, а только на эмоции.
Верно подмечено. :)

https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3835798


Метки:  

Windows 2003 Server Active directory

Вторник, 04 Августа 2020 г. 00:54 + в цитатник
^D^ima:
Цитата Wikly @
Вопрос в том, как определить какая (какие) рабочие станции являются проблемные.

Посмотри в логе брендмауера сервера. При отказе там должна быть соответствующая запись и ip подключения и порт. По количеству таких подключений и их ip можно сделать общую картину.

Также отключите часть сервисов и смотрите за реакцией. В частности отклбчите инет, затем rdp, smb и т.п. смотрите ща реакцией

https://forum.sources.ru/index.php?showtopic=419274&view=findpost&p=3835781


Метки:  

Странное закрытие программы на Qt5

Понедельник, 03 Августа 2020 г. 23:29 + в цитатник
JoeUser: Нашел решение проблемы!
В main.cpp нужно добавить строчку, сразу же за QApplication a(argc, argv); вот такую:

    a.setQuitOnLastWindowClosed(false);

Это предотвращает автоматическое закрытие приложения, если видимых окон не осталось.

https://forum.sources.ru/index.php?showtopic=419325&view=findpost&p=3835780


Метки:  

Странное закрытие программы на Qt5

Понедельник, 03 Августа 2020 г. 22:53 + в цитатник
JoeUser: Пишу программу (под windows), и столкнулся вот с какой странной ситуацией ... Есть таблица, ее редактирую вызывая свой диалог редактирования посредством обычного dialog->exec(). Все работает как часы.

Но понадобилось программу прятать в трэйбар. Написал код, программа прячется. Пытаюсь из меню в трэйбаре вызвать диалог создания записи в таблице. Полностью тот же код, о котором я написал выше. Вызывается диалог. Так вот проблема - после закрытия диалога закрывается и программа! И по Ok, и по Cancel диалога.

Пол-дня убил на отладку, но так и не нашел причину.

Но случайно нашел вот что:

    void MainWindow::SlotTest() {
    TRACE_CALL
    Data["FirstName"] = "T";
    Data["LastName"] = "TEST";
    Data["CardNumber"] = "1234567890";
    show(); // <------------------------
    activateWindow(); // <------------------------
    emit SigSendData(&Data);
    }


Если вставить эти две команды (выделил комментами), то до открытия диалога редактирования всплывает основное окно ... И дальше все работает без ошибок!

Не понимаю!!! Как-так? Почему если главное окно спрятано, происходит такая ситуация?

https://forum.sources.ru/index.php?showtopic=419325&view=findpost&p=3835775


Метки:  

Язык для обучения программированию

Понедельник, 03 Августа 2020 г. 22:03 + в цитатник
swf: Внук не по годам рассудителен. Нет чтоб в омут с головой, питон учить, всё обстоятельно расспросил.
- А если учитель в школе будет преподавать паскаль?
- Будем параллельно учить паскаль, я его очень хорошо знаю. Возможно, лучше учителя :D Или, если учитель разрешит, будешь показывать эти задачи на питоне.

- А если питон через 5 лет устареет?
- Тогда через 5 лет будешь учить плюсы, они не устареют.

- А если в 18 лет я решу, что не буду программистом?
- Ну тогда ты не начнёшь в 18 лет учить плюсы, питона тебе хватит для решения твоих задач.

Первую программу написали, сохранили, запустили. Вау! :D

Читаю вторую главу про переменные. Уже до меня дошло, что в интерпретаторе одна строка - одна команда.
Завтра будем решать такую задачу. Питон-программист (п.п.)зарабатывает каждый день 10 монет, но ворона пи крадёт у него каждую неделю три монеты.
Сколько монет заработает п.п. за год?

Похоже я поняла, в чём была моя ошибка. Стала учить паскаль с сыном без энтузиазма и восторга.
Дети реагируют не на смысл, а только на эмоции.

https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3835772


Метки:  

двухшаговая инициализация

Понедельник, 03 Августа 2020 г. 21:50 + в цитатник
Qraizer:
Цитата Twilight @
Если единственный вариант решения проблемы с хранением указателя при использовании метода initialize( ObjectData ) - это передача ObjectData через всю иерархию наследования ( что в моем случае выглядит не совсем красиво, так как в половине случаев, данный параметр просто передается ниже по цепочке наследования ), то вопрос я снимаю.
Я в свою очередь не понял источника проблемы. Почему нельзя создать прямо в нужной точке вместо инициализации, а нужно именно создать заранее и только потом инициализировать. Всё равно ж между ними объекта ещё нет, только кучка байтиков. И даже если надо именно так, то почему нельзя поместить это в саму фабрику, чтобы снаружи всё равно было одно действие, а не два. В конце концов когда бы делаем new SomeClass(bla_bla_bla), компилятор выполняет два действия, зато атомарно: распределение памяти и вызов конструктора; и то же с delete. И всё ради того, чтоб человек случайно не ошибался, и снаружи делал одно действие.
Ну да ладно, нельзя так нельзя. Но вот теперь я уже не понимаю, зачем передавать параметры инициализации вниз по цепочке иерархии, если можно просто ограничиться одним невиртуальным методом в базовом классе? Зовёшь, тот отрабатывает, и вуаля.

Добавлено
И собственно.
Цитата Twilight @
Однако при разрастании кода, об этом можно забыть и все-таки влепить проверки из серии if( m_objectData ).
Если тебя заботит такая мелочь, то и другие тоже должны бы, причём более не мелочи, но ты согласен с ними мириться. Почему бы и с этой мелочью не смириться?

Добавлено
В общем, я не понимаю истоков проблемы. Откуда такие странные ограничения на создание, почему не подходят общие паттерны проектирования итп. Потому посоветовать что-то дельное вряд ли выйдет. А вот гадание по кофейной гуще запросто, но как-то это не серьёзно.

https://forum.sources.ru/index.php?showtopic=419313&view=findpost&p=3835769


Метки:  

двухшаговая инициализация

Понедельник, 03 Августа 2020 г. 21:48 + в цитатник
ЫукпШ:
Цитата Twilight @
... Однако при разрастании кода, об этом можно забыть и все-таки влепить проверки из серии if( m_objectData ).

Это в данном случае будет бесполезно.
Поскольку в классе "AbstractObject" указатель не обнуляется.
---
По моему, ты не о том беспокоишься.
Вот что получится, если в связи с ростом объёма
будет забыта 2-ая строчка ? Вот так:
    IObject *obj = create( type );
    // obj->initialize( objectData );

При этом не инициализированный указатель может иметь любое значение.
---
Также, не удачно выглядит возврат void функцией initialize.
Даже если на первый взгляд функция примитивна.
Но естественно предположить, что однажды, перед присваиванием указателя
захочется проведить правильность данных objectData.
И тогда функция станет не столь примитивна. А указатель может остаться
равным NULL (несмотря на то, что указатель должен быть получен из ссылки) - бессмысленно его использовать,
если данные дефектны. Значение, равное NULL, может служить индикатором "что-то пошло не так".

https://forum.sources.ru/index.php?showtopic=419313&view=findpost&p=3835768


Метки:  

двухшаговая инициализация

Понедельник, 03 Августа 2020 г. 21:36 + в цитатник
Twilight: Да, из-за особенности архитектуры я не могу вызывать initialize в точке создания объекта, однако я могу создавать объект в точке его инициализации.
Но вопрос был совсем не про это.

Если единственный вариант решения проблемы с хранением указателя при использовании метода initialize( ObjectData ) - это передача ObjectData через всю иерархию наследования ( что в моем случае выглядит не совсем красиво, так как в половине случаев, данный параметр просто передается ниже по цепочке наследования ), то вопрос я снимаю.

Я все-таки надеялся, что к существующим решениям
1 - мало однотипного кода и однотипных описаний классов, но при этом сам следи за указателем
2 - много однотипного кода, но никаких указателей
можно добавить
3 - мало однотипного кода и нет указателей

https://forum.sources.ru/index.php?showtopic=419313&view=findpost&p=3835767


Метки:  

"Фальконы" таки летают!

Понедельник, 03 Августа 2020 г. 18:41 + в цитатник
Prince: В целом у компании 89 запусков F9 на счету.
Жду "прыжков" старшипа и вообще что-нить из лунно-марсианской темы. Запуски на НОО и немного дальше уже стали обыденностью. Ну в смысле, для внешних.
Помнится, драгон предполагалось использовать для лунной и марсианской программ. Да собственно, как и F9/H.
По факту, все достижения компании используются для извоза на НОО. Чего я и опасался. Как бы старшип не стал аналогом спейс шаттла.
Надеюсь, если не на Марс, так на Луну всё же слетают, поищут воду и гелий-3.

https://forum.sources.ru/index.php?showtopic=278766&view=findpost&p=3835757


Метки:  

"Фальконы" таки летают!

Понедельник, 03 Августа 2020 г. 16:45 + в цитатник
applegame:
Цитата prografix @
Астронавты слетали и вернулись. Что теперь должен сделать Маск?
Да это единичное везение. Вот сделает 100 запусков, тогда поговорим.

https://forum.sources.ru/index.php?showtopic=278766&view=findpost&p=3835756


Метки:  

"Фальконы" таки летают!

Понедельник, 03 Августа 2020 г. 15:06 + в цитатник
prografix:
Цитата
2 августа, американский космический корабль Crew Dragon с астронавтами Дугласом Хёрли и Робертом Бенкеном приводнился неподалеку от побережья американского штата Флорида в Мексиканском заливе.

Астронавты слетали и вернулись. Что теперь должен сделать Маск?

https://forum.sources.ru/index.php?showtopic=278766&view=findpost&p=3835755


Метки:  

двухшаговая инициализация

Понедельник, 03 Августа 2020 г. 14:33 + в цитатник
Qraizer: В таком случае, Twilight, коли, в связи с особенностями архитектуры приложения, у тебя не полностью соблюдаются принципы надёжного кода, и ты перекладываешь ответственность за безгрешность с компилятора на себя, то на вот это:
Цитата Twilight @
Однако при разрастании кода, об этом можно забыть и все-таки влепить проверки из серии if( m_objectData ).
можно ответить, что ты можешь в суматохе написать и
    obj->initialize( *(ObjectData*)nullptr );
так что проверки ничуть не лишни.

https://forum.sources.ru/index.php?showtopic=419313&view=findpost&p=3835754


Метки:  

двухшаговая инициализация

Понедельник, 03 Августа 2020 г. 10:45 + в цитатник
Twilight: Qraizer я понимаю, что в данном случае это не совсем "эталонный" фабричный метод, но его всегда можно переписать следующим образом
    IObject* create( int type, const ObjectData &objectData )
    {
    IObjectData *result = nullptr;
    if( type == 1 ) result = new Object1;
    else result = new Object2;
    result->initialize( objectData );
    return result;
    }


В реальном коде вызовов initialize вынесен из метода create() в силу архитектуры ПО и контракта с прикладной частью.

Что касается перегрузки конструкторов или создание с помощью дружественных методов: в моем случае ObjectData это один тип, с помощью которого инициализируются все типы объектов. В 99% случаев там нет данных, которые относились бы к Object1 и не относились бы к Object2. Получается, что разделение ObjectData на части CommonObjectData и Object1Data, Object2Data будет несколько искусственным. В дополнение, в один момент времени существуют только один экземпляр IObject ( по-факту - это работа с подключенным железом )


JoeUser если честно я не совсем понял, твое предложение. Оно выглядит как усложненный вариант 1, но не решающее его проблему: хранение в классе указателя на BaseData

https://forum.sources.ru/index.php?showtopic=419313&view=findpost&p=3835746


Метки:  

двухшаговая инициализация

Понедельник, 03 Августа 2020 г. 07:40 + в цитатник
JoeUser: Twilight, посмотри такой вариант, может понравится:

    #include
    struct BaseData {
    virtual std::string getValue() = 0;
    };
    struct ObjectData1: public BaseData {
    std::string str;
    ObjectData1(std::string iStr):str(iStr){}
    std::string getValue() override {
    return str;
    };
    };
    struct ObjectData2: public BaseData {
    int Int;
    ObjectData2(int iInt):Int(iInt){}
    std::string getValue() override {
    return std::to_string(Int);
    };
    };
    template
    class Factory {
    public:
    static T* generate(BaseData *objectData) {
    T* Tmp = new T();
    Tmp->init(objectData);
    return Tmp;
    }
    };
    class Initializer: public Factory {
    BaseData *objectData;
    public:
    void init(BaseData *iObjectData) {
    objectData = iObjectData;
    std::cout << objectData->getValue() << ": " << typeid(*objectData).name() << "\n";
    }
    };
    int main() {
    auto *Data1 = new ObjectData1("String");
    auto *Data2 = new ObjectData2(10);
    auto *I1 = Factory::generate(Data1);
    auto *I2 = Factory::generate(Data2);
    return 0;
    }

https://forum.sources.ru/index.php?showtopic=419313&view=findpost&p=3835741


Метки:  

двухшаговая инициализация

Воскресенье, 02 Августа 2020 г. 18:14 + в цитатник
Qraizer: Вообще-то в понятии фабричного метода, как и понятии фабрики, обычно подразумевается, что он занимается инициализацией создаваемого экземпляра. Пока объект не создан, его нет, на его месте куча мусора. Не даром же у нас этим занимаются конструкторы – специальные методы класса, от которых зависит наполнение кучи мусора на месте атрибутов объекта его полноценными инвариантами. Так что создание подразумевает инициализацию в том числе. Выходит, что первый вариант априори несостоятелен, если рассматривать его с позиции корректности реализации парадигмы фабричного метода.
Другое дело, что конструкторы не зря умеют перегружаться, т.к. архитектура класса может предусматривать для инициализации, вообще говоря, несколько разных способов задавать эти инварианты. Но это и привносит неудобство в том смысле, что фабрикам приходится как-то с этой неоднозначностью разбираться. ИМХО наиболее простой, хоть и далеко не изящный, вариант – это предусмотреть в фабричном методе все те действия, которые иначе делали бы перегруженные конструкторы, и имитировать перегрузку конструкторов перегрузкой фабричного метода и/или простыми if()/switch()-ами.
Более изящный, но и посложнее, вариант. Методы классов, которые фабричному методу, возможно, понадобятся для инициализации, сделать приватными, и пусть он занимается инвариантами посредством них (вместо того, чтобы явно стучаться к полям объекта), и при этом сам фабричный метод должен быть другом создаваемых им классов. Идеально, если интерфейс инициализации может быть определён в базовом классе и для всех производных останется неизменным. Это позволит объявить фабричный метод другом только одному, базовому, классу и не заморачиваться приватными методами инициализации в производных.

https://forum.sources.ru/index.php?showtopic=419313&view=findpost&p=3835731


Метки:  

Поиск сообщений в rss_forum_sources_ru
Страницы: 2628 ... 2401 2400 [2399] 2398 2397 ..
.. 1 Календарь