![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не ставятся никакие пакеты [Delphi, Windows]
Dy1 © (2007-02-19 20:58:00)Ошибка при попытке установки "Unit SysInit was compiled with..."
МСК 2.37 с заменой системных модулей. Возврат к стандартным добавляет 8 ошибок.
=BuckLr= (2007-06-13 23:14:00) [61]
> С выходом 95 MS рекомендовал переходить на list view.
Уже лет 12 прошло, и всё никак не перейдут :) МС вааще много чего советует, если ко всему прислушиваться... Но я согласен с тем, что листвью лучше - с ним просто легче работать, а возможностей хоть отбавляй. И никаких ограничений на строчки. Самое то, что тебе нужно (2 domo)
Vladimir Kladov (2007-06-13 20:49:00) [62]list box - это для совместимости, с времен Win3.1. С выходом 95 MS рекомендовал переходить на list view.
domo (2007-06-13 15:00:00) [63]Сильно мне не хочется, просто надо же где-то строки прокручивать. Думал, что в listbox лучше всего. Что ж, попробую теперь по другому, может выйдет. А что с гор. лифтом?
Vladimir Kladov (2007-06-12 17:57:00) [64]Список list box больше чем 100 элементов - это несуразица. И если уж так сильно хочется, есть виртуальный list box. Еще лучше использовать виртуальный list view, для него уже даже событие готово (OnLVData).
ANTPro (2007-06-12 14:53:00) [65]> [51] domo (12.06.07 14:03)
Applet.ProcessMessages
domo (2007-06-12 14:03:00) [66]Так я вроде же пробовал вызывать
BeginUpdate;
при вызове
ListBox1.Add(sList.Items[i]);
- скорость осталась низкой (т.е. прежней). Может что не так делаю? Объясните, как правильно (когда) вызывать этот метод? И даже если я ничего не вызываю, ListBox1 (и вся прога) перестает реагировать на что-либо до окончания добавления всех строк в ListBox1 (около 20 сек).
SergeR (2007-06-11 17:56:00) [67]RTFM.
KOL.pas:
procedure BeginUpdate;
{* |<#treeview>
|<#listview>
|<#richedit>
|<#memo>
|<#listbox>
Call this method to stop visual updates of the control until correspondent
EndUpdate called (pairs BeginUpdate - EndUpdate can be nested). }
domo (2007-06-11 17:07:00) [68]Да, loHScroll и правда не работает. А что про BeginUpdate и EndUpdate, я что-то не понял, объясни, пожалуйста.
=BuckLr= (2007-06-07 17:05:00) [69]
> очень медленно работает
Ах, да. У контролов есть BeginUpdate и EndUpdate.
=BuckLr= (2007-06-07 17:01:00) [70]
> проблемы с приведением типов есть не только у меня
У меня проблем нет. Если речь про PChar вместо Char, то думать надо головой, что такое один символ и что такое целая цепочка.
> Но я оказался прав - очень медленно работает
Кажется это действительно лажа. Как ускорить до уровня мемо, я думаю, посмотреть, как само мемо это делает (в самом loadfromfile кажется)
> Свойства LB_SETHORIZONTALEXTENT и даже LB_SETHORIZONTAL
> найти не смог
И не найдёшь. Этоне из КОЛ. А вообще я торможу, в кол есть для этого loHScroll. Правда, у меня что-то не заработало. Раньше, помнится, всё было нормально. Владимир, не проверите ли эту опцию? И, кстати, я нашёл проблемку с генерацией в МСК - вместо loHScroll генерируется loHScrll. Приходилось каждый раз "о" добавлять :)
domo (2007-06-07 16:34:00) [71]1. Никто не ответил как устанавливать компоненты где нет *.dpk, а только файл KOLxxx.pas или KOLxxx.pas и MCKxxx.pas. Я попробовал создать новый пакет, добавить туда файлы KOLxxx.pas и MCKxxx.pas, откомпилировать этот пакет и затем установить его. Но не получилось - фатальных ошибок вроде и не заметил, а новых значков на панелях компонентов не появилось. Как правильно делать установку и как проверить, что установка успешна?
2. Попробовал, но компилятор сказал, что, видно, проблемы с приведением типов есть не только у меня. Работает лишь такой вариант, возможно так и надо:
s:='Обработано строк: '+Int2Str(ListBox1.Count);
Form1.Form.StatusText[1]:=PChar(s);
Цикл сделал, даже два (какой из них правильный?):
for i:=0 to sList.Count-1 do ListBox1.Add(sList.Items[i]);
for i:=0 to sList.Count-1 do ListBox1.Items[i]:=sList.Items[i];
Но я оказался прав - очень медленно работает - около 20 сек (а в Memo1 - за 2 сек). Можно ли ускорить этот процесс, хотя бы в 4-5 раз? Специалисты, подскажите.
С обработкой нажатий кнопок (а не панели) я не разобрался, но заметил, что подсказки при наведении мыши на другие 16 кнопок те же, что и при наведении на первую. Проверил свойство панели tooltips - там 17 строк подсказок, ShowTooltips установлено в true, а подсказок нет (есть, но тe же, что для первой кнопки). Посоветуйте, как исправить.
Свойства LB_SETHORIZONTALEXTENT и даже LB_SETHORIZONTAL найти не смог. Обыскал все файлы *.pas в ветке КОЛ и не нашел. Как добавить гор. лифт в ListBox?
=BuckLr= (2007-06-05 17:21:00) [72]Полоса прокрутки - что-то вроде LB_SETHORIZONTALEXTENT, поищи. А насчёт скорости перебора, так это вроде не проблема. Хотя я тоже не спец, не уверен, что это так...
domo (2007-06-05 14:51:00) [73]2. За советы спасибо, буду разбираться. И какие там обиды, просто я считаю, что ошибки и неточности лучше исправлять, а если просят помощи - лучше помогать. Ну, а кто-то считает наоборот, пусть...
С приведением типов и правда проблемы. Цикл я попробую организовать, но будет ли это быстро - там файл из ~150 тыс строк... Обрабатываю щелчок на самом тулбаре я потому, что так мне вроде проще (хотя может это не так). И как в ListBox1 включить гориз.лифт?
=BuckLr= (2007-06-04 20:02:00) [74]Мы ржём, потому что ржачно и фигеем потому что офигительно :)
Ты не обижайся, но тебе и правда под всл надо ещё поработать. Вот, к примеру, нафига тут
Form1.Form.StatusText[2]:=^s;
когда надо
Form1.Form.StatusText[2]:=Char(s);
И не будет работать, коль с приведением типов проблемы...
А так:
ListBox1.Text:= SList.Text;
строки в листбокс не добавляются. Смотри описание метода
{* |<#edit>
|<#memo>
The same as Caption. To make more convenient with Edit controls. For
Rich Edit control, use property RE_Text. }
значит, метод только для полей редактирования, а не для листбокс, комбобокс и иже с ними, это списковые объекты. Добавлять надо методом Add. Тебе надо организовать цикл, в котором будешь добавлять строки по очереди.
Вот ещё. Зачем обрабатывать щелчок на самом тулбаре, если проще обрабатывать щелчок на кнопке, которая на тулбаре?
domo (2007-06-04 15:59:00) [75]1. Попробовал и дожен сказать =BuckLr= еще раз спасибо - твой совет точно в десятку:
после применения этого совета компонент установился. Может это и еще кому-то поможет.
Но кто оставил такой "камень преткновения" и почему ошибку не исправили? Хотя если судить по стилю некоторых,
то и неудивительно: горстка желания исправлять неточности, ошибки и помогать тем кто просит помощи
и гора желания "ржать" и "просто фигеть".
2. Здесь кто-то подскажет? У меня не получается. Текст из файла есть только в Memo1,
а в ListBox1 пусто. Кроме того нет гориз.лифта в ListBox1. А в Memo1 текст есть, но не
правится, хотя атрибута "только чтение" я не ставил. И в панель статуса StatusText[2] не
хочет ничего писать, почему? Конечно, для кого-то это очень просто, так я у них и спрашиваю -
вам просто, подскажите другим.
Делаю так:
type
ListBox1: TKOLListBox;
OpenSaveDialog1: TKOLOpenSaveDialog;
Toolbar1: TKOLToolbar;
Memo1: TKOLMemo;
var
NicDicFile, ExtRus: KOLString;
implementation
procedure TForm1.ProgStartHere(Sender: PObj);{Старт обработки}
var
s: string;
begin
Form1.Form.StatusText[0]:='Строка статуса создана ';
end;
procedure TForm1.ToolbarClicked(Sender: PObj);
var
s: string;
sList: pStrList;
DicList: TStrList;
List: TAList;
begin//ToolbarClicked
if Toolbar1.RightClick then begin{3} beep (150, 100) end{3}
else begin{4}
case Toolbar1.CurIndex of
0: begin{c5}
if OpenSaveDialog1.Execute then
begin
NicDicFile:=OpenSaveDialog1.Filename;
sList:= NewStrList;
if sList.LoadFromFile(NicDicFile) then begin{if1}
Memo1.Text:= SList.Text;
ListBox1.Text:= SList.Text;
end{if1};
SList.Free;
s:=Int2Str(ListBox1.Count);
Form1.Form.StatusText[2]:=^s;
end else beep (150, 100);
end{c5};
1: beep (2000, 10);
2: beep (3000, 10) ;
16: Form.Close;
end{case Toolbar1.CurIndex};
end{4};
end;//ToolbarClicked
4. А здесь что, других уроков кроме тех 13, что были на сайте по КОЛ пару лет назад, нет?
domo (2007-06-01 17:44:00) [76]Спасибо за советы, пойду пробовать
=BuckLr= (2007-06-01 16:02:00) [77]
> какие-то Directories
Тока не в пакет! В делфи саму
=BuckLr= (2007-06-01 15:55:00) [78]
> не устанавливается, останавливаясь на строке
> Result.SetOnLVData(Result.NewOnLVData);
А там на 83 строчке в procedure NewOnLVData надо KOLString заменить на KOL_String...
> Может еще что-то подскажете? Хотелось бы сегодня установить.
> Делал так:
Не надо так :) Просто сделай как я написал
> А может надо было еще перед "Построить" какие-то Directories/Conditionals
> вручную прописать?
Конечно надо. Как по-твоему, Делфи сама будет искать твои компоненты? Она же не знает, где у тебя что
Ну такие вот мои ламерские советы...
domo (2007-06-01 14:55:00) [79]Я бы и рад, но само по себе, к сожалению, это не имеет смысла, т.к. я сейчас работаю именно в КОЛ (чистый КОЛ работает). Мне нужно установить несколько доп. компонентов. Не компоненты для чистого д5, а компоненты КОЛ под Д5. BAPFileBrowser и неск. других. Так что если можете - подскажите.
mdw (2007-06-01 12:58:00) [80]
> Или все-таки сносить КОЛ?
Да именно снести KOL и для начала поработать просто на делфи.