Вопрос № 39541: Здравствуйте, уважаемые эксперты!
В своем проекте я хочу использовать QuickReports. Скажите, пожалуйста, будет ли моя программа печатать отчеты на другом комп-ре, где не установлен Delphi? Заранее спасибо!...Вопрос № 39572: Подскажите компоненты для делфи 6 и 2006 для работы с Events в NT и вообше для работы с системой на НТ...Вопрос № 39573: Есть две формы, названия которых “Client” и “Server”. На форме “Client” лежит компонент TClientsocket с закладки
Internet. На форме “ Server ” лежит компонент T Serversocket. Каждая из форм содержит две кнопки: ‘Соединиться’ и ‘Отправить’. Обработка ...Вопрос № 39575: Вопрос
Делаю программу в которой нужно вывести некоторый текст помощи.
Как (и куда) записать текст?
Не используя дополнительные окна и формы (по простому).
Пример.
Надо чтобы текст Помощи (заранее описанный где либо, наприме...Вопрос № 39601: Графический вопрос.
Кто знает формулу рисование звезды?
Короче, надо нарисовать N-конечную звезду.
Давно ищу эту формулу или способ....
Вопрос № 39.541
Здравствуйте, уважаемые эксперты!
В своем проекте я хочу использовать QuickReports. Скажите, пожалуйста, будет ли моя программа печатать отчеты на другом комп-ре, где не установлен Delphi? Заранее спасибо!
Отвечает: Jadd
Здравствуйте, Андрющенко Вячеслав Васильевич!
Будет. Репорты станут частью исполняемого файла.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал) Адрес: Санкт-Петербург WWW:http://www.sport-diary.ru ICQ: 28260749 ---- Ответ отправлен: 06.04.2006, 13:35
Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Андрющенко Вячеслав Васильевич!
Будет, если будете компилировать без использования пакетов, или при их импользовании будете в дополнение к приложению и остальным пакетам распространяить еще и qrpt*.bpl
Отвечает: Николай Б.
Здравствуйте, Negruzzi Cristian!
А какие "Events" Вы имеете ввиду? Если события от системы - то, проще проще всего писать обработчик
самому, иначе, добавив очередной компонент, Вы увеличите размер программы. &
#1045;сли я не ошибаюсь, таких компонентов нет.
Удачи!
Ответ отправил: Николай Б. (статус: 3-ий класс)
Ответ отправлен: 06.04.2006, 19:27 Оценка за ответ: 3
Вопрос № 39.573
Есть две формы, названия которых “Client” и “Server”. На форме “Client” лежит компонент TClientsocket с закладки Internet. На форме “ Server ” лежит компонент T Serversocket. Каждая из форм содержит две кнопки: ‘Соединиться’ и ‘Отправить’. Обработка кнопки ‘Соединиться’ обеспечивает соединение Сервера и Клиента.
Как сделать так чтобы при нажатии кнопки “Соединиться” на форме «Сервер» он соединился бы с формой Client, на которой лежит TClientsocket и можно было бы передавать строки текста в Tedit, который расположен на форме Client, при нажатии на форме «Сервер» кнопки «Отправить», и обратно, чтобы Клиент мог соединиться с сервером и ответить на сообщение?
Отправлен: 06.04.2006, 19:27
Вопрос задал: Rewer8 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Артём Шегеда
Здравствуйте, Rewer8!
Ты на поверишь, но эта задача не у одного тебя в голове появлялась ;)
http://www.shegeda.chat.ru/InternetServer.zip - исходники сервера и клиента
Ответ отправил: Артём Шегеда (статус: 5-ый класс)
Ответ отправлен: 06.04.2006, 20:03 Оценка за ответ: 5
Вопрос № 39.575
Вопрос
Делаю программу в которой нужно вывести некоторый текст помощи.
Как (и куда) записать текст?
Не используя дополнительные окна и формы (по простому).
Пример.
Надо чтобы текст Помощи (заранее описанный где либо, например, в const T='...') выводился к примеру, в TForm1.Label1.Caption:=Т;
Но этот текст имеет большую длину > 255 символов (или немного меньше).
Как вoобще создавать такие сообщения и где их хранить?
Желательно не создавать дополнительные файлы на диске (в TXT формате или ещё как-то).
Лучше всего в программном "теле" самой EXE-программе.
Я хотел было сделать по простому, записать его как
const Text1 = 'Текст1 ...';
Text2 = 'Текст2 ...';
Но у меня не получилось. Компилятор выдал ошибку типа: 'Unterminated строка' (Delphi 7.0 Rus Version)
Я пробовал записать и в самой процедуре в программе - не вышло.
Например, процедура
procedure HelpProg(O:TObject); // Помощь по программе
выводит панель Label в которой должен быть напечатан этот текст (он большой).
Массив что ли создавать надо? Или как?
P.S. Я программер-любитель (ламер), люблю программировать (Pascal - любимый язык).
Поэтому, пожалуйста, по простому объясните мне.
Я даже окна дополнительные не умею создавать.
Программы мои работают в одном окне + окно с небольшой подсказкой типа MessageDlg(...) и всё.
Например, если нужно, я делаю Неактивными те элементы, которые в данном случае не нужны и активирую другие
и наоборот.
Заранее всем... ещё раз...
Алекс
Отправлен: 06.04.2006, 19:36
Вопрос задал: AlexD (статус: Посетитель)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Cheater76
Здравствуйте, AlexD!
Можно выкрутиться и так
T='строка1'+#13+'строка2'+#13+'строка3'+#13+'строка4'+#13+'строка5'';
Ответ отправил: Cheater76 (статус: 3-ий класс)
Ответ отправлен: 06.04.2006, 20:08
Отвечает: Tamashev Denis M
Здравствуйте, AlexD!
Ну можно в окошке выкинуть !
Например ничего сложного: MessageDlg(Сообщение, Тип, Кнопки, КонтекстСправки);
Допустим: MessageDlg(T,mtInformation,[mbOk],0);
Либо в файла !
И можно вывести в Memo:
Memo1.Lines.LoadFromFile('Help.txt');
Help.txt должен лежать где и файл .exe твоего проекта !
Ну способов много но я советую использовать MessageDlg(T,mtInformation,[mbOk],0);
Правдо окошко нехилое откроеца !
Ну сам смотри !
Удачи !!!
Ответ отправил: Tamashev Denis M (статус: 2-ой класс)
Ответ отправлен: 06.04.2006, 20:33
Отвечает: Ерёмин Андрей
Hello, AlexD!
Можно сделать следующим образом: для всех нужных компонент пропишите в свойстве Hint нужные подсказки и поставьте для всех ShowHint = True. Затем поместите на форму TStatusBar (страница Win32) и установите для неё AutoHint = True. Теперь все подсказки будут дублироваться в строке состояния. Если же нужно выводить подскази в другом месте - то нужно обрабатывать событие Application.OnHint() - в этот момент в переменной Application.Hint будет подсказка для компонента, на который наведён курсор. Обрабатывать это
событие проще специализированными компонентам - например TJvApplicationEvents из знаменитого JediVCL. Или же стандартным TApplicationEvents (со страницы Additional) - там тоже есть такое событие. Удачи!
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
> Но этот текст имеет большую длину > 255 символов (или немного меньше).
Разве это большая длина? :) Для Паскаля это было бы уже проблемой, а для Delphi - нормально.
К делу... Строки (если они не разбиваются на абзацы) лучше хранить в ресурсах. Для этого создаём файл типа RC с любым именем, например, STRINGS.RC, и пишем в него единственную строку:
HELP STRINGS STRINGS.TXT
После чего этот RC-файл добавляем в проект. Предполагается, что в файле STRINGS.TXT находятся строки справочной инфолрмации. Теперь при запуске вызываем функцию LoadStrings (см. приложение) - и результат присваиваем какой-нибудь переменной типа TStringList.
PS. По-моему, скрывать/отображать контролы на форме по мере необходимости не есть хорошо. Для этих целей лучше пользоваться TPageControl, отображая нужные страницы
Приложение:
Ответ отправил: Артём Шегеда (статус: 5-ый класс)
Ответ отправлен: 06.04.2006, 21:37
Отвечает: sir henry
Здравствуйте, AlexD!
Есть у Дельфи такая неприятная особенность, если в строке написаной от руки больше чем 255 букв, то он ее отказывается считать за строку, потому что привык видимо к длине 255. :) Хотя и должен без проблем работать со строками до 2Гиг длиной.
Если у Вас получилась очень длинная строка, то разбейте ее на несколько покороче:
Const
c1 = 'Текст1 до 255 символов';
c2 = 'Текст2 до 255 символов';
c3 = 'Текст3 до 255 символов';
c4 = 'Текст4 до 255 символов';
p = #13#10;
А потом просто сложите.
Для справок как Вы описали, хорошо подходит функция ShowMessage. Сделайте на форме кнопку, обзовите ее "Помощь", а в событии OnClick кнопки напишите:
ShowMessage(c1+p+c2+p+c3+p+c4);
В результате у Вас появится симпотичное окошко с кнопкой ОК и длинной строкой, разбитой на несколько строк. Константа Р - это как раз символы перехода на новую строку, иначе, если ее не добавить, у Вас все будет в одну строку.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 07.04.2006, 06:59
Вопрос № 39.601
Графический вопрос.
Кто знает формулу рисование звезды?
Короче, надо нарисовать N-конечную звезду.
Давно ищу эту формулу или способ.
Отправлен: 07.04.2006, 01:30
Вопрос задал: AlexD (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: sir henry
Здравствуйте, AlexD!
В Дельфи есть функция Polygon, которая рисует линии по заданному массиву координат типа TPoint.
Canvas.Polygon(Points: array of TPoint);
Вот например:
procedure TForm1.FormActivate(Sender: TObject);
begin
Canvas.Brush.Color := clTeal;
Canvas.Polygon([Point(10, 10), Point(30, 10),
Point(130, 30), Point(240, 120)]);
end;
Здесь данные введены непосредственно в функцию и приводятся к виду TPoint, что не всегда удобно. Лучше сформировать массив заранее, а потом указать его в качестве аргумента.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 07.04.2006, 07:14