Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi

Автор: VC7
Дата сообщения: 21.12.2005 07:23
LordMAD


Цитата:
Делаешь то, что делает TADOTable.Locate, только сам:


Сам то не вопрос (накрайняк я бы и перебором сделал), вопрос в том можно ли стандартною процедуру Locate выполнят поиск с определенной записи!
Автор: LordMAD
Дата сообщения: 21.12.2005 07:49
VC7

Цитата:
Сам то не вопрос (накрайняк я бы и перебором сделал), вопрос в том можно ли стандартною процедуру Locate выполнят поиск с определенной записи!

Она для этого не предназначена !
Автор: VC7
Дата сообщения: 21.12.2005 07:58
LordMAD

Цитата:
Она для этого не предназначена !

А для чего же она тогда?
Автор: LordMAD
Дата сообщения: 21.12.2005 11:14
VC7
Чтобы найти запись, точка. А тебе нужен больший функционал - напиши руками - 5 минут от силы займет и не морочь людям голову.
Автор: stnazd
Дата сообщения: 21.12.2005 14:42
Господа! Как настроить HELP в Delphi 2006? Например как было в Delphi 7 (Meню Help->Customize...), чтобы добавить help от других компонентов и чтобы он включался в контекстный поиск?
Автор: goodron
Дата сообщения: 22.12.2005 13:06
Нужно написать приложение, которое умеет:
- отображать на фоне растровое изображение из файла
- распологать на этом фоне графические элементы из библиотеки графических элементов (просто картинки маленькие) + текст
- удалять графические элементы с фона- пополнять библиотеку графических элементов
- масштабировать фон вместе с графическими элементами + навигация с полосами прокрутки

ЗЫ: Все это надо написать оч. быстро, а я с графикой ваще раньше не работал, так что ценны будут любые советы. А еще лучше было бы подсказать уже готовые компоненты, если есть. Или может есть готовое решение?ЗЫЫ: Кажется с последним use case будет самая заморочка...
Автор: SergeBS
Дата сообщения: 22.12.2005 16:42
goodron
Сходи на torry - под задачу подберешь.
Автор: MrZeRo
Дата сообщения: 22.12.2005 17:13

Цитата:
отображать на фоне растровое изображение из файла

TImage использовать

Цитата:
распологать на этом фоне графические элементы из библиотеки графических элементов (просто картинки маленькие) + текст

Те же TImage, TLabel.

Цитата:
удалять графические элементы с фона- пополнять библиотеку графических элементов

Отслеживать OnClick на TImage для интерактивного удаления, или как-то по-другому, может, по номерам.

Цитата:
масштабировать фон вместе с графическими элементами

Установить у компонентов TImage свойство Stretch=True и менять Width, Height пропорционально коэффициенту масштабирования, полосы прокрутки появятся на форме сами, если размеры элементов будут выходить за ее пределы.
Автор: ShIvADeSt
Дата сообщения: 23.12.2005 01:14
MrZeRo

Цитата:
отображать на фоне растровое изображение из файла     

TImage использовать

Цитата:
распологать на этом фоне графические элементы из библиотеки графических элементов (просто картинки маленькие) + текст     

Те же TImage, TLabel.

Не самый удачный вариант, в случае более 5 картинок замучаешься работать, мое предложение хранить картинки в ресурсе и юзать отрисовку картинок на канве формы, ручками делать им ресайз (хотя вот фон можно сделать как имидж, но тогда надо будет разобраться, как рисовать на нем). Вот пример рисования на канве.

Цитата:

>Как поместить рисунок, который бы являлся бэкграундом для данной формы. (Hе
>растягивался, а именно заполнял всю форму)

В обработчике OnPaint у формы напиши:
x:=0;
while x<=width do
begin
y:=0;
while y<=height do
begin
Canvas.Draw(x,y,MyBitmap);
inc(y,MyBitmap.height)
end;
inc(x,MyBitmap.width)
end;

Автор: Barakuda7
Дата сообщения: 23.12.2005 06:19
LordMAD
Привет!!!
Опять нужна твоя помощь.
Весь текст, который нужен не копируется.
Проблема с той функцией, если я правильно понял, то буфер обмена имеет ограниченный размер. Я начал капаться и раскапал TMemoBuf, а вставить в функцию не получается. Помоги.
Заранее спасибо
Автор: LordMAD
Дата сообщения: 23.12.2005 07:05
Barakuda7
Подробно напиши о чем речь - так ничего не понятно. При чем тут буфер обмена?
Автор: Barakuda7
Дата сообщения: 23.12.2005 10:53
Структура функции Read (var Buffer; Count: Integer).
Если я правильно понял, то при чтении из файла функцией Read от TFileStream, он прочитанное из файла помещает в буфер обмена, а у буфера обмена есть максимальный размер. И при чтении из нужного мне файла в буфере обмена все не помещается, следовательно нужная мне информация выводится туда куда я хочу не полностью, а только то, что уместилось в буфере обмена.
Покапавшись, я нашел TMemoBuf, можешь подсказать как при чтении с помощью функции Read от TFileStream из файла сделать так, чтобы функция помещала прочитанное не в буфер обмена Windows, а в буфер TMemoBuf.
TMemoBuf можно задавать максимальный размер.
Автор: LordMAD
Дата сообщения: 23.12.2005 11:26
Barakuda7
Бефер обмена тут не причем - он просто в этой программе НЕ ИСПОЛЬЗУЕТСЯ. Read читает данные строку W и никуда больше. Данная программа написана так, что максимальный размер файла, с котроым она может работать - 2 Gb. Опиши на каком размере файла читается не все.
Автор: MrZeRo
Дата сообщения: 23.12.2005 12:46
ShIvADeSt

Цитата:
>Как поместить рисунок, который бы являлся бэкграундом для данной формы. (Hе
>растягивался, а именно заполнял всю форму)

Я так понял, что нужно что-то вроде карты и элементов на карте, то есть фон - не для красоты, а для навигации по нему и чтобы можно было масштабировать.

Но вообще, мало информации по задаче.
Автор: Barakuda7
Дата сообщения: 23.12.2005 14:18
LordMAD
Дело в том, что я открывал этот файл блокнотом, выделял все и копировал, затем я создавал новый файл и вставлял в него то, что скопировал.
Он вставил тоже самое, что прочитала программа.
Тот же самый отрывок текста.
Потом я сохранил созданный документ и его размер составил 324 986 байт, а файл с которым я работаю весит 5 968 118.
Что скажешь?
Автор: LordMAD
Дата сообщения: 23.12.2005 14:41
Barakuda7

Цитата:
Дело в том, что я открывал этот файл блокнотом, выделял все и копировал, затем я создавал новый файл и вставлял в него то, что скопировал.
Он вставил тоже самое, что прочитала программа.
Тот же самый отрывок текста.
Потом я сохранил созданный документ и его размер составил 324 986 байт, а файл с которым я работаю весит 5 968 118.
Что скажешь?

Скорее всего, просле 324 986 байт, идет символ с кодом 0, что означает конец строки.
Это легко проверить: в коде где у меня стоит ShowMessage(S) - т.е. в самом конце поставь

Код:
ShowMessage(Format('Считано: %d'#13#10'Длина строки: %d', [Length(S), StrLen(PChar(S))]));
Автор: Barakuda7
Дата сообщения: 23.12.2005 15:31
LordMAD
Так и есть, что с этим можно сделать?
Автор: LordMAD
Дата сообщения: 23.12.2005 20:27
Barakuda7
Ну, этот символ там наверное не случайно. Что ты хочешь получить? Просто пропустить этот символ или заменить, скажем, на пробел? Цель то задачи какая?
Автор: Barakuda7
Дата сообщения: 24.12.2005 21:35
LordMAD
Если не трудно опиши пожалуйста обе функции и пропуском и с пробелом.
Цель - полное считывание текста.
Автор: LordMAD
Дата сообщения: 25.12.2005 18:26
Barakuda7
1. Пропуск. Ищешь в строке символ с кодом 0 (#0) и перемещаешь часть памяти после этого символа (до следующего #0) на один сивол назад. Потом, естественно, кооректируешь размер выделенной памяти при помощи SetLength.
2. Замена. Ищешь в строке символ #0 и заменяешь его на ' ' (пробел):

Код:
var
P: PChar;
I: Integer;
...
P := PChar(S);
I := Length(S);
while I > 0 do
begin
if P^ = #0 then P^ := ' ';
Inc(P);
Dec(I);
end;
Автор: LordMAD
Дата сообщения: 26.12.2005 11:49
Никто еще не делал русские ресурсы для Delphi 2006 (русские строковые ресурсы и экранные формы VCL)? В варианте от Polaris все закончилось на Delphi 7, а тут понадобилось срочно, а самому некогда. Может кто уже делал?
Автор: DenSer
Дата сообщения: 28.12.2005 16:01
народ, а обработка какого события происходит при нажатии на кнопку закрытия окна (крестик)?
Автор: Z MeZe
Дата сообщения: 28.12.2005 17:28
DenSer

Цитата:
народ, а обработка какого события происходит при нажатии на кнопку закрытия окна (крестик)?

OnCloseQuery
Автор: vserd
Дата сообщения: 29.12.2005 12:58
DenSer

Цитата:
обработка какого события происходит при нажатии на кнопку закрытия окна

WM_CLOSEQUERY, WM_CLOSE. Но если говорить в терминах компонент, тогда OnCloseQuery, OnClose.
Автор: DenSer
Дата сообщения: 29.12.2005 13:06
vserd
тогда в чем отличие события OnCloseQuery от OnClose?
Автор: LordMAD
Дата сообщения: 29.12.2005 13:24
DenSer
Справку или книжки читать не пробовал?
OnCloseQuery - запрашивает возможность закрытия у приложения
OnClose - информирует о закрытии и уточняет как это сделать.
Автор: DenSer
Дата сообщения: 29.12.2005 13:38
спасибо за ответы!
LordMAD не ругайся, я исправлюсь
Автор: Pinocchio
Дата сообщения: 29.12.2005 14:17
LordMAD

Цитата:
Никто еще не делал русские ресурсы для Delphi 2006 (русские строковые ресурсы и экранные формы VCL)?

Ждём, ещё не видели. Они от D2005 отличаются форматом (в смысле res:32;resx:dot)? Или речь идёт о контенте?

Добавлено:
Всем счастливого Нового Года!
Автор: vunder
Дата сообщения: 29.12.2005 14:38
Как из приложения выпонить DOS-команду и прочитать ее результат. Нашел пример запуска приложения и чтение результата его выполнения, но отдельные команды не выполняются. Возвращаеться всегда результат приглашения командной строки.
Автор: Pinocchio
Дата сообщения: 29.12.2005 15:13
а кто-нибудь вкурсе, как кодить/декодить русский язык из файлов InfоРаth форм?
Сам xml объявлен с кодировкой utf-8 а пробелы и прочие русские сымволы кодируются, так что даже фар в затруднении.

vunder
DOS команды в конце могут содержать ">имя_файла", это значит что консольный вывод будет направлен в файл. А результат приглашения, полагаю, просто остался в переменной которую ты использовал для запуска.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Вероятность одинакового CRC32


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.