FreeBasic похожий на PureBasic

Страница 3 из 6 Предыдущий  1, 2, 3, 4, 5, 6  Следующий

Предыдущая тема Следующая тема Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  DEPOzit в Пт Апр 22, 2011 11:30 am

DisableWindow блокирует и родительское окно и дочернее (созданного при помощи SetParent). Это видно на примере:
Код:
#Include "window9.bi"

Var hwnd=OpenWindow("Main",10,10,500,500)
ButtonGadget(1,10,10,100,30,"Button1",WS_CLIPSIBLINGS)
Var event=0
Var hwnd1=OpenWindow("Child",10,10,200,200,WS_VISIBLE Or WS_OVERLAPPEDWINDOW Or WS_CLIPSIBLINGS)
SetParent(hwnd1,hwnd)
DisableWindow(hwnd,1)
ButtonGadget(2,10,10,120,30,"Button2")
Do
 event=WaitEvent()
 If Event=EventClose Then End
Loop
Есть ли аналогичная команда, позволяющая блокировать только родительское окно, оставляя активным дочернее?

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  trew в Пт Апр 22, 2011 12:11 pm

DEPOzit пишет:DisableWindow блокирует и родительское окно и дочернее (созданного при помощи SetParent). Это видно на примере:
Код:
#Include "window9.bi"

Var hwnd=OpenWindow("Main",10,10,500,500)
ButtonGadget(1,10,10,100,30,"Button1",WS_CLIPSIBLINGS)
Var event=0
Var hwnd1=OpenWindow("Child",10,10,200,200,WS_VISIBLE Or WS_OVERLAPPEDWINDOW Or WS_CLIPSIBLINGS)
SetParent(hwnd1,hwnd)
DisableWindow(hwnd,1)
ButtonGadget(2,10,10,120,30,"Button2")
Do
 event=WaitEvent()
 If Event=EventClose Then End
Loop
Есть ли аналогичная команда, позволяющая блокировать только родительское окно, оставляя активным дочернее?

Я такой команды не знаю, по сути раз ты деактивируешь главное окно, деактивируется все что в нем. Я считаю это нормальным.
В данной ситуации первое что приходит на ум, это делать временно(пока главное деактивируется) дочернее окно не дочерним. А когда надо опять дочерним.

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  DEPOzit в Пт Апр 22, 2011 12:47 pm

Хм а как можно сменить стили уже созданного окна? Точнее интересует деактивация "Свернуть в окно".

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  trew в Пт Апр 22, 2011 1:14 pm

Хм а как можно сменить стили уже созданного окна?

1)Стили можно менять с помощью SetWindowLong.
2)Делать окно не дочерним можно той же командой SetParent

Точнее интересует деактивация "Свернуть в окно".

А вот это честно говоря не понял

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  trew в Вт Апр 26, 2011 4:12 pm

Обновил библиотеку, добавлены функции:

UndoEditor
RedoEditor
PasteEditor
CanUndoEditor
CanRedoEditor
EmptyUndoBufferEditor
GetLineTextEditor
GetLineCountEditor
GetModifyEditor
GetRectEditor
SetLimitTextEditor
SetModifyEditor
SetPasswordChar
GetPasswordChar
LineFromCharEditor
LineIndexEditor
LineLengthEditor
LineScrollEditor
SetTabStopsEditor
ReadOnlyEditor
GetFirstVisibleLineEditor
SetRectEditor
GetCurrentIndexCharEditor
RebarGadget
AddRebarTab
GetCountTabRebarGadget
GetHeightRebarGadget
GetTextRebarGadget
SetTextRebarGadget
MoveTabRebarGadget
DeleteTabRebarGadget
IDinIndexRebarGadget
GradientFillDraw

Кроме всего прочего, добавлено:
1) Поддержка рисования с прозрачностью для некоторых функций.
2) Исправлены ошибки, какие были обнаружены
3) Дополнена справка:
а) добавлены параметры по умолчанию для всех функций
б) добавлены фотографии для почти всех функций для лучшего понимания(размер архива заметно вырос)
в) другие мелкие недочеты

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  trew в Вт Апр 26, 2011 4:19 pm

Пример(не самый лучший) сохранения в иконку 32х32 , просто тупо переписал с PureBasic. Если кто знает пример лучше, прошу поделится.

Код:
#Include "window9.bi"
function Save_Icon(ByVal HBMP As HBITMAP,ByVal FileName As string,ByVal TransparentColor As Integer=16777216) As Integer
   ImageStartDraw(HBMP)
   Dim As Integer X,Y,I,Farbe,AddToList,ThisValue,MIN_I,MIN_DIF,NEW_RED,NEW_GREEN,NEW_BLUE,LastByte,OrVal,_
   UsedColorCnt=1,HotspotX=32,HotspotY=32
   
   Var handle=Create_File(FileName)
   If handle=0 Then Return 0

   Restore ICON_HEADER_256_COLORS
   For I=1 To 62
      Read ThisValue
      If I=&hB Then
         Write_Data(Handle,@HotspotX,1)
      ElseIf I=&hD Then
         Write_Data(handle,@HotspotY,1)
      Else
         Write_Data(handle,@ThisValue,1)
      EndIf
   Next I
   Dim UsedColors(255) As Integer
   UsedColors(0)=0
   For Y=31 To 0 Step -1
      For X=0 To 31 Step 1
         Farbe=GetPix(X,Y)
         AddToList=1
         For I=0 To UsedColorCnt
            If Farbe=UsedColors(I) Then
               AddToList=0
               I=UsedColorCnt
            EndIf
         Next I
         If UsedColorCnt=255 And AddToList Then
            MIN_I=1
            MIN_DIF=0
            For I=1 To UsedColorCnt
               If Abs(Farbe-UsedColors(I))<MIN_DIF Or I=1 Then
                  MIN_I=I
                  MIN_DIF=Abs(Farbe-UsedColors(I))
               EndIf
            Next I
            NEW_RED=(GetRValue(Farbe)+GetRValue(UsedColors(MIN_I)))/2
            NEW_GREEN=(GetGValue(Farbe)+GetGValue(UsedColors(MIN_I)))/2
            NEW_BLUE=(GetBValue(Farbe)+GetBValue(UsedColors(MIN_I)))/2
            UsedColors(MIN_I)=BGR(NEW_RED,NEW_GREEN,NEW_BLUE)
         ElseIf UsedColorCnt<>255 And AddToList Then
            UsedColors(UsedColorCnt)=Farbe
            UsedColorCnt+=1
         EndIf
      Next X
   Next Y

   For I=0 To UsedColorCnt
      Write_Byte(Handle,GetBValue(UsedColors(I)))
      Write_Byte(Handle,GetGValue(UsedColors(I)))
      Write_Byte(Handle,GetRValue(UsedColors(I)))
      Write_Byte(Handle,0)
   Next I

   For I=UsedColorCnt+1 To 255
      Write_Integer(Handle,0)
   Next I

   For Y=31 To 0 Step -1
      For X=0 To 31 Step 1
         Farbe=GetPix(X,Y)
         If Farbe<>TransparentColor Then
            MIN_I=0
            For I=0 To UsedColorCnt
               If Abs(Farbe-UsedColors(I))<MIN_DIF Or I=0 Then
                  MIN_I=I
                  MIN_DIF=Abs(Farbe-UsedColors(I))
               EndIf
            Next I
            Farbe=MIN_I
         Else
            Farbe=0
         EndIf
         Write_Data(Handle,@Farbe,1)
      Next X
   Next Y


   For Y=31 To 0 Step -1
      For X=0 To 31 Step 8
         LastByte=0
         For I=0 To 7
            Farbe=GetPix(X+I,Y)
            If Farbe=TransparentColor Then
               Select Case I
                  Case 7:OrVal=1
                  Case 6:OrVal=2
                  Case 5:OrVal=4
                  Case 4:OrVal=8
                  Case 3:OrVal=16
                  Case 2:OrVal=32
                  Case 1:OrVal=64
                  Case 0:OrVal=128
               End Select
               LastByte= LastByte Or OrVal
            EndIf
         Next I
         Write_Data(Handle,@LastByte,1)
      Next X
   Next Y

   Close_File(handle)
   StopDraw
   Return 1
End Function
ICON_HEADER_256_COLORS:
Data &h00,&h00,&h01,&h00,&h01,&h00,&h20,&h20,&h00,&h00,&h00,&h00,&h00,&h00,&hA8,&h08,&h00,&h00,&h16,&h00,&h00,&h00,&h28,&h00,&h00,&h00,&h20,&h00,&h00,&h00,&h40,&h00,&h00,&h00,&h01,&h00,&h08,&h00,&h00,&h00,&h00,&h00,&h80,&h04,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00


Save_Icon(Load_image("1.png"),"1.ico")

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  DEPOzit в Вт Апр 26, 2011 4:57 pm

Класно! Вижу и баг с хоткееями (AddKeyboardShortcut) исправил. Думаю данная библиотека заслуживает того, чтобы входить в дистрибутив freebasic'а. Cool

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  trew в Вт Апр 26, 2011 5:24 pm

Думаю данная библиотека заслуживает того, чтобы входить в дистрибутив freebasic'а.

Ее не внесут хотя бы из-за размера справки (7 мб) + русский язык. Может есть и другие причины...

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  DEPOzit в Вт Апр 26, 2011 5:39 pm

Справка это не главный критерий), да и русский язык можно переделать в инглиш. Главное думаю не останавливаться на достигнутом.

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  DEPOzit в Вт Апр 26, 2011 6:31 pm

Над реализацией иконки слева вверху окна не думал еще?

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  trew в Вт Апр 26, 2011 7:35 pm

DEPOzit пишет:Над реализацией иконки слева вверху окна не думал еще?

Честно говоря нет. Надо будет сделать.

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  DEPOzit в Вт Апр 26, 2011 11:46 pm

Применяю EditorGadget и текст дополняется вниз, а скрол при этом остается в верхней позиции. Как сделать так, чтобы текст автоматически скролился до последней строчки?

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  trew в Ср Апр 27, 2011 6:25 am

DEPOzit пишет:Применяю EditorGadget и текст дополняется вниз, а скрол при этом остается в верхней позиции. Как сделать так, чтобы текст автоматически скролился до последней строчки?

Код:
#Include "window9.bi"

Dim As integer event
Dim As String buf
Var hwnd=OpenWindow("1",300,10,500,400)
EditorGadget(1,10,10,300,300, "")
ButtonGadget(2,350,20,100,20,"Scroll")

For a As Integer=1 To 500
 buf+="String №" & a & Chr(10)
Next
SetGadgetText(1,buf)
Do
 event=WaitEvent()
 If event=EventClose Then End
 If event=EventGadget Then
  If EventNumber=2 Then
  LineScrollEditor(1,GetLineCountEditor(1)-2 )
  EndIf 
 EndIf
Loop

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  DEPOzit в Ср Апр 27, 2011 6:28 am

Я пробовал с LineScrollEditor, что-то как-то он не так работает.(

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  trew в Ср Апр 27, 2011 6:37 am

DEPOzit пишет:Я пробовал с LineScrollEditor, что-то как-то он не так работает.(

Пример этот работает? Если да ищи ошибки в своем коде.

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  DEPOzit в Ср Апр 27, 2011 6:40 am

Данный код работает каждый раз по разному. Где мы видим 1 строку, где неодной, где полный столбец.

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  trew в Ср Апр 27, 2011 7:00 am

DEPOzit пишет:Данный код работает каждый раз по разному. Где мы видим 1 строку, где неодной, где полный столбец.

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

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  DEPOzit в Ср Апр 27, 2011 7:19 am

Ну вобщем дело обстоит так):
Запускаем, нажимаем Scroll. Видим одну строку 500 (хотя хотелось бы видить полный ряд). Потом нажимаем один раз вверх - бац, видим весь столбец. Потом еще раз вверх - тут все нормально (поднялись на одну позицию). Потом жмем Scroll - вобще все исчезает.

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  trew в Ср Апр 27, 2011 7:39 am

DEPOzit пишет:Ну вобщем дело обстоит так):
Запускаем, нажимаем Scroll. Видим одну строку 500 (хотя хотелось бы видить полный ряд). Потом нажимаем один раз вверх - бац, видим весь столбец. Потом еще раз вверх - тут все нормально (поднялись на одну позицию). Потом жмем Scroll - вобще все исчезает.

Ну дружище, этот код только для примера. Неужели не читаешь справку? Функция LineScrollEditor
прокручивает текст на нужное кол-во строк по вертикали.
Если у тебя стоит на 400-500 строке, то +500, что будет?


trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  DEPOzit в Ср Апр 27, 2011 7:47 am

Понятно. А др. способа нет? Просто тут приходится морочится с текущей позицией скрола, размером едитгаджета, колличеством строк в гаджете. Согласись не айс))).

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  trew в Ср Апр 27, 2011 8:01 am

DEPOzit пишет:Понятно. А др. способа нет? Просто тут приходится морочится с текущей позицией скрола, размером едитгаджета, колличеством строк в гаджете. Согласись не айс))).

Согласен, но без труда... Погугли может и найдешь что-то, но на других языках я не встречал чего-то нового, везде именно такой способ. Кстати ты забыл, еще надо учитывать размер шрифта. Если нужно сделать хороший редактор, то самое простое - использовать Scintilla.

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  DEPOzit в Ср Апр 27, 2011 6:54 pm

Переделал IRC-чат (исходник взял из немецкого сайта) из консольного в WinApi'вский интерфейс благодаря твоей библиотеки. Довольно-таки интересно получилось: http://freebasic.ru/counter/counter.php?zak=irc_fbru

DEPOzit

Сообщения : 113
Дата регистрации : 2008-05-15
Возраст : 35
Откуда : Смоленская обл.

Посмотреть профиль http://freebasic.ru/

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  trew в Вс Май 15, 2011 10:23 am

Библиотека обновлена, добавлены функции:

CreateIconOrCursorFromFile
CreateIconOrCursorFromBitmap
SaveIconOrCursor
CreateFBini
OpenFBini
CloseFBini
WriteGroupFBini
WriteValueFBini
ReadByteValueFBini
ReadShortValueFBini
ReadIntegerValueFBini
ReadLongintValueFBini
ReadDoubleValueFBini
ReadStringValueFBini

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  trew в Чт Май 26, 2011 7:22 am

Вот ЗДЕСЬ разместил онлайн справку по функциям.

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  DoReMi в Пт Май 27, 2011 4:52 pm

Объем работы впечатляет...

А нет ли в перспективе если не DBGrid'a, то хотя бы какого-то примитивного StringGrid'а?
avatar
DoReMi

Сообщения : 67
Дата регистрации : 2008-08-28
Возраст : 44
Откуда : Волгодонск

Посмотреть профиль http://doreonline.blogspot.com

Вернуться к началу Перейти вниз

Re: FreeBasic похожий на PureBasic

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Страница 3 из 6 Предыдущий  1, 2, 3, 4, 5, 6  Следующий

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения