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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TValueListEditor, Drag&Drop 
:(
    Опции темы
norov
Дата 9.4.2007, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 6.4.2007
Где: Россия, г. Тверь

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



всем здрасте! помогите кто чем может :  я хочу мыхой перенести с ТListBox в TValueListEditor.
Код

procedure TForm1.ValueListEditor1DragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin
   (sender as TListBox).Items.Add((Source as TListBox).Items[(Source as TListBox).ItemIndex])
end;

procedure TForm1.ValueListEditor1DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
  Accept := Source is TListBox;
end;

ругаеться блин! 
PM MAIL ICQ   Вверх
Joss
Дата 9.4.2007, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: нет
Всего: 1



Цитата

ругаеться блин!


и что говорит?
PM MAIL   Вверх
Snowy
Дата 9.4.2007, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Так у тебя Sender это не TListBox ;-)
PM MAIL   Вверх
norov
Дата 9.4.2007, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 6.4.2007
Где: Россия, г. Тверь

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



Цитата(Joss @ 9.4.2007,  09:55)
и что говорит?

Invalid class typecast
только я незнаю на что именно. тут написали что типа на sender, только я не знаю как правильно будет
PM MAIL ICQ   Вверх
Joss
Дата 9.4.2007, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: нет
Всего: 1



Должно быть что-то такое:

Код

procedure TForm1.ValueListEditor1DragDrop(Sender, Source: TObject; X,
  Y: Integer);

var Lb: TListBox;
begin
   Lb := (Source as TListBox);
   ValueListEditor1.InsertRow(Lb.Items[Lb.ItemIndex], 'бла-бла-бла', true);
end;


PM MAIL   Вверх
norov
Дата 9.4.2007, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 6.4.2007
Где: Россия, г. Тверь

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



Цитата(Snowy @ 9.4.2007,  10:00)
Так у тебя Sender это не TListBox ;-)

а почему? так у меня же (отправитель) Sender являеться TListBox. ну в смысле я ведь строку из TListBox переношу в ТValueListEditor. или я что-то не понимаю?
PM MAIL ICQ   Вверх
Snowy
Дата 9.4.2007, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Sender - тот, кто инициировал событие.
То есть ТValueListEditor
А листбох - это источник данных. То бишь Source.

Добавлено через 1 минуту и 31 секунду
Потому и ругается на тайпкаст, т.к. ты утверждаешь, что сендер это листбокс.
А привести ТValueListEditor к листбоксу компилятор не могет ;-)
PM MAIL   Вверх
norov
Дата 9.4.2007, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 6.4.2007
Где: Россия, г. Тверь

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



Цитата(Joss @ 9.4.2007,  10:23)
Должно быть что-то такое:

спасибо огромное! smile  все получилось!

Добавлено через 1 минуту и 51 секунду
Цитата(Snowy @ 9.4.2007,  10:27)
Sender - тот, кто инициировал событие.
То есть ТValueListEditor
А листбох - это источник данных. То бишь Source.

Добавлено @ 10:29
Потому и ругается на тайпкаст, т.к. ты утверждаешь, что сендер это листбокс.
А привести ТValueListEditor к листбоксу компилятор не могет ;-)

и те спасибо! я тут просто что-то напутал smile бывает! пасибо!
PM MAIL ICQ   Вверх
norov
Дата 9.4.2007, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 6.4.2007
Где: Россия, г. Тверь

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



в коде было что при:
Код

{запись в KEY}
...
ValueListEditor1.InsertRow(Lb.Items[Lb.ItemIndex], 'бла-бла-бла', true);
...

вставляеьтся строка в KEY а еси поменять
Код

{запись в Value}
...
ValueListEditor1.InsertRow( 'бла-бла-бла', Lb.Items[Lb.ItemIndex], true);
...

то данные записываються в VALUE, а как проверить что еси курсор находиться над KEY чтоб записывалось только в KEY, а еси над Value то только в VALUE.
просто я хочу с одного TListBox одни значения переносить в KEY, а с другого -- другие значения в VALUE.
эт помоему возможно
PM MAIL ICQ   Вверх
Snowy
Дата 9.4.2007, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Если X меньше ширины первой колонки, то KEY, иначе Value.
PM MAIL   Вверх
norov
Дата 9.4.2007, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 6.4.2007
Где: Россия, г. Тверь

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



Цитата(Snowy @ 9.4.2007,  11:21)
Если X меньше ширины первой колонки, то KEY, иначе Value.

а может просто как-нить проверить с какого TListBox-а приходят данные и толкать их в определеённый столбик, выполнять некоторые действия?
PM MAIL ICQ   Вверх
norov
Дата 9.4.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 6.4.2007
Где: Россия, г. Тверь

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



я сделал так:
Код

procedure TForm1.ValueListEditor1DragDrop(Sender, Source: TObject; X,
  Y: Integer);
var Lb: TListBox;
begin
   Lb := (Source as TListBox);
   if (Source as TListBox) = ListBox2 then
   ValueListEditor1.InsertRow(Lb.Items[Lb.ItemIndex], '', true)
   else
     {вставить значение в существующую строку или добавить новый  ROW}
   ValueListEditor1.InsertRow('',Lb.Items[Lb.ItemIndex], true);
end;

как можно вставить в нужную строку в VALUE  чтоб происходил UPDATE строки VALUE над которым находиться курсор?
или 
как можно определить над какой строкой VALUE находиться курсор?

Это сообщение отредактировал(а) norov - 9.4.2007, 12:27
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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