Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C++ Builder / Delphi

Выпуск № 164
от 16.05.2003, 20:50

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 646
Отправлено ответов: 1093
Активность: 169.1 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

baldr
Статус: Профессиональный
Общий рейтинг: 112.49
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
BOLT
Статус: Доверительный
Общий рейтинг: 165
[Подробней >>]
Stein
Статус: Опытный
Общий рейтинг: 164.76
[Подробней >>]
 
Илья
Статус: Опытный
Общий рейтинг: 103.77
[Подробней >>]
Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 116.62
URL: Пристанище неодинокого программиста
[Подробней >>]
Lynx
Статус: Опытный
Общий рейтинг: 139.41
[Подробней >>]
 
Pin
Статус: Доверительный
Общий рейтинг: 126.63
[Подробней >>]
Дима Мусиенко
Статус: Доверительный
Общий рейтинг: 111.49
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 639. Здраствуйте уважаемые товарищи эксперты! Вопрос не совсем по теме: подскажите serial number и key по... (ответов: 1)
Вопрос № 640. Здравствуйте, уважаемые эксперты. 1) Что-то у меня какая-то не понятная проблема с QuickReportом. Чт... (ответов: 3)
Вопрос № 641. Здравствуйте, уважаемые эксперты. Если кто-нибудь пробовал сортировать по убыванию базы данных, то п... (ответов: 3)
Вопрос № 642. Здравствуйте, уважаемые эксперты. 1) Как сделать чтобы в Memo можно было изменять размер и стиль то... (ответов: 7)
Вопрос № 643. SATAN AKA NAPALM. Нашёл про сортировку! Дай мыло мне!... (ответов: 1)

Вопросов: 5, ответов: 15


 Вопрос № 639

Здраствуйте уважаемые товарищи эксперты!
Вопрос не совсем по теме:
подскажите serial number и key по delphi 6!!!
А то я диск потерял а дистрибутив на диске остался.



Вопрос отправлен: 12.05.2003, 13:37
Отправитель: komrad

[Следующий вопрос >>] [Список вопросов]

Отвечает baldr

Здравствуйте, komrad!
http://cracks.am/main.html
Ищи там по "Delphi 6".

Ответ отправлен: 12.05.2003, 19:07
Отправитель: baldr


 Вопрос № 640

Здравствуйте, уважаемые эксперты.
1) Что-то у меня какая-то не понятная проблема с
QuickReportом. Что-бы я не делал с набором данных
Table, например, фильтрацию в отчете всегда
отображается все записи. Такое ощущение что
он не реагирует на все изменения набора, хотя сортировка
отображается нормально. Может кто встречался с данной
проблемой помогите ПОЖАЛУЙТА, очень надо...
2) У меня не получается сделать текстовую печать из Memo.
Постоянно выдается ошибка на AssignPrn. У меня куча
примеров на эту тему и все не работают. Может она не
работает потому что у меня на компе не установлен
принтер ? Тогда как быть в такой ситуации ?
3) В событие FormKeyUp я пишу код:
If (Shift=[ssCtrl]) AND (key=ord('A'))
Then mnuSelectAll.Click;
Т.е. при нажатии комбинации клавиш Ctrl+A выделить
весь текст в Memo (команда выделения находиться в пункте
меню mnuSelectAll). Но выделение происходит через раз и
приходиться нажимать несколько раз :(. Почему такое
происходит ???

Заранее огромное спасибо.



Вопрос отправлен: 13.05.2003, 15:28
Отправитель: SATAN aka NAPALM

[Следующий вопрос >>] [Список вопросов]

Отвечает BOLT

Добрый день, SATAN aka NAPALM!
1)не могу помочь :-(
2)Скорее всего придется использывать имулятор принтера(хотя таких еще не встречал) или писать в слепую - так к примеру делал один мой знакомый и написал, но это, извени меня, мастер своего дела.Напиши свой обработчик ошибки отсутствия принетера - надеюсь ты сможешь это сделать.
3)Это проблема решается просто:
создай метод "FormCreate" и напиши там код:
KeyPreview := true;
если не понял то см. в приложение.
Счастливо, друг!

Приложение:

Ответ отправлен: 14.05.2003, 21:02
Отправитель: BOLT


Отвечает Stein

Доброе время суток, SATAN aka NAPALM!
2. А как быть? Где ты напечатаешь-то?
3. Потому что Windows по умолчанию выбеляет текст в Memo: зачем тебе писать вообще этот обработчик где-то не в меню или не во всплывающем меню?

Ответ отправлен: 13.05.2003, 17:17
Отправитель: Stein


Отвечает Илья

Приветствую Вас, SATAN aka NAPALM!
2) А какие проблемы установить принтер? А еще лучше - какую-нибудь заглушку, которая умеет печатать в файл (например Acrobat Distiller - "печатает" в .pdf файл). Если в файл печать идет правильно - правильно пойдет и на принтер, плюс экономия тонерачернил и бумаги.
3) а) зачем использовать пункт меню? компонент Memo имеет метод SelectAll, его и используй. б) Причина, почему не срабатывает в первый раз скорее всего в том, что фокус стоит не на форме, а на каком-либо контроле. Выход - для всех контролов поставить событие KeyUp на такое же событие формы, или более тривиальный - для формы поставить свойство KeyPreview в значение true, тогда форма будет получать все нажатые клавиши своих контролов, причем делать это до них.


Ответ отправлен: 13.05.2003, 17:57
Отправитель: Илья


 Вопрос № 641

Здравствуйте, уважаемые эксперты. Если кто-нибудь
пробовал сортировать по убыванию базы данных, то
подскажите пожалуйста мне как это работает. В моей
книге пример вообще не работает (я его уже два раза
Вам присылал), а то что накачал из Инета, то это все
не то или про убывание вообще не упоминается. Я работаю
с Delphi 6, Paradox 7, TTable. По возможности не
советуйте SQL я его еще пока не изучал. Помогите
пожалуйста ОЧЕНЬ нужно...
2) А каким образом можно отсортировать базу по полю
логического типа. В DataBase Desktop по умолчанию
индекс для такого поля создать нельзя. Если написать
команду Table1.IndexFieldNames:='Имя_логического_поля',
то выдается ошибка, что нет индексов для этого поля
(я так понял из сообщения ошибки). А в программе с меня
требуют сделать сортировку по этому полю. Так что
будьте добры ткните носом меня :).
3) Я в своей программе при нажатии кнопки SpeedButton на
панели инструментов сделал появление контекстного меню
командой PopupMenu1.Popup(242,73). Но если изменить
положение или размер формы, это меню так же появляется
по заданным координатам. Как мне сделать чтобы меню
появлялось всегда ровно под кнопкой. Я пробовал вместо
этих координат подставлять различные выражения вида
Left или Top плюс или минус какое-то значение, но у меня
пока ничего не выходит. Помогите мне это реализовать.
Заранее ОГРОМНОЕ СПАСИБО.



Вопрос отправлен: 13.05.2003, 15:28
Отправитель: SATAN aka NAPALM

[Следующий вопрос >>] [Список вопросов]

Отвечает Stein

Здравствуйте, SATAN aka NAPALM!
3. PopupMenu1.Popup(SpeedButton1.Left, SpeedButton1.Top+SpeedButton1.Height)
2. А что тебе мешает набрать в Яндексе "Учебник по SQL для Delphi"???? Хороший программист когда-нибудь да ДОЛЖЕН БУДЕТ ВЫУЧИТЬ язык запросов SQL, хотя бы по Delphi'йской справке!, так как работать с базами через Delphi - геморрой...
1. Самый тупой способ - отсортировать стандартно(по возрастанию) и переприсвоить поля по индексам(самому большому -самый маленький и т.д.)

Ответ отправлен: 13.05.2003, 17:35
Отправитель: Stein


Отвечает Илья

Приветствую Вас, SATAN aka NAPALM!
2) Делай сортировку "ручками". Там же все просто. Возьми прочитай 2 или 3(не помню уже :( ) том Кнут'а.
3) а) для того, что-бы меню раскрывалась по нажатию правой клавиши, достаточно добавить строчку ToolButton1->PopupMenu = PopupMenu1; б) для того, что-бы меню раскрывалась по нажатию левой клавиши, можно извращатся разными способами:
I) В обработчике мышиного нажатия на кнопку:
POINT p; // The POINT structure defines the x- and y- coordinates of a point.
GetCursorPos(&p); //Return mouse cursor position.
PopupMenu1->Popup(p.x, p.y); // Displays the pop-up menu onscreen.
II) В обработчике мышиного нажатия на кнопку:
PopupMenu1->Popup(Форма->Left + Форма->BorderWidth + Кнопка->Left + Кнопка->Width, Форма->Top + Форма->BorderWidth + Кнопка->Top + Кнопка->Height);
Возможно надо еще добавить высоту системного меню, если форма его имеет, а также все, что я мог забыть или не учесть.

Ответ отправлен: 13.05.2003, 17:57
Отправитель: Илья


Отвечает Артём Шегеда

Приветствую Вас, SATAN aka NAPALM!

2) К сожалению, никаким. Я в своей проге ушёл от типа Bool к типу Char[1]. Дёшево (индекс маленький получается) и сердито (работает быстро и без особой головной боли).
3) Дело в том, что Popup-menu выводится в координатах экрана. Чтобы получить их, воспользуйся методом ClientToScreen:

var
SomePoint : TPoint;
begin
SomePoint := SpeedButton1.ClientToScreen(10,10);
PopupMenu1.Popup(SomePoint.x, SomePoint.y)
end;


Ответ отправлен: 13.05.2003, 19:27
Отправитель: Артём Шегеда


 Вопрос № 642

Здравствуйте, уважаемые эксперты.
1) Как сделать чтобы в Memo можно было изменять
размер и стиль только выделенного шрифта. Я пробовал
делать Memo1.Seltext..., но у него больше нет свойств.
Поэтому при выборе нового нового стиля или размера
изменятся весь текст Memo :(. Подскажите как это сделать.
2) Как сделать чтобы при нажатии на пункт меню 'Закрыть'
либо закрывался открытый файл, либо выдавалось сообщение
на сохранение только что созданного файла. Команда
CloseFile(OpenDialog1.FileName) тоже не работает.
Или может кто знает принцип работы кнопки 'Новый' во
всех текстовых редакторах.
3) При вызове FontDialog изменения в Memo происходят
не сразу, а только при повторном его вызове.
Я уже пробовал события OnShow и OnClose, но все равно
ни чего не выходит. Что это за проблема ?
Заранее большое спасибо.



Вопрос отправлен: 13.05.2003, 15:29
Отправитель: SATAN aka NAPALM

[Следующий вопрос >>] [Список вопросов]

Отвечает baldr

Приветствую Вас, SATAN aka NAPALM!
1. В MEMO размер и параметры шрифта можно изменить только для всего текста. Для более серьезного форматирования используй RichEdit и т.п.
2. Что это за пункт меню такой? И где это меню?
3. Что-то ты не так делаешь... :-//

Ответ отправлен: 13.05.2003, 16:15
Отправитель: baldr


Отвечает Stein

Приветствую Вас, SATAN aka NAPALM!
2. В Delphi - Exemples есть пример RichEdit'a(очень толковый, как-то, заглядывая туда, я делал свою курсовую:))
3. А изменения, случайно происходят не с шагом шаг-1? Вообще-то надо делать Memo1.Lines.Update.
1. См. пункт 2.

Ответ отправлен: 13.05.2003, 17:36
Отправитель: Stein


Отвечает Lynx

Добрый день, SATAN aka NAPALM!
1. Memo для этого не приспособлен. Для таких целей надо использовать другие компоненты. Не знаю RichTextBox такое делает или нет.
2. Соманде CloseFile надо передавать хэндл открытого файла. Т.е. ту файловую переменную, с которой ты связал файл при открытии.


Ответ отправлен: 13.05.2003, 19:16
Отправитель: Lynx


Отвечает Артём Шегеда

Приветствую Вас, SATAN aka NAPALM!

2) "Во всех текстовых редакторах" используется MDI интерфейс (когда каждый документ имеет своё окно, принадлежащее основному). Обычно дочерние окна имеют обработчики событий OnCloseQuery и OnClose - почитай про них в справке.
3) Фигню какую-то ты говоришь. Этот код работает на все 100%!

procedure TForm1.Memo1DblClick(Sender: TObject);
begin
if FontDialog1.Execute then
Memo1.Font := FontDialog1.Font;
end;


Ответ отправлен: 13.05.2003, 19:39
Отправитель: Артём Шегеда


Отвечает Pin

Доброе время суток, SATAN aka NAPALM!
1) В Memo это сделать нельзя. Используй RichEdit
2,3) А OpenDialog1.Execute делал?

Ответ отправлен: 13.05.2003, 23:57
Отправитель: Pin


Отвечает Дима Мусиенко

Доброе время суток, SATAN aka NAPALM!
2) А в чём проблема? Да и без кода твоего мало толку.
Ну а если и правда не знаешь, то читай больше справку(и!). А принцип работы кнопки 'новый' и знать не надо. Важно что за обработчик у него. А в обработчике можно: создать файл (CreateFile), запомнить его хендл.
Ещё можно завести пару флагов, например: флаг-правки, т.е. он будет установлен, если после его(файла) сохранения были изменения и наоборот; и флаг-новый!неновый-ли файл.
А в ф-цию CloseFile передаётся не имя файла, а его хендл, как раз тот, который ты сохранил после: открытия(OpenGialog, OpenFile) или создания(CreateFile).
Ну и обрабатывать закрытие своего окна, проверять эти флаги и выполнять те или иные действия.
Я мог ошибся в именах ф-ций, просто отвыкаю от Delphi в сторону WinAPI.


Ответ отправлен: 14.05.2003, 09:54
Отправитель: Дима Мусиенко


Отвечает BOLT

Доброе время суток, SATAN aka NAPALM!
1)Этого нельзя сделать ни в TMemo, ни в TRichEdit;
2)Вопрос не понят;
3)Ты просто невнемателен(извени если ошибся):
if FontDialog1.Execute then \когда был вызван FontDialog
Memo1.Font := FontDialog1.Font; \присваиваем свойства шрифта
Надеюсь, теперь ты поймешь почему только при повторном вызове менялся шрифт.
P.S. ЭТО КАСАЕТСЯ ВСЕХ!
Прошу всех, кто задает вопросы, указывать на каком языке программирования(ObjectPascal и/или С++) писать примеры, т.к. этот раздел посвящен и Dephi, и C++Builder'у.

Ответ отправлен: 14.05.2003, 17:01
Отправитель: BOLT


 Вопрос № 643

SATAN AKA NAPALM. Нашёл про сортировку! Дай мыло мне!



Вопрос отправлен: 13.05.2003, 18:00
Отправитель: Stein (stein@fromru.com)

[Следующий вопрос >>] [Список вопросов]

Отвечает baldr

Доброе время суток, Stein!
А по-другому нельзя было ему сказать? Типа, когда рассылка выйдет, тогда он и узнает. Так и быть - отвечу, чтоб попало...

Ответ отправлен: 13.05.2003, 18:33
Отправитель: baldr



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (40)
C / C++ (30)
Perl (4)
Builder / Delphi (16)
Pascal (31)
Basic / VBA (12)
Java / JavaScript (11)
PHP (5)
MySQL / MSSQL (4)
Пользователю
Windows 95/98/Me (42)
Windows NT/2000/XP (30)
"Железо" (29)
Поиск информации (14)
Администратору
Windows NT/2000/XP (19)
Linux / Unix (10)
Юристу
Гражданское право (7)
Семейное право (4)
Трудовое право (5)
КоАП (4)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование


Яндекс цитирования
© 2003 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное