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

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

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

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

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

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

Добрый день пишу редактор HTML.И у меня уже есть два вопроса .
1)Как мне зделать так(например у меня в файле tag.ini написаные тэги.Как мне зделать так чтоб в Memo2 эти теги отображались и при нажатии на нужный тег он добавлялся в Memo1)
2)Когда я загружаю html страницу у меня не отоброжаются картинки.
Например HTML страница лежит в D:\\proba.html и здесьже папка image
В коде HTML пишу такое <img src="image\1.jpg" alt=""> но рисунок не проглядывается.
Вот код.
Код:
procedure TForm1.N11Click(Sender: TObject); //Просмотр езультатов
begin
Memo1.Lines.Clear; Memo1.Lines:=SaveMemo1.Lines;
 Memo1.Lines.SaveToFile(ExtractFilePath(Application.ExeName)+'Check.html');
 ShellExecute(0,'open',PAnsiChar(ExtractFilePath(Application.ExeName)+'Check.html'),
 nil,nil,SW_SHOWNORMAL);
end;
ShowMessage('Добро пожаловать!');

Последний раз редактировалось Stilet; 17.04.2009 в 14:44. Причина: правильно оформляем код
Alex2009 вне форума
Старый 17.04.2009, 15:41   #2
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Я могу ответить на первый вопрос.
Вместо Memo2 лучше использовать ListBox.
У вас есть tag.ini со строками типа:
<head></head>
<body></body>
<script></script>
и т.д.
(Хотя ini-файл используется не для этого)
Вот код на событие при создании формы:
Код:
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;
И при клике на ListBox:
Код:
procedure TForm1.ListBox1Click(Sender: TObject);
begin
 if ListBox1.ItemIndex <> -1 then
  Memo1.SelText := ListBox1.Items[ListBox1.ItemIndex];
end;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума
Старый 17.04.2009, 15:42   #3
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

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

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

Да там не в HTML дело.Тот код что я выложил (обьясняю в SaveMemo1 я пишу к примеру <head></head> <body></body> <script></script> и тд. затем при нажатии кнопки в моем случаи меню открывается Opera и в ней смотриш результат.Но когда открывается в папке с программой создается файл Check.html просто нужно зделать чтобы это файл создавался в том месте где я открыл страницу.К примеру я открываю OpenDialog1 страницу расположеную в D:\\test.html тамже папка image а программа находится на Рабочем столе и при открытии я нажимаю на кнопку чтобы просмотреть результат а программа создает на Рабочем столе файл Check.html мне нужно зделать чтоб программа создавала файл в той директории откуда был открыт файл.

У меня проблема когда я в ListBox выбираю тег он добавляется в Memo1 наважу курсор на Memo1 и он проподает.В чем дело?
ShowMessage('Добро пожаловать!');

Последний раз редактировалось Stilet; 17.04.2009 в 16:55.
Alex2009 вне форума
Старый 17.04.2009, 16:13   #6
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Сейчас вчитался)
Надо при открытии файла(OpenDialog'ом) сохранять путь к файлу в отдельной переменной, объявленной в секции private:
Код:
private
{ private declarations }
FilePath: string;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
 if OpenDialog1.Execute then
 begin
  FilePath := ExtractFilePath(OpenDialog1.FileName);
  Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
 end;
end;
И вместо:
Код:
Memo1.Lines.SaveToFile(ExtractFilePath(Application.ExeName)+'Check.html');
ShellExecute(0,'open',PAnsiChar(ExtractFilePath(Application.ExeName)+'Check.html'),
nil,nil,SW_SHOWNORMAL);
писать:
Код:
Memo1.Lines.SaveToFile(FilePath+'Check.html');
ShellExecute(0,'open',PAnsiChar(FilePath+'Check.html'),
nil,nil,SW_SHOWNORMAL);
P.S. А насчет пропадания тега... У меня все нормально... Есть какой-нибудь обработчик события при наведении мыши на Memo?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.

Последний раз редактировалось Neeter; 17.04.2009 в 16:18.
Neeter вне форума
Старый 17.04.2009, 16:22   #7
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Есть какой-нибудь обработчик события при наведении мыши на Memo?
Нет
Вот еще вопрос как мне зделать теги крастынм цветом?
И в ColorDialog мне нужно зделать как в Фотошопе например выбираю белый цвет и мне в Мэмо нужно чтоб добавлялся код код белого цвета #ffffff и тд.
ShowMessage('Добро пожаловать!');
Alex2009 вне форума
Старый 17.04.2009, 16:38   #8
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Чтобы подсветить синтаксис HTML, надо вместо Memo использовать RichEdit.
Почитай тут: http://www.delphisources.ru/pages/fa...html_tags.html

Чтобы вставить тег кода цвета, надо создать функцию:

Код:
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.Button2Click(Sender: TObject);
var
 cl: TColor;
 clFormat: string;
begin
 if ColorDialog1.Execute then
 begin
  cl := ColorDialog1.Color;
  clFormat := GetHTMLColor(cl, false);
  Memo1.SelText := clFormat;
 end;
end;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.

Последний раз редактировалось Neeter; 17.04.2009 в 16:45.
Neeter вне форума
Старый 17.04.2009, 16:42   #9
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

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

Почему, аргументы состоят из цвета(TColor) и булевского значения, означающего, как будет написан тег:
если равно true(и cl=clWhite), то: bkcolor=#FFFFFF
если false, то: color=#FFFFFF
Ведь при нажатии кнопки, показывается диалог выбора цвета, а свойство ColorDialog1.Color равно выбранному цвету типа TColor.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.

Последний раз редактировалось Neeter; 17.04.2009 в 16:53.
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