purebasic.info

PureBasic forum
Текущее время: Чт дек 14, 2017 12:44 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 3446 ]  На страницу 1, 2, 3, 4, 5 ... 230  След.
Автор Сообщение
 Заголовок сообщения: Разные вопросы (архив)
СообщениеДобавлено: Чт май 31, 2007 11:40 am 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11070
Благодарил (а): 4 раз.
Поблагодарили: 381 раз.
Если в системе установлено больше одной версии пурика (например, 3.94 и 4.0). Каков будет результат работы функции GetPureBasicDirectoryInstallation()?


Последний раз редактировалось Пётр Чт дек 23, 2010 3:57 pm, всего редактировалось 2 раз(а).

Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт май 31, 2007 11:46 am 
Не в сети
BackupUser
Аватар пользователя

Зарегистрирован: Ср ноя 29, 2006 9:29 pm
Сообщений: 1492
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Вроде каждый свой даёт.
У меня всегда два стоИт.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт май 31, 2007 12:42 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6204
Благодарил (а): 16 раз.
Поблагодарили: 171 раз.
Пункты репутации: 48
Тут система интересная - ассоциированные файлы с PB запускаются в той версии, в которой работал последний раз. У меня стоит сейчас уже 4 версии - 3.90, 3.94, 4.01, и сегодня поставил 4.02.К стати её руссифицировал, записал все библиотеки от версии 4.01 всё подошло. Так вот если работал последний раз в версии 3.90 то кликнув по файлу PB он откроеться в редакторе 3.90, соответственно от сюда и путь соответственный.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт май 31, 2007 7:55 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11070
Благодарил (а): 4 раз.
Поблагодарили: 381 раз.
Вот ещё один вопрос.
Почему это условие
Код:
1
If CreateDirectory(Name)>0

выполняется только когда папки нет? Я подозреваю что это из-за того что у созданной папки и файла разположеного в ней установлен атрибут "Только чтение". Как снять его у файла, кажется понял, а как снять этот атрибут у папки?

Может я ошибаюсь и дело в чём-то другом?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт май 31, 2007 8:33 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6204
Благодарил (а): 16 раз.
Поблагодарили: 171 раз.
Пункты репутации: 48
CreateDirectory создаёт новую папку с указанным именем. Если папку создать невозможно, то возвращается 0. Соответственно в одной директории не может быть двух одинаковых папок, а по сему это условие выполняется когда папка реально создается, т.е. когда такой папки изначально нет.
И при чём тут атрибут? Если хочешь создать папку, то придумай уникальное имя в пределах текущей папки, всё просто. Такой же ответ - 0 будет, если попытаться создать папку на CD, или на диске, где нет свободного места. Если надо узнать, есть папка на диске или нет, то надо использовать функцию Result = FileSize(FileName$), если возвращается -2 то папка есть, если -1 то нет ни папки, ни файла с таким именем, а если 0 или больше, то есть такой файл.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 04, 2007 1:21 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11070
Благодарил (а): 4 раз.
Поблагодарили: 381 раз.
Пытаюсь понять как работают эти процедуры:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Procedure EditorGadgetLocate(Gadget,x,y,length) 
  ; Set cursor position
  REG = GadgetID(Gadget)
  CharIdx = SendMessage_(REG,#EM_LINEINDEX,y-1,0)
  LLength = SendMessage_(REG,#EM_LINELENGTH,CharIdx,0)
  If LLength >= x-1
    CharIdx + x-1
  EndIf
  Range.CHARRANGE
  Range\cpMin = CharIdx
  Range\cpMax = CharIdx+length
  SendMessage_(REG,#EM_EXSETSEL,0,Range)
EndProcedure
 
Procedure EditorGadgetColor(Gadget, Color.l)
  format.CHARFORMAT
  format\cbSize = SizeOf(CHARFORMAT)
  format\dwMask = #CFM_COLOR
  format\crTextColor = Color
  SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, format)
EndProcedure



Только вот незнаю что это за тип CHARRANGE, CHARFORMAT у переменных и какую роль здесь играет символ "\" ?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 04, 2007 6:26 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6204
Благодарил (а): 16 раз.
Поблагодарили: 171 раз.
Пункты репутации: 48
Это видимо стандартная системная структура, которую не надо объявлять, и стандартный системный тип, возможно описанный в этой структуре. ( вернее две структуры Range и format)
Для работы со структурами используется "\". Посмотри в справке Structures


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июн 06, 2007 2:15 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11070
Благодарил (а): 4 раз.
Поблагодарили: 381 раз.
Как правильно проигрывать файлы "MIDI" расположеные в памяти?Когда они в виде файла, прекрасно работают функции из раздела"Movie", но там нет функции для работы с памятью. В разделе "Sound" такая функция есть, но "PlaySound" отказывается работать с форматом "MIDI".


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июн 06, 2007 6:34 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6204
Благодарил (а): 16 раз.
Поблагодарили: 171 раз.
Пункты репутации: 48
Судя по всем примерам, которые у меня есть, существует только один способ - через создание нового временного midi файла, и его проигрывания.
Примерно как то так:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
;extract and play song
Procedure playSong()
    If CreateFile(1, "song.mid")
        length = ?SongEnd-?Song
        WriteData(1,?Song, length)
        CloseFile(1)
        InitMovie()
        If LoadMovie(0, "song.mid")
            PlayMovie(0, ScreenID())
            Else
            Beep_(200, 300)
        EndIf
    EndIf
EndProcedure
 
DataSection
Song:
IncludeBinary "muzic.mid"
SongEnd:
EndDataSection



Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июн 06, 2007 6:52 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11070
Благодарил (а): 4 раз.
Поблагодарили: 381 раз.
Я примерно так и сделал потому что ничего другого придумать не смог, только у меня использовано в несколько раз больше команд. :(
Учюсь...
Я эту музыку добавил в русификатор для Пурика.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июн 14, 2007 4:57 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11070
Благодарил (а): 4 раз.
Поблагодарили: 381 раз.
Когда я сохранял исходник, "вырубили" электричество. После его появления, попытался открыть исходник, но он открывается в "просмоторщике". Открыв этот файл в "Блокноте", увидил что нет конца текста, востановил его из резервной копии, но исходник по прежнему в "просмоторщике" открывается.
Что делать?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 15, 2007 3:13 pm 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Пн дек 04, 2006 1:32 pm
Сообщений: 52
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Подкиньте пожалуйста ссылочки где можно слить PB>3.90, 3.94, 4.02
Если не трудно то мылом! lomasm@narod.ru
большой сеньксь за помошь

_________________
CLI
HLT
:-)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт авг 07, 2007 2:35 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11070
Благодарил (а): 4 раз.
Поблагодарили: 381 раз.
А как можно делать задержки на время меньше 1 миллисекунды?
Например, мне нужно 10 мкс. :wink:

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт авг 07, 2007 4:46 pm 
Не в сети
BackupUser
Аватар пользователя

Зарегистрирован: Ср ноя 29, 2006 9:29 pm
Сообщений: 1492
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
linker писал(а):
Подкиньте пожалуйста ссылочки где можно слить PB>3.90, 3.94, 4.02
Если не трудно то мылом! lomasm@narod.ru
большой сеньксь за помошь

Я ссылку дал на мыло.
Не найдёшь там, я тебе свой личный скачаю куда-нибудь.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт авг 07, 2007 6:27 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6204
Благодарил (а): 16 раз.
Поблагодарили: 171 раз.
Пункты репутации: 48
Пётр писал(а):
А как можно делать задержки на время меньше 1 миллисекунды?
Например, мне нужно 10 мкс. :wink:


Есть 2 API которые позволяют решить эту задачу, но если только комп способен на это...
Код:
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
 
Procedure.s HiResTimer(xNum)
  Ctr1.LARGE_INTEGER
  Ctr2.LARGE_INTEGER
  Freq.LARGE_INTEGER
  Overhead.LARGE_INTEGER
  A.l
  i.l
  If QueryPerformanceFrequency_(Freq)
    QueryPerformanceCounter_(Ctr1)
    QueryPerformanceCounter_(Ctr2)
    Overhead\lowpart = Ctr2\lowpart - Ctr1\lowpart  ; determine API overhead
    QueryPerformanceCounter_(Ctr1)                  ; start time loop
    Delay(xNum)
    QueryPerformanceCounter_(Ctr2)                  ; end time loop
    TimerInfo$ = "Delay(" + Str(xNum) + ") took " + StrF((Ctr2\lowpart - Ctr1\lowpart - Overhead\lowpart) / Freq\lowpart) + " seconds"
    result$ = TimerInfo$
  Else
    result$ = "Error occured"
  EndIf
  ProcedureReturn result$
EndProcedure
 
MessageRequester("Hi_Res Timer", HiResTimer(1000))
 



В архиве кодов есть ещё примеры, поищи по ключевому слову QueryPerformanceFrequency


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 3446 ]  На страницу 1, 2, 3, 4, 5 ... 230  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB