Skip to content

Commit 011cdbd

Browse files
committed
Update 3.builder.md
1 parent 39501e7 commit 011cdbd

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

docs/3.builder.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,31 @@ void build(sets::Builder& b) {
211211
}
212212
```
213213
214+
### Динамические ID
215+
Если нужны динамические виджеты с привязкой к БД и автоматическим генерированием имён с индексами в цикле, то нужно сложить строку (например через String) и взять у неё хэш:
216+
217+
```cpp
218+
for (int i = 0; i < 5; i++) {
219+
b.Switch(SH( (String("switch") + i).c_str() ));
220+
}
221+
```
222+
223+
Также можно использовать библиотеку [StringN](https://github.com/GyverLibs/StringN) - она работает в статической памяти и многократно быстрее String, а также сама умеет считать хэш:
224+
225+
```cpp
226+
for (int i = 0; i < 5; i++) {
227+
b.Switch((String8("switch") + i).hash());
228+
}
229+
```
230+
231+
БД умеет работать со строками напрямую и сама берёт у них хэш:
232+
233+
```cpp
234+
for (int i = 0; i < 5; i++) {
235+
db.init(String("switch") + i);
236+
}
237+
```
238+
214239
### Иконки лейблов
215240
Можно использовать emoji, они неплохо смотрятся в меню. Например с [удобного сайта](https://symbl.cc/ru/emoji/)
216241

0 commit comments

Comments
 (0)