Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Объектное ориентирование [D7, XP]


Страницы:   1 2

kop ©   (2005-11-23 13:11:00) 

Создаю в отдельном юните функцию заполнения Edit. Затем хочу вызвать ее на двух различных формах - прога вылетает!!! Неужели мне надо создавать две одинаковые функции для заполнения Edit'ов разных форм??


alex_***   (2005-11-23 18:49:00) [1]

function TMyClass.WriteNewQuestion(Edit1,Edit2,Edit3,Edit4,Edit5,Edit6,Edit7,Edit8: TEdit;    CheckBox1,CheckBox2,CheckBox3,CheckBox4,CheckBox5,CheckBox6,CheckBox7: TCheckBox): string;

Ты сделай уж тогда массив записей типа ( ch: TCheckBox; ed: TEdit ), заполни его один раз при старте и пользуй. Я думаю что формы у тебя все равно AutoCreate. Бегаешь по нему и смотришь что надо


Ega23   (2005-11-23 17:00:00) [2]


> kop   (23.11.05 16:22) [27]


КАКОЙ УЖАС!!!!

Ты эта... про бабло не зарекайся... Я бы за ТАКУЮ программу не просто не заплатил, я бы убил нахрен.


Digitman   (2005-11-23 16:49:00) [3]


> моя программа реально запускается


не спорю.


> прога вылетает


факт, кстати, не мной, а тобой констатируемый)


> бабла отвалят


за ту саму дерьмовую неотесаную-неотлаженую прогу-то !?)
ту которая "реально запускается", а потом "вылетает" !?)

ищи дурака)))) ...LOL


kop   (2005-11-23 16:45:00) [4]

>Digitman ©   (23.11.05 16:29) [28]
ты не прав! моя программа реально запускается в одной из местных школ... мне еще и бабла отвалят :)


Digitman   (2005-11-23 16:29:00) [5]


> kop   (23.11.05 16:22) [27]


не взирая на твое "прога вылетает" на основании [27] можно сказать одно - таким "прогам" место в топке.


kop   (2005-11-23 16:22:00) [6]

Вы предлагаете вот так функцию прописать?
function TMyClass.WriteNewQuestion(Edit1,Edit2,Edit3,Edit4,Edit5,Edit6,Edit7,Edit8: TEdit;    CheckBox1,CheckBox2,CheckBox3,CheckBox4,CheckBox5,CheckBox6,CheckBox7: TCheckBox): string;
begin
 loadt:=GetTest(Form4.XMLDocument1);
 qlist:=loadt.Get_Question;
 q1:=qlist.Add;
 q1.Set_QText(Edit1.Text);

 alist:=q1.Answer;

 if Edit2.Text <> '' then begin
   a:=alist.Add;
   a.Set_AContent(Edit2.Text);
   if checkbox1.Checked=true then a.Set_Right('true') else a.Set_Right('false');
 end;
 if Edit3.Text <> '' then begin
   a:=alist.Add;
   a.Set_AContent(Edit3.Text);
   if checkbox2.Checked=true then a.Set_Right('true') else a.Set_Right('false');
 end;
 if Edit4.Text <> '' then begin
   a:=alist.Add;
   a.Set_AContent(Edit4.Text);
   if checkbox3.Checked=true then a.Set_Right('true') else a.Set_Right('false');
 end;
 if Edit5.Text <> '' then begin
   a:=alist.Add;
   a.Set_AContent(Edit5.Text);
   if checkbox4.Checked=true then a.Set_Right('true') else a.Set_Right('false');
 end;
 if Edit6.Text <> '' then begin
   a:=alist.Add;
   a.Set_AContent(Edit6.Text);
   if checkbox5.Checked=true then a.Set_Right('true') else a.Set_Right('false');
 end;
 if Edit7.Text <> '' then begin
   a:=alist.Add;
   a.Set_AContent(Edit7.Text);
   if checkbox6.Checked=true then a.Set_Right('true') else a.Set_Right('false');
 end;
 if Edit8.Text <> '' then begin
   a:=alist.Add;
   a.Set_AContent(Edit8.Text);
   if checkbox7.Checked=true then a.Set_Right('true') else a.Set_Right('false');
 end;

end;


Плохиш   (2005-11-23 15:12:00) [7]


> Digitman ©   (23.11.05 14:39) [23]

Есть подозрение, что у автора процесс компиляции до конца не доходит ;-)


Digitman   (2005-11-23 14:43:00) [8]


> Думкин ©   (23.11.05 14:42) [24]


солидарен на все сто) ..


Думкин   (2005-11-23 14:42:00) [9]

> Digitman ©   (23.11.05 14:39) [23]

Так к тому и ведем ведь. :)


Digitman   (2005-11-23 14:39:00) [10]


> Думкин ©   (23.11.05 14:33) [20]


> вдруг я телепатор


ну разве что так)...

но, однако, привести автора к мысли использовать на полную мощь встроенный отладчик, imho, будет гораздо полезней нежели обрести вдруг телепатические потенциалы)


Думкин   (2005-11-23 14:37:00) [11]

Пытка апельсинами продолжалась второй час.(с) Спортлото-82. :(


alex_***   (2005-11-23 14:35:00) [12]

где описание типа Q1


Думкин   (2005-11-23 14:33:00) [13]

> kop   (23.11.05 14:28) [17]

Ну, если они почти дублируют друг друга. То передавай в функцию форму как параметр.
function TMyClass.WriteNewQuestion(Form : TForm): string;

и замени TForm3 на Form. Например. Хотя топкой пахнет. :(

А почему вылетает то? Видимо пишет чего-то перед этим?

> Digitman ©   (23.11.05 14:20) [16]

Иногда забавно ребусы смотреть. Или попытаться убедить автора - что ему надо не спешить, а подумать. Не всегда получается. :(
Да и вдруг я телепатор. :))


Digitman   (2005-11-23 14:31:00) [14]


> kop   (23.11.05 14:28) [17]


ты еще долго будешь из пустого в порожнее лить ?

КАКАЯ КОНКРЕТНО строчка твоего  кода вызывает то что ты называешь неким "вылетанием проги" ?!


Плохиш   (2005-11-23 14:30:00) [15]


> kop   (23.11.05 14:28) [17]

Может почитаешь, что про ооп в делфи?


kop   (2005-11-23 14:28:00) [16]

Будем считать что форм3-это вторая форма для добавления нового вопроса... и вот если убрать "form3" у всех вышепоказанных компонентов,то delphi не поймет, к какой именно форме обращаться - форм3 или форм4 (на которой я тоже вызываю эту функцию) и вылетает


Digitman   (2005-11-23 14:20:00) [17]


> Думкин ©   (23.11.05 14:18) [15]


тебе оно надо ? "телепатировать" ?)


Думкин   (2005-11-23 14:18:00) [18]

Про типы - догадайся мол сама.
А при чем тут вторая форма и вылет?
Я второй формы в упор не вижу. Хотя и догадался, что Form3 - это первая.
Хотя есть Form4 - но ... не то.

По-поводу вылета. Где и как вылетает? И где ты пытаешься заполнить вторую форму?


Digitman   (2005-11-23 14:16:00) [19]

так..

теперь показывай, на какой строчке приведенного текста у тебя что-то там куда-то там "вылетает" ..


kop   (2005-11-23 14:14:00) [20]

>>Digitman: Функция нереально здоровая) и не думаю что от этого будет какой-либо толк, но вот она:
function TMyClass.WriteNewQuestion: string;
begin
 loadt:=GetTest(Form4.XMLDocument1);
 qlist:=loadt.Get_Question;
 q1:=qlist.Add;
 q1.Set_QText(Form3.Edit1.Text);

 alist:=q1.Answer;

 if Form3.Edit2.Text <> '' then begin
   a:=alist.Add;
   a.Set_AContent(Form3.Edit2.Text);
   if Form3.checkbox1.Checked=true then a.Set_Right('true') else a.Set_Right('false');
 end;
 if Form3.Edit3.Text <> '' then begin
   a:=alist.Add;
   a.Set_AContent(Form3.Edit3.Text);
   if Form3.checkbox2.Checked=true then a.Set_Right('true') else a.Set_Right('false');
 end;
 if Form3.Edit4.Text <> '' then begin
   a:=alist.Add;
   a.Set_AContent(Form3.Edit4.Text);
   if Form3.checkbox3.Checked=true then a.Set_Right('true') else a.Set_Right('false');
 end;
 if Form3.Edit5.Text <> '' then begin
   a:=alist.Add;
   a.Set_AContent(Form3.Edit5.Text);
   if Form3.checkbox4.Checked=true then a.Set_Right('true') else a.Set_Right('false');
 end;
 if Form3.Edit6.Text <> '' then begin
   a:=alist.Add;
   a.Set_AContent(Form3.Edit6.Text);
   if Form3.checkbox5.Checked=true then a.Set_Right('true') else a.Set_Right('false');
 end;
 if Form3.Edit7.Text <> '' then begin
   a:=alist.Add;
   a.Set_AContent(Form3.Edit7.Text);
   if Form3.checkbox6.Checked=true then a.Set_Right('true') else a.Set_Right('false');
 end;
 if Form3.Edit8.Text <> '' then begin
   a:=alist.Add;
   a.Set_AContent(Form3.Edit8.Text);
   if Form3.checkbox7.Checked=true then a.Set_Right('true') else a.Set_Right('false');
 end;

end;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо