Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с Run-time компонентом 
:(
    Опции темы
devmstr
Дата 28.12.2004, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 28.4.2004
Где: Ukraine

Репутация: 2
Всего: 11



Что не так. Я добавляю событие к Run-Time компоненту(ComboBox) появляющемся на StringGride но оно не

вызывается?

Исходники


--------------------
Think different ©Steve Jobs 
user posted image
PM MAIL WWW   Вверх
z-END
Дата 28.12.2004, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 11
Всего: 102



а просто кусок выложить нельзя? не горю желанием еХешник качать=)


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Alex
Дата 28.12.2004, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



magician, событие OnChange у тебя обрабатывается, но событие OnChange не вызывается при выборе элемента из списка, в место него вызывается OnSelect.

Код

procedure TForm1.FormCreate(Sender: TObject);
begin
CB:=TComboBox.Create(StringGrid1);
CB.Parent:=StringGrid1;
CB.Visible:=false;
cb.Items.Add('a');
cb.Items.Add('b');
cb.Items.Add('c');
CB.OnChange:=Change;
CB.OnSelect:=Change;
end;



--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
devmstr
Дата 28.12.2004, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 28.4.2004
Где: Ukraine

Репутация: 2
Всего: 11



nJIaKca.spb
Исходники(55Kилобайт)




Alex
Результат тотже - сообщения нет!


--------------------
Think different ©Steve Jobs 
user posted image
PM MAIL WWW   Вверх
Alex
Дата 28.12.2004, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Если делать по нормальному, то нужно примерно так:
Код

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   StringGrid1: TStringGrid;
   procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
     var CanSelect: Boolean);
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);

 private
   { Private declarations }
   CB: TComboBox;

   procedure Change(Sender: TObject);
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 

implementation

{$R *.dfm}

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
 ARow: Integer; var CanSelect: Boolean);
Var
R:TRect;
begin
 // Размер и расположение combobox подгоняем под ячейку
 R := StringGrid1.CellRect(ACol, ARow);
 R.Left := R.Left + StringGrid1.Left;
 R.Right := R.Right + StringGrid1.Left;
 R.Top := R.Top + StringGrid1.Top;
 R.Bottom := R.Bottom + StringGrid1.Top;
 CB.Left := R.Left + 1;
 CB.Top := R.Top + 1;
 CB.Width := (R.Right + 1) - R.Left;
 CB.Height := (R.Bottom + 1) - R.Top;
 // Показываем combobox
 CB.Visible := True;
 CB.SetFocus;

 CanSelect := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 CB:= TComboBox.Create(Self);
 CB.Parent:= Self;
 // Высоту у combobox не получится установить, поэтому мы будем
 // подгонять размер у грида под размер combobox!

 CB.Items.Add('1');
 CB.Items.Add('2');
 CB.Items.Add('3');

 StringGrid1.DefaultRowHeight := CB.Height;
 // Скрываем combobox
 CB.Visible:= False;

 CB.OnChange:= Change;
 CB.OnExit:= Change;

end;

procedure TForm1.Change(Sender: TObject);
begin
 // Получаем выбранный элемент из ComboBox и помещаем его в грид
 StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row]:= CB.Items[CB.ItemIndex];
 CB.Visible := False;
 StringGrid1.SetFocus;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 if Assigned(CB) then CB.Free;
end;

end.



--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
devmstr
Дата 28.12.2004, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 28.4.2004
Где: Ukraine

Репутация: 2
Всего: 11



Огромное Вам спасибо, Вы мне очень помогли! Все работает, только объясните, пожайлуста, почему только с OnChange не работает, и вообще когда же тогда вообще вызывается OnChange(Я всегда думал, что при выборе другого элемента).
smile smile smile

"Кстати насчет Вашего девиза - золотые слова!"(Извините за smile)


--------------------
Think different ©Steve Jobs 
user posted image
PM MAIL WWW   Вверх
Alex
Дата 28.12.2004, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



OnChange срабатывает при редактировании текста (попробуй или дописать символ или удалить символ в строке)
Цитата(magician @ 28.12.2004, 21:55)
"Кстати насчет Вашего девиза - золотые слова!"(Извините за )

Спасибо smile


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
devmstr
Дата 30.12.2004, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 28.4.2004
Где: Ukraine

Репутация: 2
Всего: 11



Спасибо


--------------------
Think different ©Steve Jobs 
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0524 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.