Форум: "Основная";
Текущий архив: 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