Вверх ↑
Этот топик читают: Гость
Ответов: 8
Рейтинг: -3
#1: 2014-07-13 20:33:30 ЛС | профиль | цитата
В RichEdit есть верхние точки установки цвета,начертания, (выделенного текста)а шрифта и размера нет, доделайте...
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 1341
Рейтинг: 31
#2: 2014-07-13 21:08:37 ЛС | профиль | цитата
( code_33992.txt есть ещё вариант через менеджер шрифта (FontManager) ) немного не в тему...
карма: 2

0
nevada_wolf (сообщение скрыто ввиду неодобрения читателями) показать
-3
Голосовали:foksov, Shonyi, ashkalov
Ответов: 8
Рейтинг: -3
#4: 2014-08-02 09:56:36 ЛС | профиль | цитата
Rysik, что-то ваша ссылка ведёт к ошибке
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#5: 2014-08-02 10:54:13 правка | ЛС | профиль | цитата


Редактировалось 8 раз(а), последний 2021-06-24 08:53:30
карма: 0

0
Ответов: 704
Рейтинг: 44
#6: 2014-08-02 10:55:15 ЛС | профиль | цитата
Выше я. Забыл авториз. пройти.
карма: 0

0
Ответов: 8
Рейтинг: -3
#7: 2014-08-02 12:29:04 ЛС | профиль | цитата
Не лень, надо бы читать внимательней! Там написано что ВЫДЕЛЕННОГО ТЕКСТА а не всего! Есть в RichEdit верхние точки цвета и начертания, шрифта там нет! Верхние точки для изменения цвета.. выделенного текста работают при помощи _work_doFormatSel. Верхней точки шрифта нет!
Изменение всего шрифта при компоненте Font даже дурак поймет!
------------ Дoбавленo в 12.29:
Пример(для начертания и цвета):
Add(MainForm,2953706,301,21)
{
Width=230
Height=235
}
Add(RichEdit,4566545,371,98)
{
Left=10
Top=35
Width=205
Height=165
Point(doFormatSel)
link(Color,16064775:Var2,[])
link(Style,10133678:Var1,[(391,75)])
}
Add(ComboBox,2381782,469,14)
{
Left=160
Top=5
Height=21
Strings=#7:Обычный|6:Жирный|6:Курсив|13:Жирный курсив|12:Подчёркнутый|
Text=""
ReadOnly=0
Point(Index)
link(onClick,12509891:doData,[(515,27)(515,233)(289,233)(289,181)])
}
Add(ColorBox,3901238,378,21)
{
Left=10
Top=5
Width=145
Height=21
link(onClick,4250791:doData,[(422,27)(422,87)(289,87)(289,139)])
}
Add(DoData,4250791,301,133)
{
link(onEventData,2316227:doWork2,[])
link(Data,16064775:Var1,[(307,77)])
}
Add(DoData,12509891,301,175)
{
link(onEventData,2316227:doWork3,[(354,181)])
link(Data,10133678:Var2,[(307,117)(489,117)])
}
Add(HubEx,2316227,350,133)
{
link(onEvent,4566545:doFormatSel,[])
}
Add(GetDataEx,16064775,378,72)
{
link(Data,3901238:CurrentColor,[])
}
Add(GetDataEx,10133678,483,70)
{
link(Data,2381782:Index,[])
}
карма: 0

0
Ответов: 704
Рейтинг: 44
#8: 2014-08-02 15:30:27 ЛС | профиль | цитата
nevada_wolf писал(а):
Там написано что ВЫДЕЛЕННОГО ТЕКСТА а не всего!

Уважаемый nevada_wolf я в упор не вижу в вашем вопросе о выделенном тексте. Если вы о термине начертания, то это не означает что ВЫДЕЛЕННОГО ТЕКСТА. начертания - это графическая разновидность шрифта в пределах одной гарнитуры, различаемая по плотности (ширине), (нормальное, узкое, широкое), по постановке (наклону), прямое, курсивное, наклонное), по насыщенности (жирности),(светлое, полужирное, жирное). На будущие
карма: 0

0
Ответов: 8
Рейтинг: -3
#9: 2014-08-17 12:44:17 ЛС | профиль | цитата
Уважаемый Kazbek17
Kazbek17 писал(а):
я в упор не вижу в вашем вопросе о выделенном тексте
, я сделал правку...


Посмотрите
code_34151.txt


А теперь мне нужно чтоб не только было изменение начертания, цвета выделенного текста но и шрифта, а также кодировки!
карма: 0

0
файлы: 1code_34151.txt [1KB] [421]
Разработчик
Ответов: 26061
Рейтинг: 2120
#10: 2014-08-19 14:19:54 ЛС | профиль | цитата
Решение вопроса установки цвета, начертания, имени шрифта и размера для выбранной строки

Add(MainForm,11774986,189,140)
{
Width=586
Height=248
}
Add(RichEdit,4566545,189,196)
{
Left=10
Top=35
Width=550
Height=165
Font=[Arial Narrow,8,0,0,204]
Point(doFormatSel)
Point(PHandle)
}
Add(ComboBox,2381782,308,112)
{
Left=375
Top=5
Width=90
Height=21
Strings=#7:Обычный|6:Жирный|6:Курсив|13:Жирный курсив|12:Подчёркнутый|
Text=""
ReadOnly=0
Point(Index)
link(onClick,11154160:doWork3,[(347,125)])
}
Add(ColorBox,3901238,238,98)
{
Left=10
Top=5
Width=145
Height=21
link(onClick,3003326:doWork3,[(277,104)])
}
Add(InlineCode,6686563,231,273)
{
WorkPoints=#11:doFormatSel|
DataPoints=#7:PHandle|5:Color|5:Style|8:FontName|8:FontSize|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|0:|12: PHandle,|10: Color,|10: Style,|13: FontName,|24: FontSize: THI_Event;|4: |58: procedure doFormatSel(var _Data: TData; Index: word); |5: end;|0:|14:implementation|0:|34:procedure THiAsmClass.doFormatSel;|3:var|21: sControl: PControl;|10: p: byte;|12: s: string;|13: i: integer;|0:|5:begin|48: sControl := PControl(ToIntegerEvent(PHandle));|38: if not Assigned(sControl) then exit;|2: |64: if (sControl.SelLength <> 0) then {no valid selection -> quit}|7: begin|82: sControl.RE_CharFmtArea := raSelection; {apply attribute(s) only to selection}|58: sControl.RE_FmtFontColor := ReadInteger(_Data, Color);|0:|35: p := ReadInteger(_Data, Style);|39: sControl.RE_FmtBold := p and 1 > 0;|41: sControl.RE_FmtItalic := p and 2 > 0;|44: sControl.RE_FmtUnderline := p and 4 > 0;|37: s := ReadString(_Data, FontName);|20: if s <> ' then|35: sControl.RE_FmtFontName := s;|43: i := ReadInteger(_Data, FontSize) * 20;|20: if i <> 0 then |36: sControl.RE_FmtFontSize := i; |6: end;|4:end;|0:|4:end.|
link(PHandle,4566545:PHandle,[(237,257)(216,257)])
link(Color,3901238:CurrentColor,[])
link(Style,2381782:Index,[(251,173)(328,173)])
link(FontName,7941939:CurrentFont,[(258,180)(377,180)])
link(FontSize,8008192:String,[(265,187)(456,187)])
}
Add(HubEx,3003326,273,84)
{
Angle=2
link(onEvent,14434637:doData,[(172,90)(172,279)])
}
Add(FontBox,7941939,371,112)
{
Left=160
Top=5
Width=210
Height=21
SelFont="MS Sans Serif"
link(onResult,16620996:doWork3,[(410,118)])
}
Add(HubEx,11154160,343,84)
{
Angle=2
link(onEvent,3003326:doWork2,[])
}
Add(ComboBox,8008192,443,114)
{
Left=470
Top=5
Width=90
Height=21
Strings=#1:8|2:10|2:12|2:14|2:16|2:18|2:20|2:22|2:24|2:26|2:28|2:32|
Text=""
ReadOnly=0
Point(Index)
link(onClick,16620996:doWork2,[(480,127)(480,90)])
}
Add(HubEx,16620996,406,84)
{
Angle=2
link(onEvent,11154160:doWork2,[])
}
Add(DoData,14434637,182,273)
{
link(onEventData,6686563:doFormatSel,[])
}

карма: 22

1
Голосовали:LainX
Ответов: 8
Рейтинг: -3
#11: 2014-08-20 07:54:23 ЛС | профиль | цитата
Огромное спасибо
карма: 0

0
Ответов: 5
Рейтинг: 0
#12: 2017-01-22 07:00:53 ЛС | профиль | цитата
У меня почему то не работает, очень нужен размер текста, если есть кто может просветить как реализовать тоже самое, буду очень благодарен.

Редактировалось 1 раз(а), последний 2017-01-22 07:02:44
карма: 0

0
Ответов: 2059
Рейтинг: 131
#13: 2017-01-22 12:11:21 ЛС | профиль | цитата
а так работает?


Add(MainForm,11774986,301,182)
{
Width=586
Height=314
}
Add(RichEdit,4566545,301,238)
{
Left=10
Top=35
Width=550
Height=165
Font=[Arial Narrow,8,0,0,204]
ScrollBars=2
Point(doFormatSel)
Point(PHandle)
}
Add(ComboBox,2381782,420,154)
{
Left=375
Top=5
Width=90
Height=21
Strings=#7:Обычный|6:Жирный|6:Курсив|13:Жирный курсив|12:Подчёркнутый|
Text=""
ReadOnly=0
Point(Index)
link(onClick,11154160:doWork3,[(459,167)])
}
Add(ColorBox,3901238,350,140)
{
Left=10
Top=5
Width=145
Height=21
link(onClick,3003326:doWork3,[(389,146)])
}
Add(InlineCode,6686563,343,315)
{
WorkPoints=#11:doFormatSel|
DataPoints=#7:PHandle|5:Color|5:Style|8:FontName|8:FontSize|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|0:|12: PHandle,|10: Color,|10: Style,|13: FontName,|24: FontSize: THI_Event;|4: |58: procedure doFormatSel(var _Data: TData; Index: word); |5: end;|0:|14:implementation|0:|34:procedure THiAsmClass.doFormatSel;|3:var|21: sControl: PControl;|10: p: byte;|12: s: string;|13: i: integer;|0:|5:begin|48: sControl := PControl(ToIntegerEvent(PHandle));|38: if not Assigned(sControl) then exit;|2: |64: if (sControl.SelLength <> 0) then {no valid selection -> quit}|7: begin|82: sControl.RE_CharFmtArea := raSelection; {apply attribute(s) only to selection}|58: sControl.RE_FmtFontColor := ReadInteger(_Data, Color);|0:|35: p := ReadInteger(_Data, Style);|39: sControl.RE_FmtBold := p and 1 > 0;|41: sControl.RE_FmtItalic := p and 2 > 0;|44: sControl.RE_FmtUnderline := p and 4 > 0;|37: s := ReadString(_Data, FontName);|20: if s <> '' then|35: sControl.RE_FmtFontName := s;|43: i := ReadInteger(_Data, FontSize) * 20;|20: if i <> 0 then |36: sControl.RE_FmtFontSize := i; |6: end;|4:end;|0:|4:end.|
link(PHandle,4566545:PHandle,[(349,299)(328,299)])
link(Color,3901238:CurrentColor,[])
link(Style,2381782:Index,[(363,215)(440,215)])
link(FontName,7941939:CurrentFont,[(370,221)(489,221)])
link(FontSize,8008192:String,[(377,229)(568,229)])
}
Add(HubEx,3003326,385,126)
{
Angle=2
link(onEvent,14434637:doData,[(282,132)(282,321)])
}
Add(FontBox,7941939,483,154)
{
Left=160
Top=5
Width=210
Height=21
SelFont="MS Sans Serif"
link(onResult,16620996:doWork3,[(522,160)])
}
Add(HubEx,11154160,455,126)
{
Angle=2
link(onEvent,3003326:doWork2,[])
}
Add(ComboBox,8008192,555,156)
{
Left=470
Top=5
Width=90
Height=21
Strings=#1:8|2:10|2:12|2:14|2:16|2:18|2:20|2:22|2:24|2:26|2:28|2:32|
Text=""
ReadOnly=0
Point(Index)
link(onClick,16620996:doWork2,[(592,169)(592,132)])
}
Add(HubEx,16620996,518,126)
{
Angle=2
link(onEvent,11154160:doWork2,[])
}
Add(DoData,14434637,294,315)
{
link(onEventData,6686563:doFormatSel,[])
}


карма: 6

0
Ответов: 5
Рейтинг: 0
#14: 2017-01-25 03:59:05 ЛС | профиль | цитата
Да работает, огромное спасибо, дело в IC было ? Просто схему то собрать я еще как то, где то могу...А остальное...тут уже надо хоть не много программистом быть. С удовольствием бы почитал какие нибудь мануалы, если кто нибудь подскажет куда копать.
карма: 0

0
Ответов: 2059
Рейтинг: 131
#15: 2017-01-25 17:15:43 ЛС | профиль | цитата
С удовольствием бы почитал какие нибудь мануалы

Собственно всё просто:

Существуют следующие функции чтения с точек данных:
ToStringEvent - читает строку
ToIntegerEvent - читает целое число
ToRealEvent - читает число с точкой
ToStreamEvent - читает файловый поток Stream
ToBitmapEvent - читает картинку bmp
ToIconEvent - читает иконку

Для разных типов данных - свои функции. Но все эти функции читают данные только с точек данных. А у нас ведь ещё есть поток, в который также можно передавать данные. Для выемки информации из потока существуют следующие функции:

ToString
ToInteger ToInteger(_Data)
ToReal
ToStream
ToBitmap
ToIcon
ToObject
ToFont

Здесь добавилось несколько новых функций - для чтения шрифта, чтения объектов. Для работы с такими типами данных нужно знать функции и процедуры для работы с ними.

Эти функции читают данные только из потока. А вот если данные могут поступать и в потоке, и через точки данных существует третья группа функций:

ReadString
ReadInteger
ReadReal
ReadBool
ReadMTData
ReadData
ReadStream
ReadBitmap
ReadIcon
ReadMatrix
ReadArray

приоритет извлечения данных: сначала - с точек данных, потом - из параметров и только затем уже из потока (VBR:= ReadInteger(_Data,_data_VBR,_prop_VBR);).

Пример

unit HiAsmUnit;

interface

uses kol,Share,Debug;

type
THiAsmClass = class(TDebug)
private

public
Param1: THI_Event; { Верхняя точка. }
onEvent: THI_Event; { Правая точка }
Procedure doWork(var _Data:TData; Index:Word); { Левая точка }
end;

function flint2(lpParam1:Integer):Integer; stdcall; external 'SPF.dll';
implementation
Procedure THiAsmClass.doWork;
var
Par1,Par3:Integer;
begin
Par1:= ReadInteger(_Data,Param1);
Par3:=flint2(Par1);
_hi_OnEvent(onEvent,Par3);
end;
end.

procedure - это ключевое слово, которое и обозначает начало процедуры.
(var dt:TData; index:word); - это параметры процедуры, то есть информация которая может быть передана процедуре при вызове этой процедуры.

В данном случае параметра два: dt и index, а имеют они типы соответственно TData и word. TData - это специальный тип, который используется в HiAsm. Он может содержать практически любые данные: картинку, звук, строку, число и т. д. Word - это число, состоящее из двух байт.

unit - ключевое слово языка Object Pascal, объявляющее начало нового модуля. Модуль у нас находится в InlineCode и называется HiAsmUnit.

interface - ключевое слово языка Object Pascal, объявляющее начало интерфейсной (управляющей взаимодействием) части модуля.

uses - ключевое слово языка Object Pascal, объявляющее используемые внешние модули (исходники). kol,Share,Debug - собственно имена этих модулей, разделяемых запятой, и оканчивающихся на знак «;».
KOL - это и есть та самая библиотека, функции из которой и используются практически во всех компонентах.
Share и Debug - библиотеки, созданные специально для HiAsm его автором. Они содержат основные, часто используемые функции.

type - ключевое слово языка Object Pascal, объявляющее раздел объявления типов классов.
THiAsmClass = class(TDebug) - означает, что THiAsmClass - это новый класс, а его родителем является TDebug. Это значит, что ThiAsmClass наследует все функции от TDebug.

private - ключевое слово языка Object Pascal, объявляющее раздел переменных и процедур, которые могут использоваться только внутри этого модуля.

public - ключевое слово языка Object Pascal, объявляющее раздел переменных и процедур, которые могут использоваться внутри и вовне этого модуля. Применительно к InlineCode это означает, что здесь будут описаны точки компонента InlineCode.

implementation - ключевое слово языка Object Pascal, означающее начало отдела реализации объявленных процедур и функций. Если в private и public мы только объявляли процедуры и функции (т.е. просто писали их названия), то в implementation мы уже пишем код для этих процедур и функций, который будет выполняться при их вызове.

end. - с точкой - означает конец модуля.
А остальное знание языка.
карма: 6

0
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)