007wan |
Отправлено: 05 Декабря, 2019 - 15:03:48
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: Цитата: TextOut Win Api показывает текст в строчку или так же как и textout?
Это одно и тоже. Ничто не мешает выводить несколько textout'ов.
CODE:string rn=formatic(13)+formatic(10);
string s="123"+rn+"qwerty"+rn+"789";
messagebox(s);
string s2[99];
int count=regexsearch(sizearray(s2), #s2[0], s, "[^\r\n]+");
textbkcolor(255, 65280);
looptime(3000)
{
for(int i=0; i<count; i++)textout(i, 300, 100+i*30, s2[i], 1);
sleep(10);
} Помните в теме где регулярные выражения? Вот последнее сообщение, где я писал "Спасибо", и там выше ваш код, помните коробки разделенные ";"? Названия коробок Название{суть1|суть2}; итд? как теперь вывести все коробки что бы было несколько textout? Напомню разделитель КОРОБОК это точка с запятой в начале нету точки с запятой, после первой она появляется
(Добавление)
Точнее не могу понять как парсить текст из буфера, а потом выводить его многострочием |
|
|
Zireael |
Отправлено: 06 Декабря, 2019 - 03:09:49
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: выводить его многострочием
https://drive.google.com/open?id...TIE2-0ldZYQrim7Z
Длл закинуть в папку с кибор.
code (Отобразить)CODE:// Ctrl+Alt+Z отключение вывода всех надписей
external(VOID, "begin_paint", "begin_paint", pathfolder()+"Draw.dll");
external(VOID, "end_paint", "end_paint", pathfolder()+"Draw.dll");
external(VOID, "enable_item", "enable_item", pathfolder()+"Draw.dll");
external(VOID, "disable_item", "disable_item", pathfolder()+"Draw.dll");
external(VOID, "Textout", "textout", pathfolder()+"Draw.dll");
int X=0;
string rn=formatic(13)+formatic(10);
begin_paint(); // начать рисовать
Textout(0, 500, 200, "Это"+rn+"Многострочный"+rn+"текст", 255, 16766338, "Tahoma", -24, 0,0,0,0,0,0,0);
Textout(1, 500, 300, "Наклонный текст", 65279, -1, "Comic Sans MS", -36, 0,40,0,0,0,0,0);
Textout(2, 500, 400, "Текст без фона", 65280, -1, "Time New Roman", -36, 0,0,0,0,0,0,0);
looptime(2000)sleep(100); // цикл на 2 секунды
disable_item("textout", 1); // отключаем Textout с номером 1
looptime(2000)sleep(100); // цикл на 2 секунды
enable_item("textout", 1); // включаем отключенный Textout с номером 1
looptime(5000) // цикл на 5 секунд
{
Textout(3, 500, 500, "Переменная X = "+format(X), 16000000, 65280, "Arial", -36, 0,0,0,0,0,0,0);
X++;
sleep(50);
}
end_paint(); // закончить рисовать
Описание позже напишу, когда допишу длл.
Функция Textout принимает:
Первый параметр - номер сообщения от 0 до 999 (если надо добавлю ещё).
Второй, третий - позиция по X и Y.
Четвёртый - текст.
Пятый - цвет текста.
Шестой - цвет фона или -1 если нужен прозрачный фон.
Седьмой - имя шрифта.
Восьмой - Пятнадцатый - первые 8 параметров CreateFontA, т. е размер шрифта, расстояние между символами и прочее. |
|
|
007wan |
Отправлено: 06 Декабря, 2019 - 06:57:04
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: Цитата: выводить его многострочием
https://drive.google.com/open?id...TIE2-0ldZYQrim7Z
Длл закинуть в папку с кибор.
code (Отобразить)CODE:// Ctrl+Alt+Z отключение вывода всех надписей
external(VOID, "begin_paint", "begin_paint", pathfolder()+"Draw.dll");
external(VOID, "end_paint", "end_paint", pathfolder()+"Draw.dll");
external(VOID, "enable_item", "enable_item", pathfolder()+"Draw.dll");
external(VOID, "disable_item", "disable_item", pathfolder()+"Draw.dll");
external(VOID, "Textout", "textout", pathfolder()+"Draw.dll");
int X=0;
string rn=formatic(13)+formatic(10);
begin_paint(); // начать рисовать
Textout(0, 500, 200, "Это"+rn+"Многострочный"+rn+"текст", 255, 16766338, "Tahoma", -24, 0,0,0,0,0,0,0);
Textout(1, 500, 300, "Наклонный текст", 65279, -1, "Comic Sans MS", -36, 0,40,0,0,0,0,0);
Textout(2, 500, 400, "Текст без фона", 65280, -1, "Time New Roman", -36, 0,0,0,0,0,0,0);
looptime(2000)sleep(100); // цикл на 2 секунды
disable_item("textout", 1); // отключаем Textout с номером 1
looptime(2000)sleep(100); // цикл на 2 секунды
enable_item("textout", 1); // включаем отключенный Textout с номером 1
looptime(5000) // цикл на 5 секунд
{
Textout(3, 500, 500, "Переменная X = "+format(X), 16000000, 65280, "Arial", -36, 0,0,0,0,0,0,0);
X++;
sleep(50);
}
end_paint(); // закончить рисовать
Описание позже напишу, когда допишу длл.
Функция Textout принимает:
Первый параметр - номер сообщения от 0 до 999 (если надо добавлю ещё).
Второй, третий - позиция по X и Y.
Четвёртый - текст.
Пятый - цвет текста.
Шестой - цвет фона или -1 если нужен прозрачный фон.
Седьмой - имя шрифта.
Восьмой - Пятнадцатый - первые 8 параметров CreateFontA, т. е размер шрифта, расстояние между символами и прочее.
В интернете читал,что у api DrawText, еслипоставить \n, то нарисует с перенесением на новую строчку, другой вопрос: сохрвнится ли это в буфере а потом можно выводить в DrawText,(через) |
|
|
Zireael |
Отправлено: 06 Декабря, 2019 - 13:17:59
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Как взять у sizearray либо 5, либо 3??
CODE:string Text_Checkboxes[5][3];
messagebox (sizearray(Text_Checkboxes));
messagebox (sizearray(Text_Checkboxes[])); |
|
|
007wan |
Отправлено: 06 Декабря, 2019 - 13:29:01
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael , Что-то я не много запутался.
CODE:string Text_Checkboxes[3][3];
//Создать тексты для галочек:
//первый [3] - к какой галочке, их всего 3
//второй [3] - текст к этой галочке, всего3 текста
//описание текста..:
Text_Checkboxes[0][0] = "Галочка Klondike №1"; Text_Checkboxes[0][1] = "Галочка Klondike №2"; Text_Checkboxes[0][2] = "Галочка Klondike №3";
Text_Checkboxes[1][0] = "Галочка Tankionline №1"; Text_Checkboxes[1][1] = "Галочка Tankionline №2"; Text_Checkboxes[1][2] = "Галочка Tankionline №3";
Text_Checkboxes[2][0] = "Галочка Crossout №1"; Text_Checkboxes[2][1] = "Галочка Crossout №2"; Text_Checkboxes[2][2] = "Галочка Crossout №3";
int Checkboxes[3][3];
//первый [3] - количетство галочек
//второй [3] для заполнения текста и создания галочки для CreateWindow
WM_CREATE//
int Step = 0;
for (int v=0; v<sizearray(Checkboxes); v++)
{
for (int y=0; y<sizearray(Checkboxes[]); y++)
{
Checkboxes[v] = CreateWindow(0, "BUTTON", Text_Checkboxes[v], BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE, 20, 75+Step, 180, 20, gethwnd(0), 0, 0, 0);
Step = Step+20;
ShowWindow(Checkboxes[y], SW_HIDE);
}
}
|
|
|
|