![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хочу на форме создать Edit. Не получается :( [D7, XP]
Первокласник Вася © (2006-04-11 17:23:00)Здравствуйте! Подскажите пожалуйста, как на форме можно создать определённое количество обэектов класса ТEdit?
Создать и разместить на форме могу, но не получается, например 5 штук таких сделать?
Юрий Зотов (2006-04-12 11:54:00) [1]> Первокласник Вася
Вот эта статья должна снять все вопросы:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=342
PS
Если всерьез решили освоить программирование, то без книг не обойтись. Никакие форумы их не заменят.
Игорь Шевченко (2006-04-12 11:33:00) [2]
> Кстати и книг тогда почти что не было. Был только хэлп!
> И то не всегда. Но уж точно всегда на не родном языке.
И за хелпом приходилось идти пять километров в гору. Зимой и против ветра.
Rater1 (2006-04-12 08:07:00) [3]
> RDen (12.04.06 07:43) [24]
ну имя возможно и никуда не девалось, а вот какое оно создалось никто не запомнил (в данном коде конечно). можно конечно перебрать все edit-ы на форме и по tag-у найти нужный, но лучше имя добавить или массив как я предлагал выше создать. ( > Rater1 (11.04.06 19:38) [7])
Или есть другие методы?
Virgo_Style (2006-04-12 07:48:00) [4]...И зачем ссылку не сохранил? )
Хотя можно и не сохранять, а найти через св-ва формы.
RDen (2006-04-12 07:43:00) [5]> Rater1
> Ни имени...
а куда имя то девалось?
Rater1 (2006-04-12 07:04:00) [6]хм... немного не по теме, но всё же:
а если не секрет, если что-то надо сделать с созданным edit-ом, как к нему обращаться? Ни имени ни ссылки....
Quattro (2006-04-12 03:54:00) [7]Гаврила © (11.04.06 20:36) [14]
> Quattro ©
> [2]
>var
> Form1: TForm1;
> E:TEdit;
>procedure TForm1.FormDestroy(Sender: TObject);
>begin
>E.Free;
> end;
Вот это лажа полная. Хотя и все сработает.
Почему же лажа?
Германн (2006-04-12 02:30:00) [8]
> Первокласник Вася (11.04.06 20:32) [13]
>
> Ты решил Дельфи изучить через форумы?
>
> Легко сказать? А как вы сами раньше начинали? Не подобна
> ли ситуация?
Даже если принять за истину, что АП раньше всех здесь присутствующих получил доступ к некоей компьютерной сети, хоть сколько-нибудь глобальной, а (имхо) это так и есть, то всё равно начинал он гораздо раньшевозникновения подобной сети и возможности общения по ней.
Кстати и книг тогда почти что не было. Был только хэлп! И то не всегда. Но уж точно всегда на не родном языке.
Leonid Troyanovsky (2006-04-11 22:05:00) [9]
> Первокласник Вася (11.04.06 20:32) [13]
> А почему название такое "Начинающим"?
Потомучто трудно им.
--
Regards, LVT.
Первокласник Вася (2006-04-11 21:04:00) [10]Всё понятно! Спасибо!
Малозаметно, если честно
Скаже честно - это моя проблема, с которой бьюс и день и ночь!
Но стараюсь!!!!!
Спасибо!!!!!!
Zeqfreed (2006-04-11 21:01:00) [11]Было:
private
{ Private declarations }
public
{ Public declarations }
procedure EditHandler;
Стало:
private
procedure EditHandler(Sender: TObject; var Key: Char);
{ Private declarations }
public
{ Public declarations }
> хочу учиться и буду учиться
Малозаметно, если честно.
Первокласник Вася (2006-04-11 20:56:00) [12]Ни чего не понял :(
Покажи пожалуйста, как правильно запсиать!
Чета не получается....
Zeqfreed (2006-04-11 20:48:00) [13][10] Первокласник Вася (11.04.06 20:02)
Можно было бы уж посмотреть, что TKeyPressEvent объявлен так: TKeyPressEvent = procedure(Sender: TObject; var Key: Char) of object;
И, соответственно, объявить EditHandler нужно было аналогично.
Первокласник Вася (2006-04-11 20:45:00) [14]А как правильно то? Каждый работает по принципу "правильнее правильного".
А я начинающий - всего 3 месяца и хочу учиться и буду учиться, а что не ясно, то спрошу, дял чегоже в русский язык введено такое понятие "переспросить"? Или мы все с луны свалились?
Гаврила (2006-04-11 20:36:00) [15]
> Quattro ©
> [2]
>var
> Form1: TForm1;
> E:TEdit;
>procedure TForm1.FormDestroy(Sender: TObject);
>begin
>E.Free;
> end;
Вот это лажа полная. Хотя и все сработает.
Первокласник Вася (2006-04-11 20:32:00) [16]Ты решил Дельфи изучить через форумы?
Легко сказать? А как вы сами раньше начинали? Не подобна ли ситуация?
А почему название такое"Начинающим"?
Anatoly Podgoretsky (2006-04-11 20:28:00) [17]Ты решил Дельфи изучить через форумы?
Первокласник Вася (2006-04-11 20:26:00) [18]Мастера! Прошу откликнуться, что я не правильно делаю?
Первокласник Вася (2006-04-11 20:02:00) [19]Zeqfreed!!!!
У меня та ки не получилось :((((
Этот пример я не понял. Точнее он не работает!
Покажу все как у меня есть.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure EditHandler;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure PlaceEditControlsWithHandler(Where : TForm; HowMany : Cardinal; Location : TPoint; UserHandler : TKeyPressEvent);
begin
if (HowMany = 0) then Exit;
with TEdit.Create(Where) do begin
Parent := Where;
Top := Location.Y;
Left := Location.X;
OnKeyPress := UserHandler;
Tag := HowMany;
end;
PlaceEditControlsWithHandler(Where, HowMany - 1, Point(Location.X, Location.Y + 25), UserHandler);
end;
procedure TForm1.EditHandler(Sender: TObject; var Key: Char);
begin
ShowMessage(Format('Key "%s" pressed in edit control #%d', [Key, (Sender as TControl).Tag]));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
PlaceEditControlsWithHandler(Form1, 5, Point(8, 8), EditHandler);
end;
end.
Zeqfreed (2006-04-11 19:45:00) [20]
procedure PlaceEditControlsWithHandler(Where : TForm; HowMany : Cardinal; Location : TPoint; UserHandler : TKeyPressEvent);
begin
if (HowMany = 0) then Exit;
with TEdit.Create(Where) do begin
Parent := Where;
Top := Location.Y;
Left := Location.X;
OnKeyPress := UserHandler;
Tag := HowMany;
end;
PlaceEditControlsWithHandler(Where, HowMany - 1, Point(Location.X, Location.Y + 25), UserHandler);
end;
Пример использования:
procedure TForm1.EditHandler(Sender: TObject; var Key: Char);
begin
ShowMessage(Format('Key "%s" pressed in edit control #%d', [Key, (Sender as TControl).Tag]));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
PlaceEditControlsWithHandler(Form1, 5, Point(8, 8), EditHandler);
end;