![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
Помогите, кто может! У меня есть несколько вопросов:
1) На форме есть компонент StringGrid. Его свойство Options.goRowCount установлено в True. Как мне узнать в любой момент времени, сколько именно и какие строки выделены? Вообще, есть ли какое-нибудь свойство у StringGrid'а, которое отвечает за выделение ячеек или целых строк? 2) Еще вопрос по StringGrid'у. Как сделать так, чтобы вывести на печать содержимое StringGrid'a в виде таблицы? 3) Как вывести на печать содержимое формы без заголовка, т.е. только то, что лежит внутри окна формы? 4) Вопрос не в тему, но все-таки вопрос: какая из сортировок массивов эффективнее всего сортирует массивы длинной где-то 500-1500 элементов. Очень надо сортировать, но простыми сортировками получается очень медленно! Заранее всем спасибо! Буду рад, если получу исчерпывающие ответы на свои вопросы! -------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| Serggggg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 12.12.2003 Где: Донецк, Украина Репутация: нет Всего: нет |
(2). Я так решаю проблему с DBGrid'ом - Через EXCEL! Поднять ядро Excel, создать/открыть документ (готовый шаблон ведомости, например).
А потом 2 цикла - по кол-ву строк и по кол-ву столбцов - выводят в нужные ячейки ячейки Grid'а - Excel.Cells.Item[i,j].Value:=... --------------------
C уважением, Serggggg. |
|||
|
||||
| Serggggg |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 12.12.2003 Где: Донецк, Украина Репутация: нет Всего: нет |
(4). В принципе, нас ещё со времен 1-го курса учили сортировать так (по-крайней мере, преподы утверждали, что это лучший способ):
Т.е. признак того, была ли произведена в ходе проверки хотя бы одна перестановка элементов (в данном примере - j). Когда в последний раз массив будет просмотрен и будет обнаружено, что он упорядочен, то j будет равняться 0 - задача решена. Добавлено @ 10:11 Прошу прощения - в строке
слово BEGIN нужно убрать или перед строкой
вставить ещё 1 end; --------------------
C уважением, Serggggg. |
||||||
|
|||||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Уважайте правила форума!!! Один топик - один вопрос!
№3: Это как? |
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
1) Помогите именно со StringGrid'ом, так как проблема именно в нем. Не надо сюда Excel приплетать.
2) За правила форума простите, я обязательно исправлюсь! 3) Про печать StringGrid'а обязательно подскажите, я же знаю, что здесь полно умных людей. 4) Сортировку "пузырьком" (а именно такая и была предложена) не предлагать. Это все лажа. Есть более эффективные сортировки. Ок? По поводу третьего вопроса: есть форма. Там кнопки, все такое прочее. Так вот как это все такое прочее и кнопки вывести, но только так, чтобы не было видно, что вывелось целое окно? Доходчиво? -------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| Serggggg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 12.12.2003 Где: Донецк, Украина Репутация: нет Всего: нет |
Пожалуйста.
Ищи более эффективные методы. Только грубить не надо - я всего лишь предложил свой вариант. Я же не ручался за то, что это самое рациональное решение. --------------------
C уважением, Serggggg. |
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
По сортировке:
// сортировка массива целых чисел с вабором минимального элемента procedure MinSortInt( var M : array of integer ); var i, j, n, Imin, Rtmp: integer; begin N:=High(M); for i:=0 to N-1 do begin Imin:=N; for j:=n-1 downto i do if (M[j] <= M[Imin]) then Imin:=j; if (i<Imin) then begin // Перестановка элементов Rtmp:=M[Imin]; M[Imin]:=M[i]; M[i]:=Rtmp; end; end; end; Немного усовершенствованная пузырьковая сортировка. Совершенствование заключается в том, что в пузырьковой сортировке количество сравнений n*(n-1)/2 количество перестановок n*(n-1)/2 в предложенной количество сравнений n*(n-1)/2 количество перестановок n-1 недостаток метода: Если массив отсортирован, то все равно будут сделаны все сравнения, а метод пузырьковой сорировки ограничится n-1 сравнением -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
Парни, никто не кому не грубил!!! А про быструю сортировку никто не слышал что ли?
Про StringGrid подскажитете, как там с выделением быть! Очень надо. И как содержимое StringGrid'а распечатать? Это самое главное!!! -------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
MacTep, руками его печатать, как ещё... через TPrinter.Canvas. говоришь ему BeginDoc, рисуешь в цикле построчно, говоришь EndDoc.
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
активную ячейку можно получить:
StringGrid1.Selection.Left - столбец StringGrid1.Selection.Top - строка -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
... а всё выделение, соответственно, через Selection.Right / Selection.Bottom
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
совершенно точно, забыл что нужно получить несколько выделенных ячеек, поэтому не указал -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
x77, можно поподробнее с Canvas. Я с этим делом мало работал (почти не работал совсем), поэтому плохо пока в этом разбираюсь. Можно что-то типа исходного текста.
Про Selection тоже чуть подробнее. Ведь это всего лишь свойство, а как посмотреть, выставлено оно или нет? Про форму: если я напишу Form1.Print, то что я получу на бумаге? Ответьте, пожалуйста. -------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| U |
|
|||
|
Unregistered |
|
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
Благодарю автора предыдущего сообщения. А никто так и не ответил на вопрос: что будет если вызвать такую команду Form1.Print?
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |