Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 0
Регистрация: 15.08.2021
Сообщений: 9

Исчезают текстовые поля с формы

28.12.2024, 11:59. Показов 778. Ответов 6

Студворк — интернет-сервис помощи студентам
Добрый день.
Описание проблемы. При запуске программы появляется окно фото 001, спустя пару секунд окно принимает вид на фото 002. Но если запускать с помощью отладчика через F9, то окно принимает тот вид, который задуман - фото 003.
Кто может объяснить в чём глюк и что делать? Исходный файл прикладываю. Версия PureBasic 5.11.

PureBasic
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
; Пока программа жестко работает с портом 8 и не ведёт поиск подключенных устройств
#WINDOW_MAIN = 0
#BUTTON_SEND = 1
#BUTTON_CLEAR = 6
#TEXT_COUNT_STR = 7
#WINDOW_GRAF = 10
#STRING_TEMPERAT = 11
#STRING_DELTA = 12
#STRING_FROST = 13
#STRING_DEFROST = 14
 
#COM_Port = 8 ;Идентификатор COM порта. 
Global i_Count.i
Global flag_Temp.i
Global i_Temp.i = 1024
Global.i Dim Massiv_Temp(1024)
 
; Подпрограмма рисования графика в отдельном окне.
Procedure Draw_Graf()
        HideWindow(#WINDOW_GRAF,#False,#PB_Window_NoActivate)
        SetActiveWindow(#WINDOW_GRAF)
        StartDrawing(WindowOutput(#WINDOW_GRAF))
        ; Рисуем чистое белое поле
        Box(5,5,1040,110,RGB(255,255,255))
        ; Рисуем рамку вокруг окна
        Line(1,1,1050,1,RGB(0,0,255))
        Line(1,118,1050,1,RGB(0,0,255))
        Line(1,1,1,118,RGB(0,0,255))
        Line(1049,1,1,118,RGB(0,0,255))
        ; Рисуем оси координат
        Line(10,110,1030,1,RGB(0,0,0))
        Line(10,10,1,100,RGB(0,0,0))
        ; Рисуем штрихи по оси X
        For i = 1 To 7
          Line(i*146,106,1,9,RGB(0,0,0))
        Next i
        For i = 0 To 6
          Line(i*146+73,108,1,5,RGB(0,0,0))
        Next i
        ; Рисуем штрихи по оси Y через 5 градусов
        Line(6,10,9,1,RGB(0,0,0))
        Line(8,35,5,1,RGB(0,0,0))
        Line(6,60,9,1,RGB(0,0,0))
        Line(8,85,5,1,RGB(0,0,0))
        ; Рисуем горзонтальные светлие линии 
        Line(20,10,1008,1,RGB(220,220,220))
        Line(20,35,1008,1,RGB(220,220,220))
        Line(20,60,1008,1,RGB(220,220,220))
        Line(20,85,1008,1,RGB(220,220,220))
        ;StopDrawing()
        
        ;SetActiveWindow(#WINDOW_GRAF)
        ;StartDrawing(WindowOutput(#WINDOW_GRAF))
        For i = 1 To 1024
          ;Massiv_Temp(i-1)=Massiv_Temp(i)
          ;Plot(i+10,110-Massiv_Temp(i)*5, RGB(255,0,0))
          If i = 0
            Plot(i+10,110-Massiv_Temp(i)*5, RGB(255,0,0))
          EndIf
          Line(i+10,110-Massiv_Temp(i)*5, 1,(Massiv_Temp(i)-Massiv_Temp(i-1))*5+1, RGB(255,0,0))
        Next i
        StopDrawing()
        SetActiveWindow(#WINDOW_MAIN)
        Debug Massiv_Temp(1024)
 
EndProcedure
 
;Процедура открытия порта. выбранного из списка 
Procedure Select_ComPort()  
Protected Port.s, Text.s, Color  
If IsSerialPort(#COM_Port) ;С таким ИД уже открыт порт.  
  CloseSerialPort(#COM_Port)  ;Закрываем его. 
EndIf  
Port = GetGadgetText(3) ;Тут открываем порт с необходимыми настройками 
If OpenSerialPort(#COM_Port,Port,19200,#PB_SerialPort_NoParity,8,1,#PB_SerialPort_NoHandshake,255,255) 
  Text="Порт "+Port+" открыт" : Color=RGB(46, 137, 36) 
Else  
  Text="Не удалось открыть порт "+Port : Color=RGB(255,0,0) 
EndIf  
;SetGadgetText(5, Text)  
;SetGadgetColor(5, #PB_Gadget_FrontColor, Color)  
EndProcedure 
 
;Процедура приема данных
Procedure InData()   
 Protected InBytes
 
 If IsSerialPort(#COM_Port)  ;С таким ИД порт открыт. 
  InBytes = AvailableSerialPortInput(#COM_Port) 
  If InBytes>0  ;Получены данные. 
    Protected Dim InBuffer.a(InBytes), RealInBytes 
    RealInBytes = ReadSerialPortData(#COM_Port, @InBuffer(), InBytes) 
    
    If RealInBytes>0 
      ;Text$ = PeekS(@InBuffer(), RealInBytes, #PB_Ascii) ; Заполняем переменную Text$ символами из буфера COM-порта
      Text$ = PeekS(@InBuffer(), RealInBytes) ; Заполняем переменную Text$ символами из буфера COM-порта
      Text$ = Left(Text$, Len(Text$)-2)
      ;AddGadgetItem(4, -1, FormatDate("%dd/%mm/%yy %hh:%ii:%ss",Date()) +": " +Text$) ;В гаджет Editor передаем текущую ситсемную дату и время
                                                                                      ;и дописываем Text$ = данные из COM-порта
      AddGadgetItem(4, 0, FormatDate("%dd/%mm/%yy %hh:%ii:%ss",Date()) +": " +Text$) ;Новые строки появляются вверху.
      
      If Mod(Minute(Date()),10)=0
        If Left(Text$,20) = "Current temperature:"
          If flag_Temp = 0 
            i_Temp = i_Temp - 1
            flag_Temp = 1 ; Устанавливаем флаг в единицу, отмечаем что запись в массив в данные 10 минут произведена
            If Val(Right(Test$,2)) > 19 
              Massiv_Temp(1024) = 20
            Else
              Massiv_Temp(1024) = Val(Right(Text$,2))
            EndIf
            For i = 1 To 1024
              Massiv_Temp(i-1)=Massiv_Temp(i)
            Next i
            Draw_Graf()
            ;Debug Massiv_Temp(1020)
            ;Debug Massiv_Temp(1021)
            ;Debug Massiv_Temp(1022)
            ;Debug Massiv_Temp(1023)
            ;Debug Massiv_Temp(1024)
            SetActiveWindow(#WINDOW_MAIN)
          EndIf  
        EndIf
      Else
        flag_Temp = 0 ; сбрасываем флаг, отмечаем, что десятиминутка закончилась и можно ждать следующие 10 минут, чтобы записать в массив
      EndIf
      
    EndIf 
  EndIf 
EndIf 
CountLines.i = CountGadgetItems(4)
SetGadgetText(#TEXT_COUNT_STR,"Получено: " + Str(CountLines-1) + " строк") ; Выводим количество строк
;SetGadgetItemText(4,CountLines,"") ; Устанавливаем позицию в EditorGadget на последнюю строку - не работает.
EndProcedure 
 
;Процедура передачи данных
Procedure ComOut(Send_data.s)  
 
 If IsSerialPort(#COM_Port) ;если порт открыт 
  WriteSerialPortData(SerialPortID(#COM_Port),@send_data,1) ;Шлем данные из переменной Send_data 
 Else 
 ;Выводим сообщение об ошибке. 
 MessageRequester("Ошибка","Текущий порт не доступен!",16) 
 EndIf 
 
EndProcedure 
 
; Процедура выделения числа из строки с числом
Procedure ValFromString(Stroka.s)
  i.i = 0
  Ch.s = ""
  Ch2.s = ""
  Chislo.i = 0
  
  For i = 1 To Len(Stroka)
    ch = Mid(Stroka,i,1)
    If ch > "0" And ch < "9"
      ch2 = ch2 + ch
    EndIf
  Next i
  Chislo = Val(ch2)
  ProcedureReturn Chislo  
EndProcedure
 
If OpenWindow(#WINDOW_MAIN, 300, 100, 420, 400, "Монитор охладителя",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_Tool) ;Создаем окно программы
 ;SetActiveWindow(0)
 SetActiveWindow(#WINDOW_MAIN)
 ButtonGadget(#BUTTON_SEND, 310, 335, 100, 35, "Отправить", #PB_Button_Default) ;Кнопка "Зажечь"
 TextGadget(2,10,330,25,15,"Порт") ;Выводим в окно надпись "Порт". 
 ComboBoxGadget(3, 10, 345, 70, 21, #PB_ComboBox_Editable) ;гаджет выпадающего списка
 For i=1 To 99 ;создаем список от 1 до 99 с возможными портами для открытия
   If OpenSerialPort(i,"COM"+Str(i),19200,#PB_SerialPort_NoParity,8,1,#PB_SerialPort_NoHandshake,1024,1024)
     AddGadgetItem(3,-1,"COM"+Str(i)) 
     CloseSerialPort(i)  ;Закрываем текущий проверенный порт.В принципе работает и без закрытя порта, но будем придерживаться
                         ;правила, что надо закрыть/освободить неиспользуемые ресурсы
    EndIf
 Next i 
 SetGadgetState(3,0) ;Делаем активным нулевой пункт выпадающего списка. 
 EditorGadget(4, 8, 10, 405, 280,#PB_String_ReadOnly) 
 ;TextGadget(5,10,350,200,15,"")  ;Здесь будет отображаться результат открытия порта. 
 ButtonGadget(#BUTTON_CLEAR, 10, 292, 100, 25, "Очистить", #PB_Button_Default) ;Кнопка "Очистить"
 TextGadget(#TEXT_COUNT_STR,150,295,150,15,"Получено: 0 строк") ;Выводим текстовое поле кол-во строк с порта. 
 CheckBoxGadget(8,305,295,150,15,"Показать график")
 ;OpenWindow(#WINDOW_GRAF,100,50,1050,120,"График изменения температуры",#PB_Window_BorderLess)
 TextGadget(21,130,315,150,70,"Температура:")
 TextGadget(22,130,335,150,70,"Отклонение:")
 TextGadget(23,130,355,150,70,"Время охлаждения:")
 TextGadget(24,130,375,150,70,"Время разморозки: ")
 StringGadget(#STRING_TEMPERAT,280,315,20,17,"7",#PB_String_Numeric) 
 StringGadget(#STRING_DELTA,280,335,20,17,"0",#PB_String_Numeric) 
 StringGadget(#STRING_FROST,280,355,20,17,"2",#PB_String_Numeric) 
 StringGadget(#STRING_DEFROST,280,375,20,17,"5",#PB_String_Numeric) 
 
 OpenWindow(#WINDOW_GRAF,100,50,1050,120,"График изменения температуры",#PB_Window_Tool)
 HideWindow(#WINDOW_GRAF,#True,#PB_Window_NoActivate)
 
 
 ; Пока жёстко работаем с портом COM8
 i=8
 OpenSerialPort(i,"COM"+Str(i),19200,#PB_SerialPort_NoParity,8,1,#PB_SerialPort_NoHandshake,1024,1024) 
 
 For i = 1 To 256
              Massiv_Temp(i)=5
 Next i 
 For i = 257 To 512
              Massiv_Temp(i)=10
 Next i 
 For i = 513 To 768
              Massiv_Temp(i)=15
 Next i 
 For i = 769 To 1024
              Massiv_Temp(i)=20
 Next i 
 
 Repeat 
  Delay(100)
  Event = WindowEvent() 
 
  InData()  ;принимаем данные из UART все время пока работает программа
  If Event=#PB_Event_Gadget         ;если произошло срабатывание гаджета 
    Gadget = EventGadget ( )        ;узнаем какой гаджет был активирован 
    If Gadget=#BUTTON_SEND          ;если нажата кнопка "Отправить" 
      ComOut("A")                   ;Переходим на процедуру передачи байта. 
      InData() 
    ElseIf Gadget=3                 ;если был активирован выпадающий список
      ComboBox.s=GetGadgetText(3)    ;Считываем текст из текущего пункта выпадающего списка. 
                                     ; Переходим на процедуру, закрывающую текущий порт и открывающую выбранный. 
    ElseIf Gadget=#BUTTON_CLEAR     ;нажата кнопка "Очистить" 
      ClearGadgetItems(4)             ; очищаем содержимое гаджета EditorGadget 
    ElseIf Gadget=8                  ; Изменилось состояние чек-бокса "Показать график"
      If GetGadgetState(8) = #True
        ;HideWindow(#WINDOW_GRAF,#False,#PB_Window_NoActivate)
        Draw_Graf()
        ;Debug Massiv_Temp(1024)
      Else
        HideWindow(#WINDOW_GRAF,#True,#PB_Window_NoActivate)
      EndIf
    EndIf 
  EndIf 
 
 Until Event=#PB_Event_CloseWindow 
 
EndIf 
End
Миниатюры
Исчезают текстовые поля с формы   Исчезают текстовые поля с формы   Исчезают текстовые поля с формы  

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.12.2024, 11:59
Ответы с готовыми решениями:

Написать программу для вычисления функции. Ввод данных через текстовые поля формы
Написать программу для вычисления функции 2 * Cos(X * X) + 0.3 * (X * 2 * Y - 2) ^ 1 / 3, причем x и y вводятся в текстовые поля....

Исчезают заполненные поля из формы
Помогите советом, пожалуйста! В БД Access в форме «Редактирование запроса» (кн. «Добавить запрос») осуществляется ввод данных запроса,...

Очистить текстовые поля второй формы
Когда программа работает при открытии второй формы впервый раз с текстовыми полями и тд там все как надо пользователь вводит значения и...

6
Эксперт по электронике
6801 / 3228 / 335
Регистрация: 28.10.2011
Сообщений: 12,600
Записей в блоге: 7
28.12.2024, 15:00
Лучше использовать таймер. То есть заменить
PureBasic
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
26
27
  Repeat 
    Delay(100)
    Event = WindowEvent() 
    
    InData()  ;принимаем данные из UART все время пока работает программа
    If Event=#PB_Event_Gadget         ;если произошло срабатывание гаджета 
      Gadget = EventGadget ( )        ;узнаем какой гаджет был активирован 
      If Gadget=#BUTTON_SEND          ;если нажата кнопка "Отправить" 
        ComOut("A")                   ;Переходим на процедуру передачи байта. 
        InData() 
      ElseIf Gadget=3                 ;если был активирован выпадающий список
        ComboBox.s=GetGadgetText(3)   ;Считываем текст из текущего пункта выпадающего списка. 
                                      ; Переходим на процедуру, закрывающую текущий порт и открывающую выбранный. 
      ElseIf Gadget=#BUTTON_CLEAR     ;нажата кнопка "Очистить" 
        ClearGadgetItems(4)           ; очищаем содержимое гаджета EditorGadget 
      ElseIf Gadget=8                 ; Изменилось состояние чек-бокса "Показать график"
        If GetGadgetState(8) = #True
          ;HideWindow(#WINDOW_GRAF,#False,#PB_Window_NoActivate)
          Draw_Graf()
          ;Debug Massiv_Temp(1024)
        Else
          HideWindow(#WINDOW_GRAF,#True,#PB_Window_NoActivate)
        EndIf
      EndIf 
    EndIf 
    
  Until Event=#PB_Event_CloseWindow
На
PureBasic
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
26
27
28
29
30
  AddWindowTimer(#WINDOW_MAIN, 0, 100)
  
  Repeat 
    Event = WaitWindowEvent() 
    
    If Event=#PB_Event_Gadget         ;если произошло срабатывание гаджета 
      Gadget = EventGadget ( )        ;узнаем какой гаджет был активирован 
      If Gadget=#BUTTON_SEND          ;если нажата кнопка "Отправить" 
        ComOut("A")                   ;Переходим на процедуру передачи байта. 
        InData() 
      ElseIf Gadget=3                 ;если был активирован выпадающий список
        ComboBox.s=GetGadgetText(3)   ;Считываем текст из текущего пункта выпадающего списка. 
                                      ; Переходим на процедуру, закрывающую текущий порт и открывающую выбранный. 
      ElseIf Gadget=#BUTTON_CLEAR     ;нажата кнопка "Очистить" 
        ClearGadgetItems(4)           ; очищаем содержимое гаджета EditorGadget 
      ElseIf Gadget=8                 ; Изменилось состояние чек-бокса "Показать график"
        If GetGadgetState(8) = #True
          ;HideWindow(#WINDOW_GRAF,#False,#PB_Window_NoActivate)
          Draw_Graf()
          ;Debug Massiv_Temp(1024)
        Else
          HideWindow(#WINDOW_GRAF,#True,#PB_Window_NoActivate)
        EndIf
      EndIf
      
    ElseIf Event = #PB_Event_Timer And EventTimer() = 0
      InData()  ;принимаем данные из UART все время пока работает программа
    EndIf 
    
  Until Event=#PB_Event_CloseWindow
0
3 / 3 / 0
Регистрация: 15.08.2021
Сообщений: 9
28.12.2024, 17:02  [ТС]
locm, спасибо. Но это проблему не решило.
0
Эксперт по электронике
6801 / 3228 / 335
Регистрация: 28.10.2011
Сообщений: 12,600
Записей в блоге: 7
28.12.2024, 17:38
Скорее всего в момент чтения из порта принята не вся строка.
Нужно ждать пока будет принята целиком и только тогда анализировать.
0
3 / 3 / 0
Регистрация: 15.08.2021
Сообщений: 9
05.01.2025, 21:06  [ТС]
В общем переписал программу с нуля. Всё нормально. Однако выявился новый прикол.
В коде :
PureBasic
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
26
27
28
29
30
31
32
33
34
Procedure OpenWindow_MAIN(x = 0, y = 0, width = 600, height = 420)
  Window_MAIN = OpenWindow(#PB_Any, x, y, width, height, "Монитор охладителя", #PB_Window_SystemMenu | #PB_Window_Tool | #PB_Window_ScreenCentered)
  Editor_DATA = EditorGadget(#PB_Any, 10, 10, 580, 280, #PB_Editor_ReadOnly)
  Checkbox_GRAF = CheckBoxGadget(#PB_Any, 480, 297, 110, 20, "Показать график")
  Text_COUNT_STR = TextGadget(#PB_Any, 130, 300, 140, 20, "Принято 0 строк")
  Checkbox_SAVE = CheckBoxGadget(#PB_Any,340,297,130,20,"Записывать в файл")
  Button_CLEAR = ButtonGadget(#PB_Any, 10, 297, 100, 20, "Очистить")
  Combo_PORT = ComboBoxGadget(#PB_Any, 30, 360, 70, 20, #PB_ComboBox_Editable)
  Button_PORT = ButtonGadget(#PB_Any, 110, 340, 90, 40, "Подключить")
  Text_PORT = TextGadget(#PB_Any, 30, 340, 70, 20, "Выбор порта")
  Text_TEMPER = TextGadget(#PB_Any, 210, 340, 120, 20, "Температура:", #PB_Text_Right)
  Text_HISTER = TextGadget(#PB_Any, 210, 360, 120, 20, "Отклонение:", #PB_Text_Right)
  Text_FROST = TextGadget(#PB_Any, 210, 380, 120, 20, "Время охлаждения:", #PB_Text_Right)
  Text_UNFROST = TextGadget(#PB_Any, 210, 400, 120, 20, "Время разморозки:", #PB_Text_Right)
  String_TEMPER = StringGadget(#PB_Any, 340, 337, 40, 20, "7")
  String_HISTER = StringGadget(#PB_Any, 340, 357, 40, 20, "0")
  String_FROST = StringGadget(#PB_Any, 340, 377, 40, 20, "2")
  String_UNFROST = StringGadget(#PB_Any, 340, 397, 40, 20, "5")
  Button_SEND = ButtonGadget(#PB_Any, 390, 340, 100, 70, "Отправить параметры в охладитель", #PB_Button_Default | #PB_Button_MultiLine)
  StartDrawing(WindowOutput(Window_MAIN))
  Line(10,324,580,1,RGB(0,0,230))
  Line(10,325,580,1,RGB(50,50,230))
  Line(10,326,580,1,RGB(150,150,200))
  Line(10,327,580,1,RGB(200,200,200))
  StopDrawing()
  For i=1 To 99 ;создаем список от 1 до 99 с возможными портами для открытия
   If OpenSerialPort(i,"COM"+Str(i),19200,#PB_SerialPort_NoParity,8,1,#PB_SerialPort_NoHandshake,1024,1024)
     AddGadgetItem(Combo_PORT,-1,"COM"+Str(i)) 
     CloseSerialPort(i)  ;Закрываем текущий проверенный порт.В принципе работает и без закрытя порта, но будем придерживаться
                         ;правила, что надо закрыть/освободить неиспользуемые ресурсы
    EndIf
  Next i 
  SetGadgetState(Combo_PORT,0) ; Выбираем в списке портов нулевой элемент (то есть первый найденный, просто отсчёт идет с нуля)
EndProcedure
рисуется линия. Так в версии 5.11 всё работает как положено.
https://disk.yandex.com/i/logxPZ3-YihH8g
А в версии 6.12 х64 линия исчезает после заполнения гаджета CoM-портов.
https://disk.yandex.com/i/tW4q5gdwZ1GMMg
Ничего не понятно, но очень интересно.
0
Эксперт по электронике
6801 / 3228 / 335
Регистрация: 28.10.2011
Сообщений: 12,600
Записей в блоге: 7
05.01.2025, 21:37
Лучше разместить канвас в окне и рисовать на нем. Рисование по окну нужно использовать только тогда когда действительно нужно, т. к. при перерисовке окна то что ранее нарисовано не сохраняется.
1
3 / 3 / 0
Регистрация: 15.08.2021
Сообщений: 9
14.01.2025, 09:41  [ТС]
locm, спасибо. При использовании CANVAS пропала необходимость в обновлении окна после включения заставки виндовс.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2025, 09:41
Помогаю со студенческими работами здесь

Вывести значение выражения, предварительно введя значения переменных в соответствующие текстовые поля формы
Уже 3 дня никак не могу разобраться с этой задачей, я начинающий поэтому пока мало что понимаю помогите пожалуйста 1. Создайте в среде...

Создать генератор сказок. Ввод данных в текстовые поля формы. Сгенерированную сказку вывести в другое окно (JavaScript)
Создать генератор сказок. Ввод данных в текстовые поля формы. Сгенерированную сказку вывести в другое окно (JavaScript) Вроде все...

Записи подчиненной формы исчезают после фильтра основной формы
В каждом поле основной формы access имеются встроенные фильтры. Для их активации достаточно быть в поле и нажать правую кнопку мышки. Далее...

Исчезают поля в access
Есть бд access который подключен к sql серверу. Есть форма в которой есть 3 поля(Факультет, Специальность, Группа) в виде &quot;поля со...

Размеры многострочного текстового поля определяются значениями, введенными в однострочные текстовые поля
напишите программу по описанию. Размеры многострочного текстового поля определяются значениями, введенными в однострочные текстовые поля....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru