Вверх ↑
Этот топик читают: Гость
Ответов: 212
Рейтинг: 2
#1: 2017-08-09 12:12:49 ЛС | профиль | цитата
Как получить выделенный текст в конкретной ячейке таблицы, чтобы привязать к ней кнопки буфера обмена (Копировать, вставить)?

--- Добавлено в 2017-08-09 12:14:56

И как (пардон за назойливость) можно отредактировать имя колонки? Сенк.

Редактировалось 1 раз(а), последний 2017-08-09 12:14:56
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
vip
#1.1контекстная реклама от партнеров
Разработчик
Ответов: 26061
Рейтинг: 2120
#2: 2017-08-09 12:26:07 ЛС | профиль | цитата
inter1 писал(а):
Как получить выделенный текст в конкретной ячейке таблицы, чтобы привязать к ней кнопки буфера обмена (Копировать, вставить)?

--- Добавлено в 2017-08-09 12:14:56

И как (пардон за назойливость) можно отредактировать имя колонки? Сенк.

В обычной таблице, обычными компонентами -- никак. Для таких целей нужно использовать MTStrTbl

Схема

Add(MST_UseEditCtrl,5161326,322,238)
{
MSTControl="tbl"
}
Add(MainForm,2953706,245,161)
{
Height=334
link(onCreate,10041622:doEnum,[])
}
Add(Edit,1442473,385,301)
{
Left=10
Top=230
Width=360
Text=""
}
Add(MTStrTbl,1798682,266,301)
{
Left=10
Top=5
Width=360
Height=220
Name="tbl"
Columns=#1:1|1:2|1:3|
link(onClick,4159948:doEMatrix,[])
}
Add(StrList,12965356,308,112)
{
Strings=#14:1111,2222,3333|14:4444,5555,6666|14:7777,8888,9999|
}
Add(MST_Matrix,4159948,329,301)
{
MSTControl="tbl"
link(onEMatrix,1442473:doText,[])
link(X,5161326:SubItem,[])
link(Y,5161326:Index,[])
}
Add(MT_String,922736,378,161)
{
Delimeter=","
link(onResult,2904434:doRowAction,[])
}
Add(ArrayEnum,10041622,322,175)
{
link(onItem,922736:doMTString,[])
link(Array,12965356:Array,[])
}
Add(MST_RowAction,2904434,434,161)
{
MSTControl="tbl"
}
Add(Button,12119190,476,301)
{
Left=10
Top=260
TabOrder=-1
Caption="SetCol"
link(onClick,12886543:doAdd,[])
}
Add(Edit,9981778,490,245)
{
Left=75
Top=260
Text="0"
}
Add(Edit,16507298,539,245)
{
Left=130
Top=260
Width=105
Text="1111"
}
Add(MST_ColAction,2574806,588,301)
{
Action=5
MSTControl="tbl"
}
Add(MT_AddData,12886543,532,301)
{
link(onAdd,2574806:doColAction,[])
link(Data1,9981778:Text,[(538,292)(496,292)])
link(Data2,16507298:Text,[])
}


Редактировалось 3 раз(а), последний 2017-08-09 12:48:14
карма: 22

0
Ответов: 212
Рейтинг: 2
#3: 2017-08-09 13:01:11 ЛС | профиль | цитата
nesco, спасибо! Жаль, конечно.
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 212
Рейтинг: 2
#4: 2017-08-09 14:24:19 ЛС | профиль | цитата
Вот такое недоумение: а возможно ли получить картинку из .ехе? Как, указав файл, получить его картинку?
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 16884
Рейтинг: 1239
#5: 2017-08-09 14:31:53 ЛС | профиль | цитата
inter1 писал(а):
И как (пардон за назойливость) можно отредактировать имя колонки?
Это про что? Подробней можно ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 497
Рейтинг: 16
#6: 2017-08-09 15:20:14 ЛС | профиль | цитата
WorkIconsManager

*doMT_InsertIcon=Вставляет иконку в список иконок. При индексe, большем длины списка иконок, иконка добавляется в конец списка ARG(Index, Icon)|1|0
*doMT_ReplaceIcon=Заменяет иконку в списке иконок. ARG(Index, Icon)|1|0
*doMT_LoadExtIcon=Извлекает отдельную иконку из файла ресурса (*.exe,*.dll,*.ocx,*.icl), а при осутствии иконок, извлекается связанная с файлом, где ARG(IconsFileName, ExtractIndex, IconSize, ReplaceIcon)|1|0

doClearIcons=Очищает список иконок|1|0
*doDeleteIcon=Удаляет иконку из списка иконок по индексу из потока. ARG(Index)|1|0
*doGetIcon=Полуает иконку из списка иконок по индексу из потока. ARG(Index)|1|0
*doLoadIcon=Загружает иконку из файла, вставляя ее на место в списке с индексом из потока, если индекс больше длины списка, то вставляет в конец списка. ARG(IconFileName, Index)|1|0
*doSaveIcon=Сохраняет иконку с индексом из потока в файле. ARG(IconFileName, Index)|1|0
*doCountPakIcons=Получает количество иконок в файле ресурса (*.exe,*.dll,*.ocx,*.icl), выдавая полученное значение в поток. ARG(IconsFileName)|1|0
*doLoadPakIcons=Импортирует иконки из файла ресурса (*.exe,*.dll,*.ocx,*.icl) в список иконок. ARG(IconsFileName)|1|0
*doLoadIList=Загружает список иконк из файла. ARG(IListFileName)|1|0
*doSaveIList=Сохраняет список иконок в файле. ARG(IListFileName)|1|0

onChangeImgLst=Событие происходит всякий раз при изменении списка иконок|2|0
*onCountPakIcons=Событие происходит всякий раз после получения количество иконок в файле ресурса методом doCountPakIcons. ARG(IconCount)|2|0
*onGetIcon=Выдает в поток иконку, полученную методом doGetIcon с учетом свойства IconToBmp. ARG(Icon or Bitmap)|2|0
*onExtIcon=Выдает в поток иконку, полученную методом doMT_LoadExtIcon с учетом свойства IconToBmp. ARG(Icon or Bitmap)|2|0

IconArray=Массив иконок|3|13
CountIcons=Содержит количество иконок в списке иконок|3|1
*EndIdxIcons=Содержит индекс последней иконки в списке иконок|3|1
*ImgSize=Содержит размер иконок в списке иконок|3|1
*CountPakIcons=Содержит количество иконок в файле ресурса. Значение действительно после вызова метода doCountPakIcons|3|1
*TranspColor=Содержит цвет заливки прозрачных областей иконки при конвертации в формат BMP|3|1

*IconFileName=Имя файла для загрузки и сохранения иконки|4|2
*IconsFileName=Имя файла (*.exe,*.dll,*.ocx,*.icl) для загрузки иконок|4|2
*IListFileName=Имя файла для загрузки и сохранения списка иконок|4|2
*SFileExists_MT=Если при сохранении в файле эта точка содержит 0, то операция сохранения будет продолжена, иначе - отменена. ARG(Код файловой операции (3 - SaveIcon, 6 - SaveIList), Имя файла)|4|0
*LFileExists_MT=При отсутствии загружаемого файла выдает событие для генерации сообщения, после чего отменяет операцию загрузки. ARG(Код файловой операции (2 - LoadIcon, 4 - LoadPakIcons, 5 - LoadIList, 7 - LoadExtIcon), Имя файла)|4|0
карма: 1
        ]  
0
Ответов: 212
Рейтинг: 2
#7: 2017-08-09 15:59:57 ЛС | профиль | цитата
Tad, нужно просто изменить имя колонки. Не знаю, что можно добавить к сказанному... Есть таблица. Юзер создал несколько колонок, ряд строк. В общем, таблицу заполнил, все здорово. Но, например, заметил ошибку, в названии колонки. Очищать таблицу и заполнять ее заново? Не камильфо... Вот ему и нужно нажать кноку, вывести имя колонки, изменить его и принять изменения (применить). Как-то так...

--- Добавлено в 2017-08-09 16:11:08

RAWY_EX, спасибо!

Редактировалось 1 раз(а), последний 2017-08-09 16:11:08
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 497
Рейтинг: 16
#8: 2017-08-09 17:12:25 ЛС | профиль | цитата
флуд

нужно возле кармы пункт "дежурный экстрасенс"
карма: 1
        ]  
0
Ответов: 212
Рейтинг: 2
#9: 2017-08-09 17:32:52 ЛС | профиль | цитата
RAWY_EX, ага. А у нас - "Слепо-глухонемой".
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 16884
Рейтинг: 1239
#10: 2017-08-09 18:11:17 ЛС | профиль | цитата
inter1 писал(а):
Как-то так...
Отредактировать название колонки у заполненной таблицы.
Теперь ясно...
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 212
Рейтинг: 2
#11: 2017-08-09 19:01:39 ЛС | профиль | цитата
А у заполненной таблицы строки перемещать вверх-вниз можно?
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#12: 2017-08-09 19:39:33 ЛС | профиль | цитата
inter1 писал(а):
А у заполненной таблицы строки перемещать вверх-вниз можно?

При помощи MTStrTbl это делается элементарно

Схема

Add(MST_UseEditCtrl,5161326,287,329)
{
MSTControl="tbl"
}
Add(MainForm,11610658,210,252)
{
Width=475
Height=334
link(onCreate,10041622:doEnum,[])
}
Add(Edit,1442473,350,392)
{
Left=10
Top=230
Width=360
Text=""
}
Add(MTStrTbl,1798682,231,392)
{
Left=10
Top=5
Width=360
Height=220
Name="tbl"
Columns=#1:1|1:2|1:3|
link(onClick,4159948:doEMatrix,[])
}
Add(StrList,12965356,273,203)
{
Strings=#14:1111,2222,3333|14:4444,5555,6666|14:7777,8888,9999|
}
Add(MST_Matrix,4159948,294,392)
{
MSTControl="tbl"
link(onEMatrix,1442473:doText,[])
link(X,5161326:SubItem,[])
link(Y,5161326:Index,[])
}
Add(MT_String,922736,343,252)
{
Delimeter=","
link(onResult,2904434:doRowAction,[])
}
Add(ArrayEnum,10041622,287,266)
{
link(onItem,922736:doMTString,[])
link(Array,12965356:Array,[])
}
Add(MST_RowAction,2904434,399,252)
{
MSTControl="tbl"
}
Add(Button,12119190,441,392)
{
Left=10
Top=260
TabOrder=-1
Caption="SetCol"
link(onClick,12886543:doAdd,[])
}
Add(Edit,9981778,455,336)
{
Left=75
Top=260
Text="0"
}
Add(Edit,16507298,504,336)
{
Left=130
Top=260
Width=105
Text="1111"
}
Add(MST_ColAction,2574806,553,392)
{
Action=5
MSTControl="tbl"
}
Add(MT_AddData,12886543,497,392)
{
link(onAdd,2574806:doColAction,[])
link(Data1,9981778:Text,[(503,383)(461,383)])
link(Data2,16507298:Text,[])
}
Add(Button,9258131,182,462)
{
Left=380
Top=10
TabOrder=-1
Caption="Up"
link(onClick,7040858:doRowAction,[])
}
Add(Button,4933867,182,504)
{
Left=380
Top=35
TabOrder=-1
Caption="Down"
link(onClick,7484662:doRowAction,[])
}
Add(MST_RowAction,7040858,238,462)
{
Action=8
MSTControl="tbl"
Point(Index)
link(Index,15605763:Var2,[])
}
Add(MST_RowAction,7484662,273,504)
{
Action=9
MSTControl="tbl"
Point(Index)
link(Index,15605763:Var3,[(279,446)])
}
Add(GetDataEx,15605763,238,441)
{
link(Data,1798682:Index,[])
}


Редактировалось 1 раз(а), последний 2017-08-09 21:51:37
карма: 22

0
Ответов: 212
Рейтинг: 2
#13: 2017-08-09 19:53:10 ЛС | профиль | цитата
nesco, спасибо, спасибо! Но не знаю, решусь ли заменить StringTable на MTStrTbl.

--- Добавлено в 2017-08-09 20:28:21

RAWY_EX, не без гордости показываю, что сделал!

Add(WorkIconsManager,9703357,700,140)
{
IconsManager="icons"
Point(doLoadPakIcons)
}
Add(ArrayEnum,11926897,700,189)
{
link(onItem,10124772:doEvent1,[])
link(Array,9703357:IconArray,[])
}
Add(IconsManager,10734311,700,98)
{
Name="icons"
ImgSize=58
Icons=[]
}
Add(Edit,12930717,623,147)
{
Left=236
Top=45
Width=266
Text="C:\Program Files\AkelPad\AkelPad.exe"
link(onChange,16414892:doEvent1,[])
}
Add(Image,10928641,840,175)
{
Left=60
Top=38
Width=42
Height=42
AutoSize=0
ViewStyle=4
}
Add(Icon,1093414,791,175)
{
Point(onBitmap)
Point(doLoadIcon)
Point(doBitmap)
link(onBitmap,10928641:doLoad,[])
}
Add(Hub,10124772,756,189)
{
link(onEvent1,1093414:doLoadIcon,[])
link(onEvent2,1093414:doBitmap,[])
}
Add(Hub,16414892,672,147)
{
link(onEvent1,9703357:doLoadPakIcons,[])
link(onEvent2,11926897:doEnum,[(693,160)(693,195)])
}
Add(ODialog,7924984,574,147)
{
link(onExecute,12930717:doText,[])
}
Add(Button,4220820,525,147)
{
Left=142
Top=44
Width=81
Caption="Показать .ехе"
link(onClick,7924984:doExecute,[])
}


Но вот только не знаю как подобрать иконку из ехе-шника по размеру. Иконка "берется", но маленькая. Видно пиксели.

Редактировалось 1 раз(а), последний 2017-08-09 20:28:21
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 1925
Рейтинг: 172
#14: 2017-08-09 21:22:31 ЛС | профиль | цитата
inter1 писал(а):
решусь ли заменить StringTable на MTStrTbl

А что мешает?

--- Добавлено в 2017-08-09 21:29:35

Если боитесь множественности элементов - можно воспользоваться StringTableMT.


Add(StringTableMT,16177662,315,224)
{
Left=15
Top=10
Width=215
Height=145
Columns=#1:1|1:2|1:3|
ColumnClick=1
IconsCheck=[]
MiscIcons=[]
Icons=[]
StringsStrLst=#5:а;б;в|5:г;д;е|5:ё;ж;з|
AutoTblStrLst=0
Point(Index)
Point(SubItem)
Point(Matrix)
Point(doMT_NameCol)
Point(onColumnClick)
link(onClick,3698829:doRead,[(366,230)(366,275)(331,275)(331,307)])
link(onColumnClick,2546381:doWork1,[])
}
Add(MatrixRW,3698829,343,301)
{
link(onRead,8310141:doText,[])
link(Matrix,16177662:Matrix,[])
link(X,16177662:SubItem,[(363,285)(342,285)])
link(Y,16177662:Index,[(370,285)(335,285)])
}
Add(Edit,8310141,399,301)
{
Left=15
Top=160
}
Add(ChildForm,2546381,385,231)
{
link(onEvent1,2705650:In,[])
}
BEGIN_SDK
Add(EditMulti,3966689,21,21)
{
EventCount=1
WorkCount=1
link(doWork1,10994192:doValue,[(53,27)(53,111)])
}
Add(MainForm,15300154,154,77)
{
Left=35
Top=105
Width=275
Height=70
Visible=1
Point(doShowModal)
}
Add(MT_AddData,1226958,77,168)
{
InputMT=1
link(onAdd,5054157:doEvent1,[])
link(Data1,10994192:Value,[])
}
Add(Edit,10035849,21,161)
{
Left=5
Top=10
Width=250
Text="Введите имя столбца"
link(onEnter,1226958:doAdd,[])
}
Add(Memory,10994192,77,105)
{
link(onData,15300154:doShowModal,[])
}
Add(Hub,5054157,126,168)
{
link(onEvent1,3966689:onEvent1,[(215,174)(215,27)])
link(onEvent2,15300154:doClose,[(147,181)(147,104)])
}
END_SDK
Add(LineBreak,14725102,273,259)
{
link(Out,16177662:doMT_NameCol,[])
Primary=[2705650,154,-28]
}

Редактировалось 1 раз(а), последний 2017-08-09 21:29:35
карма: 9
0
Ответов: 212
Рейтинг: 2
#15: 2017-08-09 21:50:21 ЛС | профиль | цитата
3042, ну, во-первых, у меня там уже изрядно все покрыто паутиной, и вырывать элемент для замены, сам понимаешь - хлопотно зело. А во-вторых, да, не понимаю множественности этой самой. Не укладывается в мою логику. Мне проще, если я вижу конкретные связи. Впрочем, это не критика интерфейса, а характеристика моей когнитивной функции. Я зрительник.
А твой пример буду изучать, может удастся реализовать задумку. Спасибо!
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)