С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 09.09.2018
Сообщений: 42

Вывод пола при создании класса 'Спортсмены'

30.09.2018, 18:00. Показов 759. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Нуждаюсь в помощи в Делфи.
Нужно создать класс Спортсмены с полями фамилия,имя,дата рождения,вес,рост и ПОЛ и заполнить эти свойства вводя данные с формы и выводить их в мемо.
Проблема в выводе ПОЛ.
Хотела использовать компоненту RadiogGroup,но не могу понять как потом вывести данные М/Ж из неё в Мемо.
Может кто-то подскажет пожалуйста как это описать в коде?
Delphi
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Label6: TLabel;
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
Sportsmen=class
name,fam:string;
rost,ves:real;
datarog:Tdate;
pol:boolean;
  end;
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var f,n:string;d:Tdate;p:boolean;r,v:real;
begin
f:=Edit1.Text;
n:=Edit2.Text;
d:=StrToDate(Edit3.Text);
r:=StrToFloat(Edit4.Text);
v:=StrToFloat(Edit5.Text);
Memo1.Lines.Add(f+' '+ ' ' + n +' '+ ' ' + DateToStr(d)+' '+ ' '+FloatToStr(r)+' '+ ' '+FloatToStr(v));
end;
 
end.
Миниатюры
Вывод пола при создании класса 'Спортсмены'  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.09.2018, 18:00
Ответы с готовыми решениями:

Ошибки при создании класса
Хотел бы узнать об ошибках при создании классов, о том как не надо создавать класс, разбивать код на методы и пр.

Как при создании экземпляра класса инициализировать переменные вложенного класса
Здравствуйте. Подскажите пожалуйста как при создании екземпляра класа инициализировать переменные вложеного класа. Добавлено через 22...

Использование объекта одного класса при создании нового класса
Добрый вечер. У меня такая проблема. Есть готовый класс L2 - список, на его основе нужно создать дек. Я поступил так: в приватной части...

16
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
30.09.2018, 20:00
Delphi
1
pol:char;//(например М, Ж)
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 21
30.09.2018, 20:13
классы в Delphi принятно называть с большой T
TSportsman

Добавлено через 1 минуту
ну и еще ваш класс что-то нигде не используется в программе...
0
0 / 0 / 0
Регистрация: 09.09.2018
Сообщений: 42
30.09.2018, 20:15  [ТС]
ну,я поменяла тип данных на этот,но а компоненту какую использовать и как вывести эти значения м/ж в мемо не подскажите?
0
0 / 0 / 0
Регистрация: 09.09.2018
Сообщений: 42
30.09.2018, 20:18  [ТС]
да,моя ошибка,вот поменяла,надеюсь правильно
Delphi
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
код :
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
Sportsmen=class
name,fam:string;
rost,ves:real;
datarog:Tdate;
pol:boolean;
  function Info (): String;
end;
 
var
  Form1: TForm1;
  s: Sportsmen;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var f,n:string;d:Tdate;p:boolean;r,v:real;
s:sportsmen;
begin
f:=Edit1.Text;
n:=Edit2.Text;
d:=StrToDate(Edit3.Text);
r:=StrToFloat(Edit4.Text);
v:=StrToFloat(Edit5.Text);
 
s:=Sportsmen.Create();
s.fam:= Edit1.Text;
s.name:= Edit2.Text;
s.datarog:=StrToDate(Edit3.Text);
s.rost:=StrToFloat(Edit4.Text);
s.ves:=StrToFloat(Edit5.Text);
Showmessage(s.Info());
 
Memo1.Lines.Add(f+' '+ ' ' + n +' '+ ' ' + DateToStr(d)+' '+ ' '+FloatToStr(r)+' '+ ' '+FloatToStr(v));
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Clear;
end;
 
{ Sportsmen }
 
function Sportsmen.Info: String;
begin
Result := ('Ôàìèëèÿ'+ ' '+fam + ' '+ 'Èìÿ '+' '+ Name + '  '+ 'Äàòà ðîæäåíèÿ' +' '+ DateToStr(datarog) + '  '+ 'Âåñ'+ ' '+ FloatToStr(ves)+ '  '+ 'Ðîñò'+ ' ' +FloatToStr( rost));
end;
 
end.
Миниатюры
Вывод пола при создании класса 'Спортсмены'   Вывод пола при создании класса 'Спортсмены'  
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
30.09.2018, 20:51
Цитата Сообщение от POLLINA 1578 Посмотреть сообщение
но а компоненту какую использовать и как вывести эти значения м/ж в мемо
Вводить в Эдит,
Delphi
1
pol:=Edit6.Text[1];
выводить в Мемо обычно, как любую строку.
Delphi
1
2
with s do
Memo1.Lines.Add(f+' '+ ' ' + n +' '+ ' ' + DateToStr(d)+' '+ ' '+FloatToStr(r)+' '+ ' '+FloatToStr(v)+' '+pol);
0
0 / 0 / 0
Регистрация: 09.09.2018
Сообщений: 42
30.09.2018, 21:01  [ТС]
ну я просто думала м/ж логический тип и что делать где-то в чеклистбокс или радио.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
30.09.2018, 21:04
С чего бы это пл логический тип? один true, другой false, дискриминация получается.
0
0 / 0 / 0
Регистрация: 09.09.2018
Сообщений: 42
30.09.2018, 21:40  [ТС]
Ну преподаватель сказал использовать для м/ж логический тип
самой бы мне конечно легче было без лог.типа работать.
Если можно,помогите пожалуйста .
Сделала вот так вот с чеклистбокс.
В мемо выводит хорошо,а вот возможно ли сделать такое же в шоумесседж не подскажите?Если возможно,то как это записать в строке s.pol и в инфо?
Delphi
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
Sportsmen=class
name,fam:string;
rost,ves:real;
datarog:Tdate;
pol:char;//  или boolean
  function Info (): String;
end;
 
var
  Form1: TForm1;
  s: Sportsmen;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var f,n:string;d:Tdate;r,v:real;
p:integer;
s:sportsmen;
begin
f:=Edit1.Text;
n:=Edit2.Text;
d:=StrToDate(Edit3.Text);
r:=StrToFloat(Edit4.Text);
v:=StrToFloat(Edit5.Text);
  for p := 0 to CheckListBox1.Items.Count -1 do
begin
if CheckListBox1.selected[p] then
Memo1.Lines.Add(f+' '+ ' ' + n +' '+ ' ' + DateToStr(d)+' '+ ' '+FloatToStr(r)+' '+ ' '+FloatToStr(v)+ ' '+ 'Пол' +' '+ CheckListBox1.Items[p]);
 
end;
//шоус
s:=Sportsmen.Create();
s.fam:= Edit1.Text;
s.name:= Edit2.Text;
s.datarog:=StrToDate(Edit3.Text);
s.rost:=StrToFloat(Edit4.Text);
s.ves:=StrToFloat(Edit5.Text);
//s.pol:=
Showmessage(s.Info());
 
 
//вывод в мемо
 
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Clear;
end;
 
{ Sportsmen }
 
function Sportsmen.Info: String;
begin
Result := ('Фамилия'+ ' '+fam + ' '+ 'Имя '+' '+ Name + '  '+ 'Дата рождения' +' '+ DateToStr(datarog) + '  '+ 'Вес'+ ' '+ FloatToStr(ves)+ '  '+ 'Рост'+ ' ' +FloatToStr( rost));
end;
 
end.
Миниатюры
Вывод пола при создании класса 'Спортсмены'  
0
0 / 0 / 0
Регистрация: 27.09.2018
Сообщений: 11
30.09.2018, 22:02
Delphi
1
2
if CheckListBox1.Checked[0] then ShowMessage('Male')
    else ShowMessage('Female');
0
0 / 0 / 0
Регистрация: 09.09.2018
Сообщений: 42
30.09.2018, 22:27  [ТС]
Огромное Вам спасибо,всё работает)
0
0 / 0 / 0
Регистрация: 27.09.2018
Сообщений: 11
30.09.2018, 22:39
Цитата Сообщение от POLLINA 1578 Посмотреть сообщение
Огромное Вам спасибо,всё работает)
Тут специальная кнопка для этого есть - это Вам на будущее)
0
0 / 0 / 0
Регистрация: 09.09.2018
Сообщений: 42
30.09.2018, 23:05  [ТС]
Извините, а Вы не знаете,возможно ли мне вывести максимальное значение 5 столбца мемо?
Или это невозможно сделать т.к. я заполняла не массивом?
0
0 / 0 / 0
Регистрация: 27.09.2018
Сообщений: 11
01.10.2018, 08:41
Можно попробовать читать из Memo строки, после чего разделять их по пробелам на слова и сохранять нужное слово в массив. Или еще проще сохранять требуемое поле в массиве еще на этапе заполнения Memo прямо из Edit.
0
 Аватар для Matan!
1882 / 1016 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
01.10.2018, 08:57
Цитата Сообщение от POLLINA 1578 Посмотреть сообщение
Извините, а Вы не знаете,возможно ли мне вывести максимальное значение 5 столбца мемо?
А у Memo столбцы есть? Что или Вы хотите ограничить вывод пола?
0
0 / 0 / 0
Регистрация: 09.09.2018
Сообщений: 42
01.10.2018, 12:41  [ТС]
Ну,я наверное плохо записала заполнение мемо,теперь не знаю как мне выводить какие то вычисление.

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

Не подскажите какие еще можно сделать вычисления с моей программой , может есть какие то попроще, а то вообще не понимаю как реализовать это?
0
 Аватар для Matan!
1882 / 1016 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
01.10.2018, 14:07
Ну, замените
Delphi
1
s:sportsmen;
на
Delphi
1
s:array of sportsmen;
Что мешает?

Добавлено через 25 минут
А ещё лучше пока за такое предложение меня здесь тапками не закидали - создайте список.
Вот накидал кое что, допиливайте:
Delphi
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CheckLst, Contnrs;
 
type
  TSportsmen = class(TObject)
    name, fam: string;
    rost, ves: Extended;
    datarog: TDate;
    pol: Char; //  или boolean
  //private
    function Info(): string;
  end;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    CheckListBox1: TCheckListBox;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    FSportsmen: TObjectList;
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  FSportsmen := TObjectList.Create(True);
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
  FSportsmen.Free;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  f, n: string;
  d: Tdate;
  r, v: real;
  p: integer;
  s: Tsportsmen;
begin
  f := Edit1.Text;
  n := Edit2.Text;
  d := StrToDate(Edit3.Text);
  r := StrToFloat(Edit4.Text);
  v := StrToFloat(Edit5.Text);
  for p := 0 to CheckListBox1.Items.Count - 1 do
  begin
    if CheckListBox1.selected[p] then
      Memo1.Lines.Add(f + ' ' + ' ' + n + ' ' + ' ' + DateToStr(d) + ' ' + ' ' + FloatToStr(r) + ' ' + ' ' + FloatToStr(v) + ' ' + 'Пол' + ' ' + CheckListBox1.Items[p]);
 
  end;
//шоус
  FSportsmen.Count := FSportsmen.Count + 1;
 
  TSportsmen(FSportsmen[FSportsmen.Count - 1]).fam := Edit1.Text;
  TSportsmen(FSportsmen[FSportsmen.Count - 1]).name := Edit2.Text;
  TSportsmen(FSportsmen[FSportsmen.Count - 1]).datarog := StrToDate(Edit3.Text);
  TSportsmen(FSportsmen[FSportsmen.Count - 1]).rost := StrToFloat(Edit4.Text);
  TSportsmen(FSportsmen[FSportsmen.Count - 1]).ves := StrToFloat(Edit5.Text);
//s.pol:=
  Showmessage(TSportsmen(FSportsmen[FSportsmen.Count - 1]).Info());
 
 
//вывод в мемо
 
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Clear;
end;
 
function TSportsmen.Info: string;
begin
  Result := ('Фамилия' + ' ' + fam + ' ' + 'Имя ' + ' ' + Name + '  ' + 'Дата рождения' + ' ' + DateToStr(datarog) + '  ' + 'Вес' + ' ' + FloatToStr(ves) + '  ' + 'Рост' + ' ' + FloatToStr(rost));
end;
 
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.10.2018, 14:07
Помогаю со студенческими работами здесь

Вызов другого класса при создании свойства класса
Здравствуйте! Пишу внутри класса, но не в методе: public $ln = DB::getLang(); DB - это другой класс, getLang() - метод в нём. То есть...

Изменить пола одного класса методами другого класса так, чтобы изменения сохранились в первом классе
Есть простая форма с текстбоксом и тремя кнопками. Нужно следующее: Нажимаем на кнопку 1, записываем значение из текстбокса в переменную....

Самоуничтожение при создании класса
class Test { function __construct() { $this->__destruct(); } function test() { echo 'tested'; ...

Ошибка при создании класса
Здравствуйте! Я реализовывал класс BottleMachine, но у меня выводит ошибку rb:163: syntax error, unexpected keyword_end, expecting $end. Не...

Ошибка при создании класса
написал класс:#include<windows.h> class Hook{ public: void SetHook(){ HINSTANCE hinstDLL = GetModuleHandle(NULL); if...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru