Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.08.2010, 14:47
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию Новая проблема. Изменение цвета

Здравствуйте, возникла новая проблема с изменение цвета определённого слова.
Где-то нашёл код, как изменить цвет в ричедите определённого слова. Но мне надо это всё в комбобокс занести, т.е. Человек выбирает в комбобоксе: Ничего либо Красный, либо синий и т.д.
Так же этих комбобоксов несколько, один выделяет то слово, другой другое. Дак вот можно ли этот код адаптировать под несколько комбобосксов? Или надо использовать другой, я вот попытался, сделать пока с 2 комбобоксами, но при компиляции сразу же выдаёт ошибку, что-то типа программа обратилась к неправильному адрессу. И указывает на строку:
if form8.ComboBox1.ItemIndex <> 0 then begin
И не запускает программу. Вот весь код, который я пока сделал на 2 комбобокса, для проверки..
Код:
procedure TForm1.scriptChange(Sender: TObject);
const
  combo1: array[1..3] of string[9] = ('switch','select','case');
  combo2: array[1..3] of string[9] = ('getitem','delitem','countitem');
  combo3: array[1..1] of string[9] = ('zeny');
  combo4: array[1..3] of string[9] = ('mes','next','close');
  combo5: array[1..3] of string[9] = ('if','else','end');
  combo6: array[1..1] of string[9] = ('""');
var
  k,i: integer;
begin
if form8.ComboBox1.ItemIndex <> 0 then begin
  for i:=1 to length(combo1) do
    begin
      k:=-length(combo1[i]);
      repeat
        k:=script.FindText(combo1[i],k+length(combo1[i]),
           length(script.Text)-k-length(combo1[i]),[stWholeWord]);
        script.SelStart:=k;
        script.SelLength:=length(combo1[i]);
        if form8.ComboBox1.ItemIndex = 1 then
        script.SelAttributes.Color:=clRed;
        if form8.ComboBox1.ItemIndex = 2 then
        script.SelAttributes.Color:=clBlue;
        if form8.ComboBox1.ItemIndex = 3 then
        script.SelAttributes.Color:=clGreen;
        if form8.ComboBox1.ItemIndex = 3 then
        script.SelAttributes.Color:=clYellow;
      until k < 0;
          script.SelAttributes.Color:=clBlack;
    end;
    end;

    if form8.ComboBox2.ItemIndex <> 0 then begin
  for i:=1 to length(combo2) do
    begin
      k:=-length(combo2[i]);
      repeat
        k:=script.FindText(combo2[i],k+length(combo2[i]),
           length(script.Text)-k-length(combo2[i]),[stWholeWord]);
        script.SelStart:=k;
        script.SelLength:=length(combo2[i]);
        if form8.ComboBox2.ItemIndex = 1 then
        script.SelAttributes.Color:=clRed;
        if form8.ComboBox2.ItemIndex = 2 then
        script.SelAttributes.Color:=clBlue;
        if form8.ComboBox2.ItemIndex = 3 then
        script.SelAttributes.Color:=clGreen;
        if form8.ComboBox2.ItemIndex = 3 then
        script.SelAttributes.Color:=clYellow;
      until k < 0;
          script.SelAttributes.Color:=clBlack;
    end;
    end;
end;
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:05.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025