Как я могу отобразить прозрачный PNG на Delphi 2007?

Проблема в том, что вы используете простую форму setState(newValue), которая заменяет ваше состояние новым значением. Вы должны использовать функциональную форму setState( (prevState) => {} );, потому что ваше новое состояние зависит от предыдущего состояния.

Попробуйте это:

const onKeyDown = e => {
    if (!activeKeys.includes(e.key)) {
      console.log("keydown", e.key, activeKeys);
      setActiveKeys(prevActiveKeys => [...prevActiveKeys, e.key]);
    }
  };
  const onKeyUp = e => {
    console.log("keyup", e.key, activeKeys);
    setActiveKeys(prevActiveKeys =>
      [...prevActiveKeys].filter(i => i !== e.key)
    );
  };

Ссылка на песочницу

5
задан cfischer 5 March 2009 в 20:09
поделиться

4 ответа

Я успешно использовал компонент TPaintBox с DevExpress TcxImageList, который поддерживает PNGs, и затем оттянутый изображения в OnPaint с помощью средств списка. Работавший хорошо. DevEx также имеют TcxImage, но я не попробовал это.

1
ответ дан 18 December 2019 в 09:54
поделиться
3
ответ дан 18 December 2019 в 09:54
поделиться

Попробуйте PngComponents - пока они доступны...

Версия D2009 может быть найдена здесь

Править
На Google кодируют следующую ссылку для более старых версий Delphi:
http://code.google.com/p/cubicexplorer/downloads/detail?name=PngComponents.zip&can=2&q=

10
ответ дан 18 December 2019 в 09:54
поделиться

GraphicEx окажет Вам поддержку и png's и много других форматов.

2
ответ дан 18 December 2019 в 09:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: