Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

ООП   Найти похожие ветки 

 
ZDenis ©   (2004-09-07 15:18) [0]

есть БД,таблица скажем Printer,хранимые процедуры реализующие добавление,редактирование,удаление записи и т.п.
Нужно написать клиентскую часть с использованием ООП.
Как правильно описать класс и методы класса например TPrinter,реализующие добавление,редактирование записи и т.п. ?


 
Плохиш ©   (2004-09-07 15:20) [1]

Что, опять?

Называй сумму за разработку проекта и умножай её на количество созданных тобой одинаковых веток.


 
ZDenis ©   (2004-09-07 15:34) [2]

>Плохиш ©
Я не прошу разрабатывать проект,а помочь разобраться с объекно-ориентированным проектированием.


 
TUser ©   (2004-09-07 15:39) [3]

А зачем тебе помогать, когда можно попросить с тебя денег? Шутка. А серьезно - ты задал вопрос "Расскажите мне все про не знаю что, которое мне нужно неизвестно зачем, т.к. я хочу разработать игру на основе СУБД Интербайз". На такие вопросы редко отвечают.


 
Ega23 ©   (2004-09-07 15:39) [4]

ZDenis ©   (07.09.04 15:34) [2]

Всё равно сумму называй.


 
Ega23 ©   (2004-09-07 15:41) [5]

TUser ©   (07.09.04 15:39) [3]

Не надо про Великие Проекты Века. Начинать с Автошемы нужно.


 
ZDenis ©   (2004-09-07 15:44) [6]

>TUser ©
Клиентская часть уже реализованна,но по принципу функционального программирования.
А я хочу разобраться как правильно решить ту же задачу с использованием ООП.


 
Defunct ©   (2004-09-07 15:46) [7]

Что означает термин "функциональное программирование"?


 
Reindeer Moss Eater ©   (2004-09-07 15:58) [8]

А я хочу разобраться как правильно решить ту же задачу с использованием ООП.

А я вот хочу разобраться как эту задачу можно умудриться решить на Delphi без ООП.


 
Ega23 ©   (2004-09-07 15:58) [9]

ZDenis ©   (07.09.04 15:44) [6]

А Form1 на твоей функционально-спрограммированной клиентской части есть?


 
ZDenis ©   (2004-09-07 16:01) [10]

>Defunct ©
Оговорился процедурного программирования


 
ZDenis ©   (2004-09-07 16:03) [11]

>Ega23 ©
А Form1 на твоей функционально-спрограммированной клиентской части есть?
Есть


 
Ega23 ©   (2004-09-07 16:04) [12]

Ну тогда ты эту задачу с использованием ООП уже решил.


 
ZDenis ©   (2004-09-07 16:29) [13]

>Ega23 ©
Как правильно описать класс и методы класса например TPrinter,реализующие добавление,редактирование записи и т.п. ?
точнее метод добавления например т.к. в приведенном коде или
правильнее было бы создать экземпляр класса TPrinter,заполнить поля объекта а затем вызвать метод Printer.addItem;
а зачения в методе передовать из полей объекта.    

interface
uses
SysUtils, Classes;
Type
TPrinter=class
private
fid:integer;
fName:string;
fSerN:string;
fInvN:string;
fUserid:integer;
fStatusid:smallint;
fPrim:string;
fKomnataId:integer;
public
 constructor Create;
 procedure addItem(name,SerN,InvN,Komnata,Prim:string);
implementation
uses UDm;
constructor TPrinter.Create;
begin
end;
procedure TPrinter.addItem(Name,SerN,InvN,Komnata,prim:string);
begin
 with DM1.SP1 do begin
  ProcedureName :="AddPrinter";
  Parameters.Refresh;
  Parameters.ParamByName("@PrinterName").Value :=name;
  Parameters.ParamByName("@PrinterSerN").Value :=SerN;
  Parameters.ParamByName("@PrinterInvN").Value :=InvN;
  Parameters.ParamByName("@Komnata").Value :=Komnata;
  Parameters.ParamByName("@prim").Value :=prim;
  ExecProc;
 end;
 Dm1.SPqPrinter.Close;
 Dm1.SPqPrinter.open;
end;
end.

.....
var Printer:Tprinter;
begin
printer.addItem("",""....)
end;


 
Ega23 ©   (2004-09-07 17:44) [14]

1. Код в [13] - в помойку! Срочно!
2. Класс TPrinter уже есть. Я думаю ты не сильно удивишься, когда догадаешься для чего он.
3. Что же всё-таки ты хочешь? Распиши проблему ПОДРОБНО. У меня есть кое-какие догадки, но это только догадки.


 
ZDenis ©   (2004-09-08 12:32) [15]

>Ega23 ©
3. Что же всё-таки ты хочешь? Распиши проблему ПОДРОБНО. У меня есть кое-какие догадки, но это только догадки.

У меня есть процедура добавления,редактирования,удалении в бд записи о принторе и т.п.(монитор,клавиатура)

procedure addItem(Name,SerN,InvN,Komnata,prim:string);
begin
with DM1.SP1 do begin
 ProcedureName :="AddPrinter";
 Parameters.Refresh;
 Parameters.ParamByName("@PrinterName").Value :=name;
 Parameters.ParamByName("@PrinterSerN").Value :=SerN;
 Parameters.ParamByName("@PrinterInvN").Value :=InvN;
 Parameters.ParamByName("@Komnata").Value :=Komnata;
 Parameters.ParamByName("@prim").Value :=prim;
 ExecProc;
end;
Я хочу реализовать класс  например TPrinter,чтобы потом в программе можно было объявив переменную Printer:Tprinter;
скажем при клике на копке вызвать метод Printer.add;
Как правильно описать такой метод в классе?
и правильный ли такой подход?


 
Ega23 ©   (2004-09-08 12:36) [16]

Я надеюсь, ты должен понимать, что если ты пишешь универсальный класс, то в его методах не должно быть никаких  with DM1.SP1 do begin. Твой класс должен работать только со своими полями.


 
ZDenis ©   (2004-09-08 12:46) [17]

>Ega23 ©
Так вот я и хочу узнать как правильно это сделать.
А если я в классе объявлю своиства SP:TADOStoredProc;
а затем
Printer:=TPrinter.create;
printer.sp:=...;
printer.add;


 
Reindeer Moss Eater ©   (2004-09-08 12:49) [18]

printer.sp:=TStoredProc.Create(nil);


 
Плохиш ©   (2004-09-08 13:09) [19]


> ZDenis ©   (08.09.04 12:46) [17]

sp сделать приватным свойством и [18] делать в TPrinter.create, а освобождать в TPrinter.Destroy.


 
ZDenis ©   (2004-09-08 14:24) [20]

>Плохиш  
>Ega23  
>Reindeer Moss Eater
Спасибо за ответы.

Еще вопросик как реализовать метод add;
например
printer.add(name,sern,...:string);
begin
with printer.SP do begin
ProcedureName :="AddPrinter";
Parameters.Refresh;
Parameters.ParamByName("@PrinterName").Value :=name;
Parameters.ParamByName("@PrinterSerN").Value :=SerN;
......
ExecProc;
end;
end;

или сначала заполнить поля объекта Printer
Printer.name:="HP";
printer.serN:="sdgs";
а метод реализовать как
printer.add;
begin
with printer.SP do begin
ProcedureName :="AddPrinter";
Parameters.Refresh;
Parameters.ParamByName("@PrinterName").Value :=Printer.name;
Parameters.ParamByName("@PrinterSerN").Value :=Printer.SerN;
.......
ExecProc;
end;



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.037 c
4-1092824281
AlexV
2004-08-18 14:18
2004.09.26
Как вывести список ссылок Favorites (Избранное) в ListBox ?


6-1090163874
banderas
2004-07-18 19:17
2004.09.26
net send


6-1090224937
Sky
2004-07-19 12:15
2004.09.26
DHTML компонента


9-1084228298
Алекс А
2004-05-11 02:31
2004.09.26
GLScene Новая демка "FireBrand" Tank Demo Preview Оцните


1-1094710146
denis24
2004-09-09 10:09
2004.09.26
Раскраска строк в listview