Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#121: 2013-07-04 23:39:56 ЛС | профиль | цитата
Если я правильно понял о чем говорит RinniX :
code_31411.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_31411.txt [1.8KB] [473]
Ответов: 1061
Рейтинг: 22
#122: 2013-07-04 23:50:46 ЛС | профиль | цитата
Tad, да, именно об этом и речь! ) А вот и сама проблема:

code_31412.txt
карма: 0

0
файлы: 1code_31412.txt [1.1KB] [444]
Разработчик
Ответов: 26155
Рейтинг: 2127
#123: 2013-07-05 02:02:05 ЛС | профиль | цитата
RinniX писал(а):
А вот и сама проблема

Так реализовано в объектной библиотеке KOL. Почему Кладов так реализовал метод doAdd, предлагаю обратиться лично к нему. Можно сделать вот так и не парить себе мозги.

Add(MainForm,2953706,175,175)
{
}
Add(MTStrTbl,957211,322,168)
{
Width=350
Height=391
Align=1
Name="table"
ModeSp=3
SizeSp=8
DoubleBuffered=0
Columns=#4:Name|
ColumnWidth=100
ColorItems=0
Grid=0
Point(onSelect)
}
Add(MST_RowAction,2563175,315,329)
{
@Color=14933984
MSTControl="table"
}
Add(ArrayEnum,4469836,259,329)
{
link(onItem,2563175:doRowAction,[])
link(Array,8689676:Array,[])
}
Add(StrList,8689676,245,245)
{
@Hint=#12:Имена файлов|
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|2:/7|1:8|1:9|2:10|
Point(doGetString)
Point(onGetString)
}
Add(Button,5872682,196,329)
{
Left=375
Top=15
link(onClick,4469836:doEnum,[])
}
Add(MST_RowAction,245963,378,497)
{
@Color=14933984
MSTControl="table"
}
Add(ArrayEnum,606292,322,497)
{
link(onItem,245963:doRowAction,[])
link(Array,16244189:Array,[])
}
Add(Button,9453529,154,497)
{
Left=375
Top=55
Caption="Push2"
link(onClick,2424595:doEvent1,[])
}
Add(StrPart,14250025,245,427)
{
Char="/"
link(onSplit,16244189:doText,[(298,433)(298,454)])
link(Str,8689676:Text,[])
}
Add(StrList,16244189,308,427)
{
}
Add(Hub,2424595,210,497)
{
link(onEvent1,14250025:doSplit,[(234,503)(234,433)])
link(onEvent2,606292:doEnum,[(273,510)(273,503)])
}


или вот так

Add(MainForm,2953706,175,175)
{
}
Add(MTStrTbl,957211,322,168)
{
Width=350
Height=391
Align=1
Name="table"
ModeSp=3
SizeSp=8
DoubleBuffered=0
Columns=#4:Name|
ColumnWidth=100
ColorItems=0
Grid=0
Point(onSelect)
}
Add(MST_RowAction,2563175,315,329)
{
@Color=14933984
MSTControl="table"
}
Add(ArrayEnum,4469836,259,329)
{
link(onItem,2563175:doRowAction,[])
link(Array,8689676:Array,[])
}
Add(StrList,8689676,245,245)
{
@Hint=#12:Имена файлов|
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|2:/7|1:8|1:9|2:10|
Point(doGetString)
Point(onGetString)
}
Add(Button,5872682,196,329)
{
Left=375
Top=15
link(onClick,4469836:doEnum,[])
}
Add(MST_RowAction,245963,469,497)
{
@Color=14933984
MSTControl="table"
}
Add(ArrayEnum,606292,413,497)
{
link(onItem,245963:doRowAction,[])
link(Array,16244189:Array,[])
}
Add(Button,9453529,154,497)
{
Left=375
Top=55
Caption="Push2"
link(onClick,2424595:doEvent1,[])
}
Add(StrPart,14250025,245,427)
{
Char="/"
link(onSplit,9039576:doReplace,[])
link(Str,8689676:Text,[])
}
Add(StrList,16244189,399,427)
{
}
Add(Hub,2424595,210,497)
{
link(onEvent1,14250025:doSplit,[(234,503)(234,433)])
link(onEvent2,606292:doEnum,[(273,510)(273,503)])
}
Add(Str_Enum,1282611,350,427)
{
Delimiter="13"
link(onEnum,16244189:doAdd,[])
}
Add(Replace,9039576,301,427)
{
SubStr="10"
link(onReplace,1282611:doEnum,[])
}

карма: 22

0
Ответов: 1061
Рейтинг: 22
#124: 2013-07-05 09:04:00 ЛС | профиль | цитата
nesco, ха, супер! )) А ведь хотел как первый вариант сделать, но подумал что это не то, и даже не попробовал! )

nesco писал(а):
Так реализовано в объектной библиотеке KOL

А Мемо разве не на КОLе? )
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#125: 2013-07-05 10:22:19 ЛС | профиль | цитата
nesco писал(а):
Почему Кладов так реализовал
Кладов всё правильно реализовал и так как надо.
И наши компоненты совершенно правильно работают.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26155
Рейтинг: 2127
#126: 2013-07-05 10:45:46 ЛС | профиль | цитата
Tad писал(а):
Кладов всё правильно реализовал и так как надо.И наши компоненты совершенно правильно работают.

А почему именно так Я понимаю Memo -- это стандартный системный класс мультистрочного Edit-a. Но почему StrList так работает, я, к примеру, без понятия
карма: 22

0
Ответов: 1061
Рейтинг: 22
#127: 2013-07-05 10:52:10 ЛС | профиль | цитата
nesco, в Memo кажется, в функции Add, реализована вставка символов разделителей 10 и 13, а в StrList нет!
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#128: 2013-07-05 12:01:58 ЛС | профиль | цитата
nesco, вспомни как ты показывал пример передачи ЛЮБЫХ символов через COM-порт.
После StrPart, при "выволе" в StrList выводятся ВСЕ символы. Поэтому StrList.Сount и показывает 1 строку.
А MTStrTbl, как и все визуальные компоненты, не отображает непечатные символы (
). Вот и выводится 6789
А Memo анализирует наличие символов
и переводит строку.
В общем RinniX запутает кого хошь

RinniX писал(а):
в Memo кажется
Кажется - крестись.

А у Кладова, по большому счету, только одна ошибка - Z-координата не в ту сторону.
Поэтому и проблемы с прозрачностью.


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1061
Рейтинг: 22
#129: 2013-07-05 12:13:00 ЛС | профиль | цитата
Tad писал(а):
В общем RinniX запутает кого хошь. Кажется - крестись.

Хе-хе... Я бегло посмотрел коды этих компонентов функции Адд, и обнаружил символы 10 и 13 в Мемо, а в StrList нет! )) Значит показалось всётаки!
карма: 0

0
Разработчик
Ответов: 26155
Рейтинг: 2127
#130: 2013-07-05 12:56:18 ЛС | профиль | цитата
RinniX писал(а):
и обнаружил символы 10 и 13 в Мемо

В самом компоненте метода doAdd нет, он находится в юните WinList. Вот этот код

procedure THIWinList._work_doAdd;
var s:string;
idx:integer;
dt:TData;
begin
s := ReadString(_Data,_data_str);
if _prop_AddType = 0 then
idx := Add(s)
else begin
idx := Control.Insert(0,s);
if idx = -1 then Control.Text := s + #13#10 + Control.Text;
end;
if _prop_SelectAdd then Control.CurIndex := idx;
dt := ReadData(_Data,_data_value);
// if _isInteger(dt) then Control.ItemData[idx] := ToInteger(dt);
Control.ItemData[idx] := ToInteger(dt);
_hi_CreateEvent(_Data,@_event_onChange);
end;

function THIWinList.Add;
begin
Result := Control.Add(Text);
end;

Для обычного режима добавления -- _prop_AddType = 0, что вызывает срабатывание метода Control.Add(Text). Те метод Add самого контрола отрабатывает переводы строки при их наличии
карма: 22

0
Ответов: 9906
Рейтинг: 351
#131: 2013-07-05 13:25:51 ЛС | профиль | цитата
nesco писал(а):
Но почему StrList так работает, я, к примеру, без понятия

А я - знаю.

У Кладова концепция такая: дополнительная функциональность не должна добавлять ни одного байта кода тем, кто этой функциональностью не пользуется. И вообще, про нее и знать не хочет.
Речь идет об обыкновенном парсинге в StrList.Add, таком же, как и в StrList.SetText. Ну вот - нафига коды этих парсингов тому, кто дает нормальные строки. Типа: не бояре, сами распарсите, если уж жизнь такая поломатая

Что ты и показал. И без проблем, вроде

карма: 9

0
Ответов: 16884
Рейтинг: 1239
#132: 2013-07-05 15:48:50 ЛС | профиль | цитата
Анекдот в тему suslik.rar

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1suslik.rar [1.1KB] [275]
Голосовали:nesco
Ответов: 1061
Рейтинг: 22
#133: 2013-07-24 22:39:41 ЛС | профиль | цитата
И снова проблема! )

code_31496.txt

TCP_Client перестаёт работать вместе с MRA_Base (МайлАгентом)! Почему?
карма: 0

0
файлы: 1code_31496.txt [560B] [459]
Ответов: 1173
Рейтинг: 49
#134: 2013-07-25 03:17:19 ЛС | профиль | цитата
[offtop]
RinniX писал(а):
МайлАгент
Этим ещё кто-то пользуется?[/offtop]
карма: 0

0
Ответов: 198
Рейтинг: 2
#135: 2013-07-26 06:04:53 ЛС | профиль | цитата
Ex_ писал(а):
Этим ещё кто-то пользуется?

В современном мире даже есть люди, которые до сих пор пользуются полу-мертвой ICQ
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)