![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Ищу работу
Форумчанин
Регистрация: 16.02.2007
Сообщений: 269
|
![]()
как я знаю ООП'исты(как звучит то)) все додвязывают на 3 свои концепции,поэтому наверное лучше использовать наследование при проектировании.
Класс Персона от него наследуются классы Преподы и Студенты с полями Зарплата и Стипендия. ну и дальше, я не знаю чем преподы различаются, "для меня они все на одно лицо")) Код:
похоже нужно сделать массив всех этих выдающихся людей типа TPerson, а потом с помощью is и as производить различные операции обработки и вывода этого массива
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
|
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 04.02.2009
Сообщений: 141
|
![]() Код:
Просто я пытаюсь сделать простое решение,но видимо и себя запутал и остальных. Ок! Создаю переменные от этих классов: var Form1: TForm1; FPr: TPrepod; FSt: TStud; PREP: array[1..50] of TPrepod; STUD: array[1..50] of TStud; Т.е. получается у меня есть 2 переменные класса TPrepod и TStud и два массива на 50 персон каждый тех же классов;Вопрос, к примеру,через какой компонент и как мне вносить данные по персонам в программе?Ведь когда я размещаю на форме определённый компонент(edit для ввода имён и т.д.) он ведь автоматически привязывается к собственному классу Дельфи,а не к новому классу TPersons? Последний раз редактировалось -ushёl-; 10.06.2010 в 13:10. |
![]() |
![]() |
![]() |
#13 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Ты можешь привязать своих студентов к форме, в момент ее создания. Напишешь в там
Код:
Теперь у тебя и Edit и FPr принадлежат форме и ты сможешь написать что-то типа Код:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#14 | |
Форумчанин
Регистрация: 04.02.2009
Сообщений: 141
|
![]() Цитата:
в Base происходит запись через компонент Edit1 и вывод в Memo1 Если возможно что то исправить или сделать по другому,помогите плз, лабораторная горит очень =( p.s.Не получается запустить,в чём может быть проблема?=( unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) Label1: TLabel; BitBtn1: TBitBtn; Edit1: TEdit; CheckBox1: TCheckBox; CheckBox2: TCheckBox; Label2: TLabel; Memo1: TMemo; procedure BitBtn1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; Const N: integer; type TPersons = class(TObject) public name: string; end; TPrepod = class(TPersons) private Zarplata: array[1..N] of integer; Staj: array[1..N] of integer; Dolgnost: array[1..N] of string; public procedure Base; end; TStud = class(TPersons) private Stipend: array[1..N] of integer; Kurs: array[1..N] of integer; Status:array[1..N] of string; public procedure Base; end; var Form1: TForm1; FPr: TPrepod; FSt: TStud; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); begin FPr:=TPrepod.Create; procedure Base; FreeAndNil(FPr); FSt:=TStud.Create; procedure Base; FreeAndNil(FSt); end; procedure Base var i:integer; begin Form1.Label2.Caption:='Kto Vi?'; if checkBox1.Checked then //prepodavately for i:=1 to N do begin Label1.Caption:='vvedite vashu dolgnost'; FPr.Dolgnost[i]:=Edit1.Text; Memo1.Lines:=FPr.Dolgnost[i]; Edit.Text:=''; Label1.Caption:='vvedite vash staj'; FPr.Staj[i]:=Edit1.Text; Memo1.Lines:=FPr.Staj[i]; Edit.Text:=''; Label1.Caption:='vasha zarplata'; FPr.Zarplata[i]:=Edit1.Text; Memo1.Lines:=FPr.Zarplata[i]; Edit.Text:=''; end else //studenty for i:=1 to N do begin Label1.Caption:='vvedite vash status'; FSt.Status[i]:=Edit1.Text; Memo1.Lines:=FSt.Status[i]; Edit.Text:=''; Label1.Caption:='vvedite vash kurs'; FSt.Kurs[i]:=Edit1.Text; Memo1.Lines:=FSt.Kurs[i]; Edit.Text:=''; Label1.Caption:='vasha stipendia'; FSt.Stipend[i]:=Edit1.Text; Memo1.Lines:=FSt.Stipend[i]; Edit.Text:=''; end; end; procedure TForm1.CheckBox1Click(Sender: TObject); begin FPr.Base; end; procedure TForm1.CheckBox2Click(Sender: TObject); begin FSt.Base; end; end. Последний раз редактировалось -ushёl-; 12.06.2010 в 14:21. |
|
![]() |
![]() |
![]() |
#15 |
Ищу работу
Форумчанин
Регистрация: 16.02.2007
Сообщений: 269
|
![]()
Накидал тебе ООП'шный вариант:
![]() Код:
Проект ООП для форума.zip Принцип: создаешь массив объектов типа "Персона" потом добавляешь и обрабатываешь элементы через наследуемые классы. Полистай код. Остальной функционал думаю прикрутишь.
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
|
![]() |
![]() |
![]() |
#16 |
Форумчанин
Регистрация: 04.02.2009
Сообщений: 141
|
![]()
Просто the best!! Благодарю!
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi7.Как создать 3 рабочих компонента CheckBox? | -ushёl- | Общие вопросы Delphi | 2 | 21.03.2010 16:43 |
как создать класс для ввода времени | kireev | Помощь студентам | 0 | 18.01.2010 17:14 |
Как создать собственный формат | blackstersl | Общие вопросы Delphi | 7 | 22.06.2009 15:14 |
Собственный класс диалогового окна на чистом WinApi в Delphi | Iber | Win Api | 19 | 01.12.2008 15:40 |
Рисование многоугольника (собственный класс) | MaTBeu | Общие вопросы C/C++ | 1 | 08.12.2007 14:53 |