|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
Главное отличие использование метода CreateNew вместо Create. Конструктор
Код:
constructor TMyForm.CreateNew(AOwner: TComponent); var NonClientMetrics: TNonClientMetrics; begin inherited CreateNew(AOwner); NonClientMetrics.cbSize := sizeof(NonClientMetrics); if SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, @NonClientMetrics, 0) then Font.Handle := CreateFontIndirect(NonClientMetrics.lfMessageFont); end; |
#17
|
|||
|
|||
Доброго всем времени суток!
Допустим, что имеем: Код:
type TSoundButton = class(TButton) ..... Procedure CreateButtons(DirName: string); var Sbutton1 : TSoundButton; begin Sbutton1:= TSoundButton.Create(Form1);//ñîçäà¸ì êíîïêó íà ôîðìå with Sbutton1 do begin Name:= 'SButton' + inttostr(ButCount); Height:= 25; Width:= 170; Left := 8; Top := Top_; Caption := DirName; Enabled:= true; Visible := true; parent:=form1.ScrollBox1; Sbutton1.OnClick := Form1.SButtonClick; form1.ListBox1.Items.Add(Sbutton1.Name); end; Top_:= Top_ + 30; Inc (ButCount); end; procedure TForm1.SButtonClick(Sender: TObject); .... Так вот и сам вопрос: как мне из обработчика события Sbutton1.OnClick добраться(использовать) до св-ва Caption := DirName; RunTime созданной Sbutton? Заранее благодарен |
#18
|
||||
|
||||
Создай свой топик, не какай в чужих!!!
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#19
|
||||
|
||||
Либо объявляейте массив кнопок глобально, либо через перебор компонентов родителя кнопок
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#20
|
|||
|
|||
Цитата:
Код:
var Form1: TForm1; But: Array of TSoundButton; .... Код:
Procedure CreateButtons(DirName: string); begin Sbutton1:= TSoundButton.Create(Form1);//ñîçäà¸ì êíîïêó íà ôîðìå with Sbutton1 do begin Name:= 'SButton' + inttostr(ButCount); ..... parent:=form1.ScrollBox1; Sbutton1.OnClick := Form1.SButtonClick; But[ButCount]:= Sbutton1; //form1.ListBox1.Items.Add(Sbutton1.Name); end; Top_:= Top_ + 30; Inc (ButCount); end; И в чём тут соль??? З. Ы. А если не секрет: как перебираются компоненты родителя кнопок? спапибо |
#21
|
|||
|
|||
Цитата:
Последний раз редактировалось UFO 007, 10.07.2011 в 21:54. |
#22
|
||||
|
||||
Цитата:
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 10.07.2011 в 22:06. |
#23
|
||||
|
||||
Этот код:
Код:
Procedure CreateButtons(DirName: string); begin Sbutton1:= TSoundButton.Create(Form1);//ñîçäà¸ì êíîïêó íà ôîðìå with Sbutton1 do begin Name:= 'SButton' + inttostr(ButCount); ..... parent:=form1.ScrollBox1; Sbutton1.OnClick := Form1.SButtonClick; But[ButCount]:= Sbutton1; //form1.ListBox1.Items.Add(Sbutton1.Name); end; Top_:= Top_ + 30; Inc (ButCount); end; Код:
... ButCount := 0; // где то на старте Procedure CreateButtons(DirName: string); begin SetLength(But, ButCount + 1); But[ButCount] := TSoundButton.Create(Form1);//ñîçäà¸ì êíîïêó íà ôîðìå with But[ButCount] do begin Name:= 'SButton' + inttostr(ButCount + 1); ..... parent:=form1.ScrollBox1; Sbutton1.OnClick := Form1.SButtonClick; // But[ButCount]:= Sbutton1; //form1.ListBox1.Items.Add(Sbutton1.Name); end; inc(Top_, 30); inc(ButCount); end; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#24
|
|||
|
|||
Что-то я не догнал, что надо сделать...
Код:
procedure TForm1.SButtonClick(Sender: TObject); begin Showmessage((Sender as TSoundButton).Caption); end; Так что ли? |
#25
|
|||
|
|||
Ребят, я конечно извиняюсь, но все мы {angvelem, сорри - Вас это не каксается} проглядели одну элементарную вещь: размер массива - [0..Max_Path] и EAccessViolation кончилась... А вот как теперь узнать "номер" нажатой кноки и через него, как через индекс, обратиться к массиву и вытащить нужные данные?
Спасибо Последний раз редактировалось UFO 007, 11.07.2011 в 10:03. |
#26
|
|||
|
|||
Цитата:
|
#27
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#28
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 12.07.2011 в 00:24. |
#29
|
|||
|
|||
Скорее всего я опять не понял, но...
|
#30
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |