Доброе время суток Не подскажите как В DELPHI 6 реализовать добавление в RichEdit Строки из DB с сочетанием жироного и обычного начертания в одной строке Например ОДИН (ДВА Жирным) (ТРИ Курсивом) ОДИН ДВА ТРИ
Доброе время суток, Vajruz! Вряд ли это получится в простом RichEdit. Слышал я о RxRichEdit много хорошего, но не использовал :)) Взять можно на http://www.torry.net/pages.php?id=499 Ответ отправлен: 19.05.2004, 18:49 Отправитель: Boriss Отвечает samum2000
Приветствую Вас, Vajruz! В примере я показал, как можно добавить строчку текста из edit'a в RichEdit жирным начертанием. Если его еще немножко изменить, то и строки из базы данных можно будет добавлять и не только жирным начертанием.
procedure TForm1.Button1Click(Sender: TObject); begin richedit1.SelText:=edit1.Text; richedit1.SelStart:=richedit1.SelStart-length(edit1.Text); richedit1.SelLength:=length(edit1.Text); richedit1.SelAttributes.Style:=[fsBold]; end; -------------------------- -=Experts helper: testmode=- Ответ отправлен: 20.05.2004, 18:05 Отправитель: samum2000
Вопрос № 1544
Покажите, где здесь ошибка? program n18; uses crt; type man = record year: integer; s: string; end; tman = array [1..65520 div sizeof(man)] of man; tcmp = function (a,b: pointer): integer; procedure qs(l,r: integer; A: pointer; f: tcmp; size: integer); type tarr = array [1..65520] of byte; var i,j,h: integer; x,y,d: pointer; begin getmem(x,size); getmem(y,size); i:=l; j:=r; for h:=1 to size do tarr(x^)[h]:=tarr(A^)[(l+r) div 2+h]; repeat d:=@tarr(a^)[i*size]; while (f(d,x)=1) do begin inc(i); d:=@tarr(a^)[i*size]; end; d:=@tarr(a^)[j*size]; while (f(x,d)=1) do begin dec(j);
d:=@tarr(a^)[j*size]; end; if (i<=j) then begin for h:=1 to size do tarr(y^)[h]:=tarr(A^)[i*size+h]; for h:=1 to size do tarr(a^)[i*size+h]:=tarr(a^)[j*size+h]; for h:=1 to size do tarr(a^)[j*size+h]:=tarr(y^)[h]; inc(i); dec(j); end; until i>j; if (l if (lend; procedure sort(A: pointer; n: integer; f: tcmp; size: integer); begin qs(0,n-1,a,f,size); end; function compare(a,b: pointer): integer; far; begin это вызывает ошибку, как сделать правильно if ((man(a^)).year < (man(b^)).year) then compare:=1 else compare:=0; end; var
a: ^tman; n,i: integer; begin read(n); getmem(A,N*sizeof(man)); for i:=1 to n do read(A^[i].year,A^[i].s); sort(A,N,compare,sizeof(man)); for i:=1 to n do writeln(A^[i].year,A^[i].s); end.
Добрый день, Стас! Да хотя бы здесь :)) Такого быть не может if (l if (lend; procedure sort(A: pointer; n: integer; f: tcmp; size: integer); Вывод: нужно повторить вопрос и пример положить в приложение.
Ответ отправлен: 19.05.2004, 19:18 Отправитель: Boriss Отвечает Pawel
Здравствуйте, Стас! if (l if (lend; - что это за запись???? Что за ошибку выдаёт прога?
Ответ отправлен: 19.05.2004, 19:59 Отправитель: Pawel Отвечает THE_PRO
Приветствую Вас, Стас! a qde "then"? Ответ отправлен: 20.05.2004, 17:49 Отправитель: THE_PRO Отвечает CrackLab
Доброе время суток, Стас! Вся программа сплошная ошибка. Программу писал не ты и совершенно не понимаешь в чем тут ошибка. За тебя всю программу править никто не будет тем более тут не понятно как ее править. Ответ отправлен: 20.05.2004, 00:43 Отправитель: CrackLab Отвечает sir henry
Приветствую Вас, Стас! А что, сообщение компилятора об ошибках влом было написать? 1) Ошибка в строке 2. В Дельфи нет стандартного модуля CRT. Да и зачем он Вам, просто для того чтобы был? Бессмыслица. 2) У Вас ошибок очень много именно синтаксических, поэтому пройдитесь по всем сообщениям компилятора и исправьте синтаксические ошибки, тогда программа наверняка заработает. 4) Зачем Вы pointer приводите к типу если и так ясно с каким типом будет работать программа? Это бессмыслица. Видимо недостаточно подумали на этапе проектирования. 3) Про такие мелочи как {$APPTYPE CONSOLE} в начале проги я уж и не говорю :). Ответ отправлен: 20.05.2004, 04:25 Отправитель: sir henry
Вопрос № 1545
Здравствуйте, многоуважаемые эксперты! Я по поводу вопроса № 1539... В ScrollBox1 у меня находится графика. Поэтому просто поменять шрифт не совсем подходит. Но я попробовал сделать так, как посоветовал Samum2000, но, к сожалению, это тоже не работает :( (печатается всё равно мелко). Может кто-то знает другие пути решения данной проблемы?
Приветствую Вас, UKY! Так с этого и надо было начинать :) В приложении пример того, как распечатать картинку на принтере, при этом верно её отмасштабировав. Я думаю, что его можно будет применить и к ScrollBox без особых изменений. Если будут вопросы - пиши на samum2000@mail15.com -------------------------- -=Experts helper: testmode=-
Приложение: Ответ отправлен: 20.05.2004, 13:07 Отправитель: samum2000 Отвечает sir henry
Доброе время суток, UKY! Скопировать изображение из ScrollBox (текст и графику), а потом увеличить и распечатать как рисунок. Ответ отправлен: 20.05.2004, 06:23 Отправитель: sir henry Отвечает Boriss
Добрый день, UKY! 0) нет лазерного под рукой, так что проверить не могу :(( 1) В Rave Reports, коей есть в D7, есть средства для предварительного просмотра, настройки и печати. Почему бы не воспользоваться стандартным VCL? Кстати именно этот путь рекомндуют авторы учебников (например, Архангельский). 2) У форм есть метод Print и свойство PrintScale = (poNone - без масштабирования, poPrintToFit - того же размера, что на экране, poProportional - подгонка под размер страницы, установленной на принтере). А тут можно разместить рисунок на всю форму, установить Stretch:=True; 3) Есть ф-я API - GetDeviceCaps, которая возвращает значения масштаба, есть SetDIBitsToDevice - для работы с DIB-форматом, DeviceCapabilities - определяет возможности принтера 4) И еще нашел для печати расторвых: в приложении (но опять же, под руками только матричный)
Приложение: Ответ отправлен: 20.05.2004, 16:17 Отправитель: Boriss
Вопрос № 1546
Пытаюсь установить dpk-шку с компонентами, написанными, как утверждает разработчик, под Delphi 6-7 и получаю сообщение, что не найден файл DsgnIntf.pas. Его и впрямь нигде нет - как быть?
Доброго времени суток, MikeAD! Попробуй связаться с автором и все выяснить. Но кажется, что компонента писалась точно не под 7-ю версию. Попробуй подсунуть ему DesignIntf.pas - может будет работать? -------------------------- -=Experts helper: testmode=- Ответ отправлен: 20.05.2004, 18:05 Отправитель: samum2000 Отвечает THE_PRO
Добрый день, MikeAD! V sedmoy versii on nazivayetsya DesignIntf.pas Ответ отправлен: 20.05.2004, 17:47 Отправитель: THE_PRO Отвечает Boriss
Приветствую Вас, MikeAD! Стреляться, мой друг, только стреляться с автором, разумеется. Такой файл у меня нашелся в D5. Пробую выслать, если не получится (у меня), то напишите на surin_bp@mail.ru Ответ отправлен: 20.05.2004, 11:59 Отправитель: Boriss Отвечает sir henry
Добрый день, MikeAD! Если имя файла написано Вами правильно, то поискать в исходниках компонента или самом Дельфи. Если не найдено и там, то связаться с разработчиками компонента. Как альтернативу можно предложить поиск файла в поисковиках интернет. Ответ отправлен: 21.05.2004, 04:21 Отправитель: sir henry Отвечает Pawel
Приветствую Вас, MikeAD! Застрелиться!!! Такой фаил есть толко в D 3-5. Ответ отправлен: 21.05.2004, 13:59 Отправитель: Pawel
Вопрос № 1547
При работе с базами данных в Builder надо использовать псевдонимы. В псевдониме надо указывать путь к базе данных. При переносе приложения, работающего с базой на другой компьютер, приходится постоянно прописывать путь к базе. Хорошо, что на них есть BDE Administrator или SQL Explorer. Подскажите, пожалуйста, как прописывать путь в псевдонимах для приложений, работающих с базами данных на компьютерах, где нет приложений типа BDE Administrator или SQL Explorer. Может быть надо сделать так: в качестве рабочего каталога указать тот каталог, в котором идет разработка приложения, затем использовать для базы не открытый псевдоним, псевдоним проекта (он вроде бы должен сохраняться в раб. кат. в файле IDAPI.CFG ). И уже после переноса приложения что-либо (например, сам путь к БД, если он там естьJ) изменить как раз в файле IDAPI.CFG?
Доброе время суток, Andrey! Проблема здесь в следующем. Когда Вы пишете приложение, работающее с БД, Вы используете еще одно приложение, которое называется BDE. Именно BDE и организует для Вас доступ к данным на физическом уровне. Следовательно, если Вы не установите на компьютер, где будет работать Ваша программа, еще и BDE, то доступа к данным не будет. Т.е. проблема здесь отнюдь не в псевдонимах и путях, а в том способе доступа к БД, который Вы выбираете для своего приложения. Способов может быть несколько: 1. BDE. самый легки в использовании и поэтому самый распространенный. Недостатки - нужно на компе клиента устанавливать BDE (9,5 МБ). 2. ADO. Там где есть MS Office, есть и ADO. Следовательно Вам ничего дополнительно, кроме своего приложения, устанавливать не придется. Это самые распространенные. Есть еще и экзотические. Например использовать специальные
компоненты, в которых реализован собственный алгоритм доступа к данным. ----- Теперь о псевдонимах и путях. Есть специальная функция, которая добавляет псевдоним из программы. Например, в компоненте TSession - TSession->AddAlias(). Или функция DbiAddAlias(). Надо только чтобы было куда добавлять :)). Ответ отправлен: 21.05.2004, 05:28 Отправитель: sir henry
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.