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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2014, 20:56   #41
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,469
По умолчанию

Цитата:
j и t? Где прописаны
Код:
var
  Form1: TForm1;
  //....................................................
j,t: Integer;  //глобальные переменные для слежения за траекторией прохождения заданного маршрута курсора
implementation
{$R *.dfm}
Вероятно, мне стоит отказаться от использования Tag в пользу:
Код:
begin
     button[i].visible:=True;//Показать именно ту button, на которую наведен курсор.
     j := i     ; //Номер последней использованной button.
end
Репутация: полный "0"

Последний раз редактировалось zvygin1964; 01.10.2014 в 21:04.
zvygin1964 вне форума Ответить с цитированием
Старый 01.10.2014, 21:46   #42
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,469
По умолчанию

Получилось!:
Код:
begin
     button[i].visible:=True;//Показать именно ту button, на которую наведен курсор.
     j := i     ; //Номер последней использованой button.
     t:= button[i].Tag ;  //t стала равна Tag той же  button.
end
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 06.10.2014, 19:38   #43
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,469
По умолчанию

А как исправить вот это:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Butts: array of TButton;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i, j: byte;
begin
 j:=1;
    for i:=0 to ComponentCount-1 do //просматриваем
 if (Components[i] is TButton)
 then
  begin //если подходит
      Butts[j]:=(Components[i] as TButton);//помещаем в массив Butts
      j:=j+1;
  end;
 end;
end.
// ?
Дает ошибку:
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 0044DF94 in module 'Project1.exe'. Write of address 00000004'. Process stopped. Use Step or Run to continue.
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 06.10.2014, 19:41   #44
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Код:
Butts[j]:=
а память выделять пушкин будет?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 06.10.2014, 19:47   #45
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,469
По умолчанию

Плохо дело... Там не сказали как ее выделять.
http://www.delphimaster.ru/articles/comparray.html#y,
Да, потом спрошу как ее освобождать...
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 06.10.2014, 19:50   #46
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Там не сказали как ее выделять
Так же как под любой динамический массив
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.10.2014, 20:04   #47
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,469
По умолчанию

Так?:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var i, j: byte;
begin
 SetLength(Butts,High(j));
 j:=1;
    for i:=0 to ComponentCount-1 do //просматриваем
.............................................
Репутация: полный "0"

Последний раз редактировалось zvygin1964; 06.10.2014 в 20:06.
zvygin1964 вне форума Ответить с цитированием
Старый 06.10.2014, 20:06   #48
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Так?:
не совсем.
советую викинуть дин. массив к ядрене фене и юзать TList.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 06.10.2014, 21:04   #49
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
и юзать TList.
А лучше TObjectList или даже TComponentsList
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.10.2014, 19:03   #50
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,469
По умолчанию

А так будет правильно? (работает)
Код:
unit main; //украл отсюда: http://zoo-mania.ru/delphi/tobjectlist/index.html

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
    type
      TEditList = class(TObjectList)
  private
    function GetItems(Index: Integer): TEdit;
    procedure SetItems(Index: Integer; const Value: TEdit);
  published
  public
    property Items[Index: Integer]: TEdit read GetItems write SetItems; default;
  end;

var
  Form1: TForm1;
  EditList: TEditList;



implementation

{$R *.dfm} { TEditList }
function TEditList.GetItems(Index: Integer): TEdit;
begin
   Result := TEdit(inherited GetItem(Index));
end;

procedure TEditList.SetItems(Index: Integer; const Value: TEdit);
begin
  inherited SetItem(Index, Value);
end;

procedure TForm1.FormCreate(Sender: TObject);
 var
   i: Integer;
begin
  EditList := TEditList.Create();
  EditList.Add(Edit1);
  EditList.Add(Edit2);

    for i:=0 to EditList.Count - 1 do
  EditList[i].Text := 'default';
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   EditList.Free;
end;

end.
:
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод элементов массива.Изменение элементов массива. Vesnushka18 Помощь студентам 6 09.06.2011 13:05
Перегрузка операций для созданных шаблонов(C#) Mixim Общие вопросы .NET 4 28.09.2010 11:03
найти среднее арифметическое элементов массива состоящее из 5 элементов viatlon Общие вопросы C/C++ 9 12.12.2009 00:45
Для массива определить сумму всех элементов, стоящих после максимального HECTOR.A. Паскаль, Turbo Pascal, PascalABC.NET 4 17.06.2009 22:04
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива HazelHen Общие вопросы C/C++ 2 29.03.2009 15:16