Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.035 c
1-1094572239
Klopan
2004-09-07 19:50
2004.09.26
Memo


1-1094814005
HeKTO
2004-09-10 15:00
2004.09.26
HotKey


14-1094193758
Ренат
2004-09-03 10:42
2004.09.26
Сообщения в SIM


14-1094705445
DSK
2004-09-09 08:50
2004.09.26
Как компонент сделать прозрачным?,наследник TWinControl


14-1094044850
pasha_golub
2004-09-01 17:20
2004.09.26
Музыка хорошего настроения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский