![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
compiler |
![]()
Сообщение
#1
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
Добрый день!
есть программка которая должна отрисовывать 5 прямоугольников в вертикальном положении через небольшое расстаяние, но она не работает:( uses Graph; ![]() на скрине видно что отступы между прямоугольниками пропадают, и откуда-то берется шестой прямоугольник... помогите... Сообщение отредактировано: compiler - 11.07.2007 18:51 -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Это не 6 прямоугольников, а 5, но переплетены так, что
![]() Поменяй for i:=1 to 5 do begin и все будет нормально рисоваться ... Сообщение отредактировано: volvo - 11.07.2007 19:06 |
compiler |
![]()
Сообщение
#3
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
и отнимать К, надо было от другого у...
спасибо.. -------------------- Спасибо!
Удачи! |
compiler |
![]() ![]()
Сообщение
#4
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
еще одна проблемка, не меняется фон...
(*{TP mode}*) что делать? -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
В Турбо Паскале как раз меняется ...
|
compiler |
![]()
Сообщение
#6
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
В Турбо Паскале как раз меняется ... но у меня его нет... точнее где-то на диске...как сделать что б менялся в FP? Добавлено через 19 мин. прошу перенести тему в соответствующий раздел... в документации (rtl/graph/setbkcolor) есть подобная процедура SetBkColor -- Set background drawing color Errors -- None. -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Открываем исходники и читаем:
procedure SetBkColor(ColorNum: Word); То есть, после вызова SetBkColor, чтобы изменения вступили в силу, надо вызвать ClearDevice, следовательно программа не будет работать точно так же, как и в TP... Сообщение отредактировано: volvo - 12.07.2007 16:25 |
compiler |
![]()
Сообщение
#8
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
То есть, после вызова SetBkColor, чтобы изменения вступили в силу, надо вызвать ClearDevice, следовательно парограмма не будет работать точно так же, как и в TP... А без отчистки экрана никак?Добавлено через 11 мин. и что надо сделать что б работало SetTextStyle? а то у меня шрифты не отличаются... Сообщение отредактировано: compiler - 12.07.2007 16:06 -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Цитата А без отчистки экрана никак? С использованием SetBkColor - никак. А по-другому - очень медленно:for i:=0 to 15 do begin(да и артефакты остаются) Цитата у меня шрифты не отличаются. Показывай, что делаешь. |
compiler |
![]()
Сообщение
#10
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
(да и артефакты остаются) это кто?Показывай, что делаешь. вот процедурка... использую так же как и dr
procedure text; -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Так:
procedure text;и все CHR-файлы либо в одной папке с программой, либо переведены в PP файлы с помощью подобной команды: Цитата(Console) BIN2OBJ -c LittFontProc LITT.CHR>LITT.PP , и подключены к программе через {$i имя файла}... У меня все работает по первому варианту. |
compiler |
![]()
Сообщение
#12
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
-------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
Я брал из 7-го Турбо Паскаля - формат один и тот же...
Если надо - забирай: ![]() Цитата что такое SetTextJustify? Устанавливает выравнивание текста. То что я привел - говорит компилятору, что точка, координаты которой задаешь в OutTextXY, будет левой (LeftText) верхней (TopText) точкой выводимого текста, то есть, весь текст пойдет от нее вправо и вниз. А вот для того, чтобы пропускать между строками, напечатанными разными шрифтами одинаковое расстояние, пользуемся TextHeight, которая выдаст высоту переданной ей буквы (обычно передают "W", как самую высокую) для текущего шрифта... |
compiler |
![]() ![]()
Сообщение
#14
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
вот моя менюшка...
uses Graph,crt; проблема основная -- что-то с циклом отрисовки нового выбора пользователя(прямоугольник новый не отрисовывается) проблемма второстепенная -- текст выводится не в центр что делать? -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#15
|
Гость ![]() |
Так?
uses Graph,crt; |
compiler |
![]()
Сообщение
#16
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
Так?
ага, только есть вопрос... к вот этому x1 + ((x2 - x1) div 2)...outtextxy(x1 + ((x2 - x1) div 2), y1 + ((y2 - y1) div 2), menuText(i));... ведь round( ((x2+x1-Length(menuText(i))*ширина символа)/2 )) тоесть (х2 - х1) -- длина всего прямоугольника, (Length( menuText(i) )*ширина символа) -- ширина строки(далее L), тогда (х2 - х1)-L--<<остаток>>, делем на 2 и получаем левый остаток. Но и x1 + ((x2 - x1) div 2) выводит посредине, почему? -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#17
|
Гость ![]() |
Потому что именно так я нахожу центр прямоугольника, а потом заставляю текст выводиться со смещением (centertext, centertext), то есть, центр текста совпадает с центром прямоугольника.
Как это делается - проблема модуля Graph, это пусть он себе голову морочит, что надо сделать для правильного вывода текста. Я только говорю, что я хочу получить в результате. |
compiler |
![]()
Сообщение
#18
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
теперь ясно... спасибо.
Добавлено через 4 мин. стройка начата... с ворот... ![]() -------------------- Спасибо!
Удачи! |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 14:21 |