|
|
|
Как в классе Grid заменить ячеечный объект Text1 на свой?
|
|||
|---|---|---|---|
|
#18+
Привет! Стало интересно как заменить в Grid-е объект-"носитель" ячеек на любой свой. Там по умолчанию вставляется всегда стандартный TextBox. А если я хочу там свой TextBox или, скажем, стандартный EditBox, причем так, чтобы стандартный даже не добавлялся, чтобы мой стал стандартным - как это сделать? Я находил решение в ктором был прописан метод Init своей колонки для своего грида, и суть там сводилась к тому, что помимо стандартного TextBox-a добавлялся еще один, свой, и на него указывалось Column.CurrentControl. Т.е. в данной ситуации на 1 ячейку создается уже 2 объекта - сначала стандартный, затем свой. PS Собственно к вопросу подтолкнул другой вопрос - как увеличить высоту (RowHeight) ячеек в гриде визуально - понятно. Но если в ячейке 200 сиволов текста, инфа все равно идет в одну строку по средине ячейки. Скажем то что мне нужно бы было - это свойство WordWrap, но у текстбокса такого не имеется и я подумал про EditBox... Но у него свои заморочки - в него нельзя тулить нетекстовую инфу... И тут уже возникает некая другая затея - скажем, если в ячейке текстовая инфа, но по ширине ячейки она вся не вмещается, заменяем текстбокс на едитбокс. Если во время расширения такой ячейки текст помещается по ширине - обратно ставим текстбокс, ну и обратно. Хотя бредовая идея ваще-то и менингитная - считай ширину каждого символа по размеру шрифта, просчет умещения текста надо вести по всему столбцу и тд и тп... Можно проще - скажем если колонке принадлежит текстовое поле размером больше 50 символов - ставим едитбокс... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2008, 22:02 |
|
||
|
Как в классе Grid заменить ячеечный объект Text1 на свой?
|
|||
|---|---|---|---|
|
#18+
CTAC-KOТ.е. в данной ситуации на 1 ячейку создается уже 2 объекта - сначала стандартный, затем свой. .RemoveObject("Text1") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2008, 00:29 |
|
||
|
Как в классе Grid заменить ячеечный объект Text1 на свой?
|
|||
|---|---|---|---|
|
#18+
А без этого гемора никак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2008, 01:55 |
|
||
|
Как в классе Grid заменить ячеечный объект Text1 на свой?
|
|||
|---|---|---|---|
|
#18+
Можно, но с другим http://]http://forum.foxclub.ru/read.php?32,177187,177202#msg-177202 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2008, 08:34 |
|
||
|
Как в классе Grid заменить ячеечный объект Text1 на свой?
|
|||
|---|---|---|---|
|
#18+
x1x1x1 CTAC-KOТ.е. в данной ситуации на 1 ячейку создается уже 2 объекта - сначала стандартный, затем свой. .RemoveObject("Text1") сенксь, вчера до этого же сам дошел :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2008, 11:38 |
|
||
|
Как в классе Grid заменить ячеечный объект Text1 на свой?
|
|||
|---|---|---|---|
|
#18+
DagМожно, но с другим: сцылко это про дизайнер - там понятно. а я про класс. У меня грид на форме без колонок. Когда загружается в него курсор, тогда и колонки появляются, тогда же в колонках автоматом втуляются стандартные текстбоксы. По ходу я сделал так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2008, 12:06 |
|
||
|
Как в классе Grid заменить ячеечный объект Text1 на свой?
|
|||
|---|---|---|---|
|
#18+
CTAC-KO...а я про класс. У меня грид на форме без колонок... Я, когда отвечал, так и догадался! ;) Сам делал нечто похожее - есть табличка, с помощью которой юзер сам выбирает поля, которые хочет видеть. Но форме - грид без колонок, которые потом формируются, исходя из пожеланий юзера. Получилось удобно в сопровождении для себя, а пользователи просто счастливы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2008, 14:00 |
|
||
|
Как в классе Grid заменить ячеечный объект Text1 на свой?
|
|||
|---|---|---|---|
|
#18+
СТАС-КОно ведь где-то же прописано, что нужно вставлять именно текстбокс, а не комбо там или еще что! ИМХО, это нигде не написано, просто текстбокс наиболее универсальный контрол-поэтому он и выбран для использования по умолчанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2008, 14:12 |
|
||
|
Как в классе Grid заменить ячеечный объект Text1 на свой?
|
|||
|---|---|---|---|
|
#18+
CTAC-KO но ведь где-то же прописано, что нужно вставлять именно текстбокс, а не комбо там или еще что! У грида есть св-ва MemberClass, MemberClassLibrary, которые указывают на класс колонки, используемый для грида. А уже в своём классе колонки творите что угодно, например editbox вместо textbox. Вообще, в фоксовском гриде мне не хватает только одного: возможности делать разную высоту строк :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2008, 14:34 |
|
||
|
Как в классе Grid заменить ячеечный объект Text1 на свой?
|
|||
|---|---|---|---|
|
#18+
короче, как я понял, другого способа чем убить текстбокс(необязательно), затем вставить свой контролл и указать колонке на него - нет? и задать использование собственного текстбокса по умолчанию, кроме как изложенным способом тоже не существует? ЗЫ. У Климова в его смартгриде собственный текстбокс тоже вставляется именно таким способом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2008, 14:32 |
|
||
|
Как в классе Grid заменить ячеечный объект Text1 на свой?
|
|||
|---|---|---|---|
|
#18+
Если грид формируется программно - можно что угодно, а вот в IDE не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2008, 16:37 |
|
||
|
Как в классе Grid заменить ячеечный объект Text1 на свой?
|
|||
|---|---|---|---|
|
#18+
СТАС-КОкороче, как я понял, другого способа чем убить текстбокс(необязательно), затем вставить свой контролл и указать колонке на него - нет? и задать использование собственного текстбокса по умолчанию, кроме как изложенным способом тоже не существует? Если у Вас девятка, то как указывает XAndy - используйте свойства MemberClass, MemberClassLibrary грида. Это будет примерно так - в MemberClass прописываем имя класса колонки - "eColumn", в MemberClassLibrary - имя prg-файла с описанием класса, допустим "myColumn.prg". Содержимое myColumn.prg приблизительно такое: DEFINE CLASS eColumn as Column ADD OBJECT Header1 as eHeader WITH Caption = "Столбец" ADD OBJECT eTextBox1 as eGridTxtBox WITH ControlSource=this.ControlSource,Format=this.Format,InputMask=this.InputMask ENDDEFINE DEFINE CLASS eHeader AS Header Alignment = 2 WordWrap = .T. PROCEDURE Click() this.Parent.Parent.SetTableOrder(this) ENDPROC ENDDEFINE DEFINE CLASS eGridTxtBox as eTextBox OF myBaseForm.vcx ENDDEFINE Здесь при добавлении колонок в грид будет добавлятся свой хидер и свой текстбокс. Естественно такой грид оформляем как пользовательский класс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2008, 18:16 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=35415066&tid=1587574]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 361ms |

| 0 / 0 |
