Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/121: Рейтинг темы: голосов - 121, средняя оценка - 4.79
0 / 0 / 1
Регистрация: 16.11.2015
Сообщений: 8

Ввод текста в graphABC

24.11.2015, 20:04. Показов 24547. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что нужно прописать что-бы можно было вводить текст в окнах логина и пароля ?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
uses graphABC;
Begin
  setwindowsize(1280,680);
  FloodFill(30,30,clGoldenrod);
  rectangle(540,130,1140,180);
  rectangle(540,250,1140,300);
  rectangle(850,370,1140,470);
  rectangle(540,370,840,470);
  SetFontColor(clGold);
  SetFontSize(20);
  textout (500,50,'Авторизация');
  textout (945,400,'Выход');
  textout (650,400,'Вход');
  textout (400,135,'Логин');
  textout (400,255,'Пароль');
End.
Миниатюры
Ввод текста в graphABC  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.11.2015, 20:04
Ответы с готовыми решениями:

Ввод текста в graphABC
uses graphABC; Type Word=Record english:string; russian:string; synonym1:string; synonym2:string; synonym3:string;...

Ввод текста в обход GraphABC
Доброго дня. Подскажите, пожалуйста, каким образом можно организовать ввод текста при использовании GraphABC? Здесь витали темы такого...

Ввод данных с клавиатуы м GraphABC
Как правильно написать этот код? //КРИВЫЕ uses GraphABC; var a, b, c: integer; var

10
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33187 / 21484 / 8232
Регистрация: 22.10.2011
Сообщений: 36,861
Записей в блоге: 12
24.11.2015, 20:35
Нужно забыть про GraphABC и перейти на WinForms
0
0 / 0 / 1
Регистрация: 16.11.2015
Сообщений: 8
24.11.2015, 20:37  [ТС]
Мне нужно именно в GraphABC
0
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
24.11.2015, 21:14
Ввод текста в обход GraphABC
0
9 / 9 / 11
Регистрация: 22.10.2015
Сообщений: 81
24.11.2015, 22:47
Pascal
1
2
3
4
5
6
7
uses graphABC;
var
x : string;
begin 
readln (x);
textout (500, 50, x);
end.
Вот теория, щас Доработаю твою прогу и скину то что у меня получилось

Добавлено через 3 минуты
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uses graphABC;
var avt, par : string;
Begin
  setwindowsize(1280,680);
  FloodFill(30,30,clGoldenrod);
  rectangle(540,130,1140,180);
  rectangle(540,250,1140,300);
  rectangle(850,370,1140,470);
  rectangle(540,370,840,470);
  SetFontColor(clGold);
  SetFontSize(20);
  textout (500,50,'Авторизация');
  textout (945,400,'Выход');
  textout (650,400,'Вход');
  textout (400,135,'Логин');
  textout (400,255,'Пароль');
  readln (avt);
  textout (700, 135, avt);
  readln (par);
  textout (700, 255, par);
End.
вот исправленная твоя прога. Используй на здоровье)))
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33187 / 21484 / 8232
Регистрация: 22.10.2011
Сообщений: 36,861
Записей в блоге: 12
25.11.2015, 01:46
Цитата Сообщение от DeadMorose Посмотреть сообщение
Используй на здоровье)))
Ну да, чего ж не использовать-то.



Используй, используй. А если все-таки не хочешь, чтобы в самый ненужный момент произошло вот то, что показано на скриншоте - обрати внимание на предыдущий мой пост...
0
6 / 6 / 3
Регистрация: 14.11.2015
Сообщений: 21
25.11.2015, 14:06
readln в graphabc не прокатит, т.к. ввод будет происходить не в нарисованном поле ввода, а внизу экрана в отдельной строке. Или вообще в консольном окне - не пробовал, не знаю точно.

А чтобы ввод был, как будто вы используете формы, нужно использовать OnKeyDown.

То есть сначала пишете процедуту под названием, например, VvodLogin:

procegure VvodLogin (Key: integer);

begin
...
end;

после нужно задать обработчик события нажатия клавиши:

OnKeyDown:=VvodLogin; // Каждое событие нажатия на клавишу будет вызывать процедуру VvodLogin.

А вот в коде процедуры VvodLogin уже происходит вся обработка:
Key - это цифровой код нажатой клавиши. Нужно сначала определить, какие коды каким клавишам соответствуют. Для нажатий цифровых и буквенных клавиш нужно будет формировать строку : Login := Login + Key;
Для Delete, Enter и других несимвольных клавиш - свои действия.

Ну и вывод TextOut([x], [y], Login);
Login - переменная типа String, лучше сделать её глобальной.

Для пароля - своя функция VvodPassword(Key: integer);


Она будет вызываться OnKeyDown := VvodPassword;

Ну а какая функция будет когда вызываться - это будет зависеть от того, в какое поле тыкнешь мышью. Это нужно тоже отдельным обработчиком проверять.

Сейчас нет времени писать код, если нужно будет - вечером могу написать. Так-то сложного ничего особо нет, но все действия (щелчок мыши по соответствующему полю ввода, ввод символьных клавиш, удаление символа, нажатие Enter и т.п.) нужно вручную прописывать.
0
9 / 9 / 11
Регистрация: 22.10.2015
Сообщений: 81
25.11.2015, 15:44
А почему у меня работает readln ? При этом работает и ставит текст на указанное место без выставления текста у углу экрана!
0
6 / 6 / 3
Регистрация: 14.11.2015
Сообщений: 21
25.11.2015, 18:46
DeadMorose, readln работает. Но только где производится ввод? Внизу окна. Я так понял, что требуется создать в graphabc что-то типа формы. То есть, чтобы в процессе ввода логина и пароля, вводимые данные отображались в том поле, куда вводится информация.

Добавлено через 1 час 17 минут
Pascal
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
uses
  GraphABC;
 
var
  w, w2: integer;
  boollogin, boolpass: boolean;
  login, password: string;
 
procedure Vvod(Key: integer);
begin
  case key of
    //------------------------------------
    48..57, 65..90, 97..122: // Условие нажатия на символьные клавиши
      begin
        SetBrushColor(clWhite);
        if boollogin then begin login := login + chr(key);TextOut(w2 - 80, 142, login); end;
        if boolpass then begin password := password + chr(key);TextOut(w2 - 80, 255, password); end;
      end;
    // ----------------------------------
  
    // Условия нажатия на Delete и т.п. - можно прописать
  
  end;
end;
 
 
procedure ClickPlase(x, y, m: integer);
begin
  if (x > w2 - 90) and (x < w2 + 250) and (y > 130) and (y < 180) then // Клик по полю Логин
  begin
    boollogin := true;
    boolpass := false;
    OnKeyDown := Vvod;
  end;
  
  if (x > w2 - 90) and (x < w2 + 250) and (y > 250) and (y < 300) then // Клик по полю Пароль
  begin
    boollogin := false;
    boolpass := true;
    OnKeyDown := Vvod;
  end;
  
  if (x > w2 - 90) and (x < w2 + 70) and (y > 350) and (y < 400) then // Клик по кнопке Вход
  begin
    // Вход
    ClearWindow;
    WriteLn('Логин: ', login, ' Пароль: ', password, ' Тут должна выполняться подпрограмма входа');
    x := 0;
  end;
  
  if (x > w2 + 90) and (x < w2 + 250) and (y > 350) and (y < 400) then // Клик по кнопке Выход
  begin
    // Выход
  end;
  
  if boollogin then
  begin
    SetBrushColor(clWhite);
    Rectangle(w2 - 90, 130, w2 + 250, 180);
    TextOut(w2 - 80, 142, login);
  end
  else
  begin
    SetBrushColor(RGB(213, 187, 63));
    Rectangle(w2 - 90, 130, w2 + 250, 180);
    TextOut(w2 - 80, 142, login);
  end;
  
  
  if boolpass then
  begin
    SetBrushColor(clWhite);
    Rectangle(w2 - 90, 250, w2 + 250, 300);
    TextOut(w2 - 80, 255, password);
  end
  else
  begin
    SetBrushColor(RGB(213, 187, 63));
    Rectangle(w2 - 90, 250, w2 + 250, 300);
    TextOut(w2 - 80, 255, password);
  end;
end;
 
procedure Authorizing;
  
  procedure Otrisovka;
  begin
    w := WindowWidth; // w = ширина окна
    w2 := round(w / 2);
    ClearWindow(RGB(210, 173, 0));
    SetFontSize(18); 
    SetBrushColor(RGB(210, 173, 0));
    TextOut(round(w2 - TextWidth('АВТОРИЗАЦИЯ') / 2), 50, 'АВТОРИЗАЦИЯ');
    TextOut(w2 - 100 - TextWidth('Логин:'), 142, 'Логин:');
    TextOut(w2 - 100 - TextWidth('Пароль:'), 255, 'Пароль:');
    SetPenWidth(2);
    SetBrushColor(RGB(213, 187, 63));
    Rectangle(w2 - 90, 130, w2 + 250, 180); //  Поле ввода логина
    Rectangle(w2 - 90, 250, w2 + 250, 300); //  Поле ввода пароля
    Rectangle(w2 - 90, 350, w2 + 70, 400); // Кнопка Вход
    Rectangle(w2 + 90, 350, w2 + 250, 400); // Кнопка Выход
    Textout(w2 - 10 - round(TextWidth('ВХОД') / 2), 362, 'ВХОД');
    Textout(w2 + 170 - round(TextWidth('ВЫХОД') / 2), 362, 'ВЫХОД');
  end;
 
begin
  Otrisovka;
  OnMouseDown := ClickPlase;
end;
 
begin
  SetWindowSize(800, 600);
  Authorizing;
  OnResize := Authorizing;
end.
Вот, в принципе, вводить можно. Если подзапариться, то можно вообще сделать, чтобы работало как из форм.
0
9 / 9 / 11
Регистрация: 22.10.2015
Сообщений: 81
25.11.2015, 19:32
А! Дошло что надо сделать!
0
0 / 0 / 1
Регистрация: 16.11.2015
Сообщений: 8
25.11.2015, 20:33  [ТС]
Спасибо вам всем большое)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.11.2015, 20:33
Помогаю со студенческими работами здесь

Как установить позицию текста при использовании GraphABC ?
Здравствуйте. Есть программа рисования флагов. Используется соответственно GraphABC. Сначала предлагается ввести размеры 1 флага. После...

Исправить ввод только слова на ввод целого текста
Помогите исправить. Надо чтобы не одно слово можно водить, а текст. uses crt; var i,n,m:integer; a:string; begin clrscr;...

Ввод текста в Мемо1 и вывод текста в Мемо2 по возрастанию слов
Здравствуйте! Пользователь вводит текст в Мемо1, по нажатию кнопки текст должен выйти в Мемо2 уже отсортированным по возрастанию...

Ввод текста, обработка и вывод текста в то же поле
Здравствуйте!Как сделать в delphi 10 seattle нечто вроде экспертных систем?Вводим текст (типа как в консоли), обрабатываем его, и выводим...

Ввод текста
Подскажите пожалуйста, как организовать ввод текста на Си (текста в которм много строк),для дальнейшей обработки(поиска итд)?


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru