Здраствуйте уважаемые товарищи эксперты! Вопрос не совсем по теме: подскажите serial number и key по delphi 6!!! А то я диск потерял а дистрибутив на диске остался.
Здравствуйте, 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). Но выделение происходит через раз и приходиться нажимать несколько раз :(. Почему такое происходит ???
Добрый день, 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 плюс или минус какое-то значение, но у меня пока ничего не выходит. Помогите мне это реализовать. Заранее ОГРОМНОЕ СПАСИБО.
Здравствуйте, 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, но все равно ни чего не выходит. Что это за проблема ? Заранее большое спасибо.
Приветствую Вас, 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. Нашёл про сортировку! Дай мыло мне!
Доброе время суток, Stein! А по-другому нельзя было ему сказать? Типа, когда рассылка выйдет, тогда он и узнает. Так и быть - отвечу, чтоб попало... Ответ отправлен: 13.05.2003, 18:33 Отправитель: baldr
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.