Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2009, 23:16   #1
REztor
Форумчанин
 
Регистрация: 28.02.2009
Сообщений: 302
По умолчанию Метод класса

Код:
procedure TForm1.Findmaxkey1Click(Sender: TObject);
var max,i:integer;s:string;  ss:List;
begin
{$o-}    max:=0;
 for i:=0 to agrid.RowCount-1 do begin
 if StrToIntDef(aGrid.Cells[2,i],0)>max then begin
 max:=StrToInt(aGrid.Cells[2,i]);
 agrid.Row:=i;
 end;
end;
 s:=agrid.Cells[1,agrid.row];

 ss:=List.create;
 ss:=mytab.first(s[1]);
 if ss=nil then begin showmessage('ошибка');
  exit end;
  ss.showlist(memo1);

end;
Помогите переписать эту процедуру в функцию метода класса
REztor вне форума Ответить с цитированием
Старый 11.04.2009, 00:32   #2
VVM
Форумчанин
 
Аватар для VVM
 
Регистрация: 06.06.2007
Сообщений: 282
По умолчанию

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  private
    procedure FindMaxKey;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.FindMaxKey;
var
  max, i: integer;
  s: string;
  ss: List;
begin
{$o-}
  max := 0;
  for i := 0 to agrid.RowCount - 1 do
  begin
    if StrToIntDef(aGrid.Cells[2, i], 0) > max then
    begin
      max := StrToInt(aGrid.Cells[2,i]);
      agrid.Row:=i;
    end;
  end;
  s := agrid.Cells[1, agrid.row];
  ss := List.create;
  ss := mytab.first(s[1]);
  if ss = nil then
  begin
    showmessage('ошибка');
    exit
  end;
  ss.showlist(memo1);
end;

end.
Ошибки не исправлял. Если нужен именно метод класса, а не метод экземпляра класса, то перед словом procedure нужно поставить слово class (class procedure).
Не важно, как часто вы падаете. Важно, как часто вы поднимаетесь. Винс Ломбарди.
VVM вне форума Ответить с цитированием
Старый 14.04.2009, 17:10   #3
REztor
Форумчанин
 
Регистрация: 28.02.2009
Сообщений: 302
По умолчанию

Код:
 function tabl.max:integer;
 var i,mx,imax:integer;
 begin
 mx:=a[0].k;imax:=0;
 for i:=0 to n-1 do
 if a[i].k>mx then begin
 mx:=a[i].k;imax:=i end;
 result:=imax;
 end;
Код:
procedure TForm1.FindMaxKey1Click(Sender: TObject);
var Tr:TgridRect;k:integer;
begin
if mytab.a=nil then
begin showmessage('Вы забыли создать список');
exit end;
k:=mytab.max;
 with agrid do  begin
 with Tr do begin
 top:=k+1;bottom:=k+1;
 left:=0;right:=3;end;
 Selection:=Tr;
  end;  end;
Получилось так
REztor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Synchronize класса TThread EdNovice Общие вопросы Delphi 10 01.08.2009 14:47
Метод к полям класса; vovunisaev Общие вопросы C/C++ 2 08.04.2009 14:19
Создание класса Dogmat Общие вопросы C/C++ 2 12.01.2009 14:32
Метод без класса Altera Общие вопросы Delphi 12 24.12.2008 15:22
Передача метода класса в качестве параметра в другой метод Dmytry87 Общие вопросы C/C++ 0 12.11.2008 15:28