Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
ВнизООП Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.036 c