Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

какая переменная нужна функции при создании следующей программы.   Найти похожие ветки 

 
Tarquin ©   (2004-03-13 23:27) [0]

nit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Edit2: TEdit;
   Label1: TLabel;
   Label2: TLabel;
   Button1: TButton;
   Button2: TButton;
   Button3: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

 type
  MF= record
  name: string[50];
  vozrast: integer;
end;

type my = class

   procedure addF(??????????);

end;

var
 Form1: TForm1;
 i: integer;
 f: file of MF;
 FF: MF;
 

implementation

{$R *.dfm}

procedure my.addF(??????????);
begin
AssignFile(f,"c:\fuck.dat");
FF.name:= form1.edit1.text;
FF.vozrast:= StrToInt(form1.edit2.Text);
rewrite(f);
write(f,FF);
closeFile(F);
showmessage("oka");

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 my.addF(???????????);
end;

end.
Что надо поставить на место вопросов??
по нажатии на кнопку данные из полей Edit1 и Edit2 должны записываться в мой файл.


 
P.N.P. ©   (2004-03-13 23:33) [1]

Ничего. убрать вопросы и все.


 
Rouse_ ©   (2004-03-13 23:34) [2]


> procedure TForm1.Button1Click(Sender: TObject);
> begin
>  my.addF(???????????);
> end;


А где создание класса my?
Второе - никакие переменные не нужны.


 
Tarquin ©   (2004-03-13 23:36) [3]

сразу после создания файла моего.

type my = class

  procedure addF(??????????);

end;


 
Tarquin ©   (2004-03-13 23:38) [4]

[Error] Unit1.pas(72): This form of method call only allowed for class methods

ошибка после того как были убраны вопросы((


 
P.N.P. ©   (2004-03-13 23:40) [5]

И скобки тоже


 
Tarquin ©   (2004-03-13 23:41) [6]

таже ошибка


 
P.N.P. ©   (2004-03-13 23:43) [7]

Создавать экземпляр my кто будет?


 
Rouse_ ©   (2004-03-13 23:43) [8]

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


 
Sergey Masloff   (2004-03-13 23:43) [9]

Блин, а где ЭКЗЕМПЛЯР класса у тебя???? Конечно ты метод ЭКЗЕМПЛЯРА вызываешь с КЛАССОМ (ТИПОМ ЭКЗЕМПЛЯРА)


 
Юрий Зотов ©   (2004-03-13 23:48) [10]

И вообще непонятно, зачем этот класс нужен. Все можно сделать прямо в Button1Click. И без глобальных переменных.


 
Tarquin ©   (2004-03-13 23:50) [11]

это будет работать медлено в больших проектах....по моему


 
P.N.P. ©   (2004-03-13 23:54) [12]


> Tarquin ©   (13.03.04 23:50) [11]
> это будет работать медлено в больших проектах....по моему


Нет.


 
Tarquin ©   (2004-03-13 23:55) [13]

спасибо всем....я разобрался заработало)

почему нет???


 
Tarquin ©   (2004-03-13 23:56) [14]

если на событие навешать 3 страницы текста---то по твоему это будет быстрее че через ООП?


 
Rouse_ ©   (2004-03-13 23:59) [15]

А при чем тут объем текста и при чем тут событие?

> это будет быстрее че через ООП?
ИМХО - орешник... :))


 
Юрий Зотов ©   (2004-03-13 23:59) [16]

> Tarquin ©   (13.03.04 23:50) [11]

Как правило, чем проще и короче код, тем быстрее он работает. В любых проектах. Кстати, и тем меньше размер проекта.

Конечно, бывают и более сложные случаи, но Ваш к ним не относится.


 
Tarquin ©   (2004-03-14 00:00) [17]

хе-хе лана....опять порвали:)))


 
Tarquin ©   (2004-03-14 00:00) [18]

Конечно, бывают и более сложные случаи, но Ваш к ним не относится.
Я понял вас....спасибо за внимание:)


 
Rouse_ ©   (2004-03-14 00:04) [19]

> Как правило, чем проще и короче код, тем быстрее он работает.
Не вполне согласен - в качестве исключения DirectX :)


 
Defunct ©   (2004-03-14 00:05) [20]

Tarquin ©   (13.03.04 23:27)  
Что надо поставить на место вопросов??
по нажатии на кнопку данные из полей Edit1 и Edit2 должны записываться в мой файл.

type
 TMyClass = class
 Private
   f: file of MF;
   FF: MF;
 Public
   procedure AddF(Field1,Field2:String);
 end;

var
Form1: TForm1;


implementation

{$R *.dfm}

procedure TMyClass.AddF;
begin
 AssignFile(f,"c:\fuck.dat");
 FF.name:= Field1;
 FF.vozrast:= StrToInt(Field2);
 rewrite(f);
 write(f,FF);
 closeFile(F);
 showmessage("oka");
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 With TMyClass.Create Do
 Try
   AddF(Edit1.Text, Edit2.Text)
 Finally
   Free;
 End
end;

Procedure TForm1.Button2Click(Sender: TObject);
Var Obj:TMyClass;
Begin
 Try
   Obj := TMyClass.Create;
   Obj.AddF(Edit1.Text, Edit2.Text);
 Finally
   Obj.Free
 End;
End;

end.


 
Юрий Зотов ©   (2004-03-14 00:07) [21]

> Tarquin ©   (13.03.04 23:56) [14]

> если на событие навешать 3 страницы текста---то по твоему это
> будет быстрее че через ООП?

Быстрее. Идеология ООП сама по себе скорости не добавляет, скорее даже наоборот. Ее преимущество совсем в другом.

Вообще, с точки зрения процессора, никакого ООП не существует. Есть код и больше ничего.


 
Defunct ©   (2004-03-14 00:17) [22]

> Быстрее. Идеология ООП сама по себе скорости не добавляет, скорее даже наоборот. Ее преимущество совсем в другом.

Полностью соглашусь с этим. Достаточно только вспомнить (на примере Delphi), что при вызове метода в стек заносится ссылка на экземпляр класса, а это как минимум одно лишнее обращение к памяти.


 
Юрий Зотов ©   (2004-03-14 09:30) [23]

> Defunct ©   (14.03.04 00:17) [22]
> при вызове метода в стек заносится ссылка на экземпляр класса

Обычно не в стек. В EAX.


 
Defunct ©   (2004-03-14 10:33) [24]

> Обычно не в стек. В EAX.
Не было бы Self, Sender бы передавался через EAX, а так через стек. сути это не меняет, на один параметр больше - на одно обращение к памяти больше, на одну команду дольше.


 
Юрий Зотов ©   (2004-03-14 14:12) [25]

> Defunct ©   (14.03.04 10:33) [24]

> Не было бы Self, Sender бы передавался через EAX, а так через
> стек.

Все равно нет. Первые три параметра по умолчанию передаются через регистры. Но сути это и правда не меняет.



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

Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.055 c
3-1078958054
Vemer
2004-03-11 01:34
2004.04.04
Толщина ползунка в DBGrid - как отследить?


8-1067042786
Almaz
2003-10-25 04:46
2004.04.04
Создание AVI файла


7-1074774903
Дмитрий Смирнов
2004-01-22 15:35
2004.04.04
отображенире данных из другого потока


7-1074689325
Ramario
2004-01-21 15:48
2004.04.04
Меню


1-1079366686
DmitryNekl
2004-03-15 19:04
2004.04.04
Оптимизация кода





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский