PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » PureBasic для Windows » Почему не работает API в контейнере, а встроенные функции работают


Почему не работает API в контейнере, а встроенные функции работают

Сообщений 1 страница 18 из 18

1

есть и другой код с другим гаджетом, даже если сам гаджет создан CreateWindow_()
сталкивался и раньше, только сейчас понял что виноват контейнер

Код:

Global TextGadgetBackground, TextGadgetForeground 


TextGadgetBackground = CreateSolidBrush_(22222) 
TextGadgetForeground = RGB($FF,$FF,$00) 

Procedure WinProc(hWnd,Msg,wParam,lParam) 
  If Msg = #WM_CTLCOLORSTATIC And lParam = GadgetID(2) 
    SetBkMode_(wParam,#TRANSPARENT) 
    SetTextColor_(wParam,TextGadgetForeground) 
    ProcedureReturn TextGadgetBackground 
  Else 
    ProcedureReturn #PB_ProcessPureBasicEvents 
  EndIf 
EndProcedure 

OpenWindow(0,0,0,300,222,"TextGadget Color",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
AddKeyboardShortcut(0, #PB_Shortcut_Escape, #ESC)
SetWindowCallback(@WinProc()) 
; ContainerGadget(5,0,0,250,55,#PB_Container_Flat)
TextGadget(2,5,5,222,33,"This text is colored") 
; CloseGadgetList()

ContainerGadget(4,0,65,200,55,#PB_Container_Flat)
TextGadget(3,5,5,222,33,"text")
SetGadgetColor(3,#PB_Gadget_BackColor,3333333)
SetGadgetColor(3,#PB_Gadget_FrontColor,222)
CloseGadgetList()

Repeat
ev=WaitWindowEvent():em=EventMenu()
Select ev
Case #PB_Event_Menu
Select em
Case #ESC:Break; ESC

EndSelect; em
EndSelect; ev

Until ev=#PB_Event_CloseWindow 

DeleteObject_(TextGadgetBackground) 

0

2

newJS написал(а):

только сейчас понял что виноват контейнер

В 6.10 проблемы нет и фон TextGadget окрашивается в контейнере.

0

3

понял, будем искать

0

4

заработало в 604
а выше ни чего нет

0

5

вылезла бяка в 604, морда по русски, а все сообщения кракозяблами
что делать

0

6

newJS написал(а):

что делать

Для начала показать код чтобы было понятно о чем речь.

0

7

newJS
код сохрани в UTF-8 c BOM

0

8

это первое что сделал, пробовал утф, юникод, игнорит такие файлы сразу на вражий язык переключается

0

9

newJS написал(а):

вылезла бяка в 604, морда по русски, а все сообщения кракозяблами

Код:
Debug "Привет мир!"
MessageRequester("", "Привет мир!")

Текст отображается нормально.

0

10

и x64 и в x86
https://forumupload.ru/uploads/0009/ae/28/416/t881082.png
а это работает

Код:
Debug "Привет мир!"
MessageRequester("", "Привет мир!")

папку с русским скопировал из 602, где всё работает

0

11

В 6.10 текст нормально отображается.
Дело не в папке с файлами локализации, а в IDE.

newJS написал(а):

папку с русским скопировал из 602, где всё работает

Скопируйте оттуда IDE (PureBasic.exe).

0

12

так заработало
и код работает и русский появился и версия 604 осталась
что это за косяк такой? то работает то не работает

0

13

newJS написал(а):

что это за косяк такой? то работает то не работает

В версии 6.03 Фред решил обновить scintilla и внес другие изменения в IDE. Вместе с ними "прилетели" баги!

0

14

при ближайшем рассмотрении сильно заглючило сворачивание, пришлось вернуть родное

0

15

newJS
Фред отписывал, что исправил кракозябры, файл теперь должен быть в UTF-8 (в v6.10).

Этот
\PureBasic\Catalogs\Russian\Debugger.catalog
Ну и другие можно глянуть Libraries.catalog

На скрине то мы видим мессагу отладки, это не одно и тоже что работа функции MessageRequester()

newJS написал(а):

это первое что сделал, пробовал утф, юникод, игнорит такие файлы сразу на вражий язык переключается

Я имел ввиду исходник, думая что мессаги кода в кракозябрах. Файлы локализации должны быть в одном формате, там нет разночтений. UTF UTF`у рознь, там либо UTF-8 с BOM либо без BOM, либо старые в перемешку с ANSI, но не UTF16 ни LE ни BE ни UTF-32 ни что-то ещё. А англоязычном что UTF-8 без BOM, что ANSI - файлы один в один. То есть если англ файлы без BOM, то русские UTF-8 без BOM или ANSI , а если англ с BOM, то очевидно что и русские должны с BOM.

Я этим на 6.04 пользуюсь.

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

На всякий случай дай код чтобы имитировать твою ошибку.

Отредактировано AZJIO (19.03.2024 22:25:25)

0

16

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

0

17

Строка в файле compiler.catalog. У меня в 6.04 отображается нормально (Win10x64)
Кодировка Win1251 ANSI

Отредактировано AZJIO (20.03.2024 11:19:54)

0

18

вроде заработало с файлами для 603 от Петра
кодировки у файлов разные, и думай чё хочешь

0


Вы здесь » PureBasic - форум » PureBasic для Windows » Почему не работает API в контейнере, а встроенные функции работают