Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.04.2009, 16:53   #11
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Да ты не понял у меня ошибка Undeclared identifier: 'GetHTMLColor';
извени я просто еще не все знаю но учусь с охотой.
ShowMessage('Добро пожаловать!');
Alex2009 вне форума
Старый 17.04.2009, 16:57   #12
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

А ты куда вставил эту функцию?
В самое начало программы, после {$R *.dfm}?
Так вот, если не туда, то поставь туда.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума
Старый 17.04.2009, 16:59   #13
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Нифига ее в var наверное нужно обьявить.
ShowMessage('Добро пожаловать!');
Alex2009 вне форума
Старый 17.04.2009, 17:03   #14
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Я ее там не объявлял, и это не обязательно для этой функции.
Посмотри весь код, который я написал у себя:

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    ListBox1: TListBox;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    Button2: TButton;
    ColorDialog1: TColorDialog;
    procedure FormCreate(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    FilePath: string;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function GetHTMLColor(cl: TColor; IsBackColor: Boolean): string;
var
  rgbColor: TColorRef;
begin
  if IsBackColor then
    Result := 'bg'
  else
    Result := '';
  rgbColor := ColorToRGB(cl);
  Result := Result + 'color="#' +
  Format('%.2x%.2x%.2x',
  [GetRValue(rgbColor),
  GetGValue(rgbColor),
  GetBValue(rgbColor)]) + '"';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if OpenDialog1.Execute then
 begin
  FilePath := ExtractFilePath(OpenDialog1.FileName);
  Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 cl: TColor;
 clFormat: string;
begin
 if ColorDialog1.Execute then
 begin
  cl := ColorDialog1.Color;
  clFormat := GetHTMLColor(cl, true);
  Memo1.SelText := clFormat;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 F: TextFile;
 tag: string;
begin
 AssignFile(F, ExtractFilePath(ParamStr(0)) + 'tag.ini');
 Reset(F);
 while Not Eof(F) do
 begin
  readln(F, tag);
  ListBox1.Items.Add(tag);
 end;
end;

procedure TForm1.ListBox1Click(Sender: TObject);
begin
 if ListBox1.ItemIndex <> -1 then
  Memo1.SelText := ListBox1.Items[ListBox1.ItemIndex];
end;

end.
Все работает.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума
Старый 17.04.2009, 17:08   #15
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Заработало а можно зделать чтобы вместо bgcolor или color был просто код цвета?
ShowMessage('Добро пожаловать!');
Alex2009 вне форума
Старый 17.04.2009, 17:12   #16
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Измени код функции на этот:
Код:
function GetHTMLColor(cl: TColor): string;
var
  rgbColor: TColorRef;
begin
  rgbColor := ColorToRGB(cl);
  Result := Result + '#' +
  Format('%.2x%.2x%.2x',
  [GetRValue(rgbColor),
  GetGValue(rgbColor),
  GetBValue(rgbColor)]);
end;
И замени код при нажатии кнопки выбора цвета на этот:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
 cl: TColor;
 clFormat: string;
begin
 if ColorDialog1.Execute then
 begin
  cl := ColorDialog1.Color;
  clFormat := GetHTMLColor(cl);
  Memo1.SelText := clFormat;
 end;
end;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума
Старый 17.04.2009, 17:19   #17
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Спасибо!!!Но ище последний вопрос а как сделать вот у меня есть меню ну к примеру нажымаю F2 и открывается Диалог открыть короче нужно зделать горячие клавишы.
ShowMessage('Добро пожаловать!');
Alex2009 вне форума
Старый 17.04.2009, 17:25   #18
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Там где создается меню(дизайнер), надо выбрать пункт меню, которому ты хочешь присвоить горячую клавишу, и изменить свойство ShortCut у этого пункта меню на то, которое тебе нравится, например F2.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума
Старый 17.04.2009, 17:40   #19
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Вот! сделал пример небольшого HTML-редактора.
На комментарии не было времени, зато там есть всё, что тебе надо!

Горячие клавиши ставятся так:
Код:
procedure TMainForm.RichEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_F5 then 
{Твой код}
end;
Помог? если да, то нажмите на весы с лева =)
Вложения
Тип файла: zip html ED.zip (247.6 Кб, 28 просмотров)

Последний раз редактировалось uberchel; 17.04.2009 в 17:45.
uberchel вне форума
Старый 17.04.2009, 17:52   #20
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

В итоге ты сделал все то, что мы тут понаписали(даже подсветка синтаксиса с той ссылки, которую я выложил)
Только с сохранением большие баги.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HTML веб редактор dr.Chas Софт 7 17.03.2009 14:57
HTML редактор Alex2009 Помощь студентам 3 07.03.2009 15:27
HTML-редактор для Delphi Roman_YRV Работа с сетью в Delphi 1 10.10.2008 17:59
Редактор html страниц Sanek_ntsk Софт 14 13.02.2008 08:15
редактор MadDog__ Общие вопросы C/C++ 2 03.10.2007 12:49