Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для K.A.V.

Ленивый кусок мяса


Contributor


Сообщения: 1986
Благодарности: 723

Профиль | Сайт | Отправить PM | Цитировать


Цитата MKN:
Ты наверное будешь смеяться, но оказалось дело в том, что гасит всё, применение стиля ${NSD_AddStyle} $ListView "${LVS_NOCOLUMNHEADER}" »
Конечно буду, т.к. этот стиль не влияет на функционал, этот стиль всего-лишь убирает отображение колонок
Здесь проблема в другом, как я выяснил только что, всё дело в том, что в nsDialogs создание ListView происходит не так, как в IO, такое ощущение, что nsDialogs создаёт совсем голый элемент, и для того, чтобы "всё заработало", необходимо вручную дописать команду на вставку колонки, пусть даже и "невидимой"
Т.е. после создания элемента тебе нужно дописывать команду на вставку колонки:
Код: Выделить весь код
${NSD_LV_InsertColumn} $ListView 0 450 ""
В IO таких телодвижений не требуется, там элемент создаётся сразу в "рабочем состоянии"

Скрытый текст

Код: Выделить весь код
!include "MUI2.nsh"
!include "WinMessages.nsh"
!include "nsDialogs.nsh"
!include "CommCtrl.nsh"
;!include "FileFunc.nsh"

Page custom MyDialog
!insertmacro MUI_LANGUAGE "Russian"

OutFile "NOCOLUMNHEADER-Test.exe"

Var dlg
Var /global ListView

Function MyDialog
nsDialogs::Create 1018
Pop $dlg
${NSD_CreateListView} 0u 0u 300u 140u ""
Pop $ListView
SendMessage $ListView ${LVM_SETEXTENDEDLISTVIEWSTYLE} "${LVS_EX_FULLROWSELECT}" "${LVS_EX_FULLROWSELECT}"
${NSD_AddStyle} $ListView "${LVS_NOCOLUMNHEADER}"
${NSD_LV_InsertColumn} $ListView 0 450 ""
call getSystemInfo
nsDialogs::Show
FunctionEnd



Section
SectionEnd


Function getSystemInfo
Push "ExecDos::End" # Add a marker for the loop to test for.
ExecDos::exec /NOUNLOAD /TOSTACK "systeminfo" "" ""
Pop $0 # return value
StrCmp $0 0 0 Failed
## Loop through stack.
Loop:
    Pop $1
    StrCmp $1 "ExecDos::End" ExitLoop
 System::Call "user32::OemToChar(tr1, t.r1)"
# SendMessage $R2 ${WM_SETTEXT} "0" "STR:$1"
 SendMessage $ListView ${LVM_GETITEMCOUNT} "" "" $R1
 ${NSD_LV_InsertItem} $ListView "0" "$1"
 SendMessage $ListView ${LVM_ENSUREVISIBLE} $R1 1
 SendMessage $ListView ${LVM_SETCOLUMNWIDTH} "0" "${LVSCW_AUTOSIZE}"
    Goto Loop
ExitLoop:
Return # Exit Function / Section
Failed:
MessageBox MB_OK "Exit code $0"
Return # Exit Function / Section
FunctionEnd




Section -post
SetAutoClose false
SectionEnd

опять панику разводишь, не работает у него ничего

Цитата:
Ну, и до кучи : у меня Caption "Получение информации из консольного приложения" - кракозябрами... Почему вдруг ?
Без понятия, что у тебя там с кодировками Я вот недавно пересел с 32 бита на 64, теперь тоже мучаюсь с кодировками, из NIS Edit всё в иероглифах, нужно открывать через другой текстовик, чтобы скопировать текст с родным языком...

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]


Отправлено: 13:46, 12-02-2015 | #1496