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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2014, 19:57   #1
Blood_ghosT
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 92
Вопрос Подскажите пожалуйста как бы упростить!

Приветствую форумчане? Делается словарь от А до Я!не подскажете как можно упростить и делать по легче данный код!! За ранее спасибо!
Код:
procedure TBooks.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
case Node.AbsoluteIndex of
 //1: begin  WebBrowser1.Navigate('C:\Users\жайлибай\Desktop\электронный учебник\А\Автобиография.htm');
  1:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Автобиография.htm');
      end;
  2:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Автор.htm');
      end;
  3:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Автора образ.htm');
      end;
  4: begin
          WebBrowser1.Navigate(ProgramPath+'А\Акмеизм.htm');
      end;
  5:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Акцентный стих.htm');
      end;
  6:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Аллегория.htm');
      end;
  7:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Аллитерация.htm');
      end;
  8: begin
          WebBrowser1.Navigate(ProgramPath+'А\Алогизм.htm');
      end;
  9:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Амфибрахий.htm');
      end;
  10:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Анаграмма.htm');
      end;
  11:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Анакреонтическая поэзия.htm');
      end;
  12: begin
          WebBrowser1.Navigate(ProgramPath+'А\Анапест.htm');
      end;
  13:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Анафора.htm');
      end;
  14:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Андеграунд.htm');
      end;
  15:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Анекдот.htm');
      end;
  16: begin
          WebBrowser1.Navigate(ProgramPath+'А\Аннотация.htm');
      end;
  17:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Аноним.htm');
      end;
  18:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Анонс.htm');
      end;
  19:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Антигерой.htm');
      end;
  20: begin
          WebBrowser1.Navigate(ProgramPath+'А\Антитеза.htm');
      end;
  21:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Антиутопия.htm');
      end;
  22:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Антология.htm');
      end;
  23:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Архаизм.htm');
      end;
  24: begin
          WebBrowser1.Navigate(ProgramPath+'А\Архетип.htm');
      end;
  25:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Архитектоника.htm');
      end;
  26:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Ассонанс.htm');
      end;
  27:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Ассоциативный образ.htm');
      end;
  28: begin
          WebBrowser1.Navigate(ProgramPath+'А\Атрибуция.htm');
      end;
  29:  begin
          WebBrowser1.Navigate(ProgramPath+'А\Афоризм.htm');
      end;
  31:  begin
          WebBrowser1.Navigate(ProgramPath+'Б\Баллада.htm');
      end;
  32:  begin
          WebBrowser1.Navigate(ProgramPath+'Б\Барокко.htm');
      end;
  33: begin
          WebBrowser1.Navigate(ProgramPath+'Б\Басня.htm');
      end;
end;
end;
Blood_ghosT вне форума Ответить с цитированием
Старый 08.12.2014, 20:06   #2
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

1. массив
Код:
const
  url:array[1..33] of string=('А\Автобиография.htm',...);
procedure TBooks.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
   WebBrowser1.Navigate(ProgramPath+url[Node.AbsoluteIndex]);
end;
2. файл + TStringList;
Код:
procedure TBooks.TreeView1Change(Sender: TObject; Node: TTreeNode);
var url:TStringList;
begin
  url:=TStringList.Create;
  try
    url.LoadFromFile(ProgramPath+'urls.txt');
    WebBrowser1.Navigate(ProgramPath+url[Node.AbsoluteIndex]);
  finally
    url.Free;
  end;
end;
не забываем про проверки диапазонов
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 08.12.2014, 20:08   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Вот так, например
Код:
procedure TBooks.TreeView1Change(Sender: TObject; Node: TTreeNode);
const NAZWAN:array[1..33]of string=('А\Автобиография.htm','А\Автор.htm',   и т.д. );
begin
  WebBrowser1.Navigate(ProgramPath+NAZWAN[Node.AbsoluteIndex]);
end;
А можно не константный массив, а загружать из файла.

PS Кстати, зачем у вас куча этихbegin .. end, вокруг единственного оператора ?
type_Oleg вне форума Ответить с цитированием
Старый 08.12.2014, 20:15   #4
Blood_ghosT
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 92
По умолчанию

всем спасибо!
Цитата:
Сообщение от type_Oleg Посмотреть сообщение
загружать из файла.
А на примере автобиографии не покажете?
и bеgin и end не знаю!Работает и ладно! Тоже думал про файл? так как очень много файлов открывать! и была проблема к присваиванию к подузлам хтмл файлов решил так сделать как сделал!
Blood_ghosT вне форума Ответить с цитированием
Старый 08.12.2014, 20:22   #5
Blood_ghosT
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 92
По умолчанию

Цитата:
Сообщение от Slym Посмотреть сообщение
1. массив
Код:
const
  url:array[1..33] of string=('А\Автобиография.htm',...);
procedure TBooks.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
   WebBrowser1.Navigate(ProgramPath+url[Node.AbsoluteIndex]);
end;
2. файл + TStringList;
Код:
procedure TBooks.TreeView1Change(Sender: TObject; Node: TTreeNode);
var url:TStringList;
begin
  url:=TStringList.Create;
  try
    url.LoadFromFile(ProgramPath+'urls.txt');
    WebBrowser1.Navigate(ProgramPath+url[Node.AbsoluteIndex]);
  finally
    url.Free;
  end;
end;
не забываем про проверки диапазонов
через массив тоже отличная идея но программно все равно большой код! так как от а до я и не везде 2-5 хтмл файла бывает и больше! все равно придется прописывать каждую букву и каждое определение!да? понятно!
Спасибо!
Blood_ghosT вне форума Ответить с цитированием
Старый 08.12.2014, 20:35   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Цитата:
Сообщение от Blood_ghosT Посмотреть сообщение
.. и bеgin и end не знаю!Работает и ладно!
bеgin и end - это операторные скобки, применяются когда вместо 1 оператора надо вставить 2,3 и более.
А в вашем случае получается что-то вроде
(2)+(3)-(1), когда можно просто
2+3-1
type_Oleg вне форума Ответить с цитированием
Старый 08.12.2014, 21:13   #7
Blood_ghosT
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 92
По умолчанию

а не подскажите как правильно установить urls в txt!
1:А\Автобиография.htm'
2:А\Автор.htm'

так или как то по другому!??
Blood_ghosT вне форума Ответить с цитированием
Старый 08.12.2014, 21:46   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Что за идея с массивами?
Хранить в Node.Data указатель на некий TBookPageInfo где есть ссылка на страницу, не?
Человек_Борща вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите пожалуйста как конвентировать из Pointer в char Nata Golden rose Общие вопросы C/C++ 3 17.05.2014 22:29
Подскажите пожалуйста, как дорешать задачку! Mashutik25 Помощь студентам 0 30.10.2009 22:26
Подскажите как решить, пожалуйста Dimon4ic Паскаль, Turbo Pascal, PascalABC.NET 0 10.06.2009 20:17
Подскажите пожалуйста, как выразить x в степени n? Dimanw92 Паскаль, Turbo Pascal, PascalABC.NET 6 03.10.2008 10:47
Подскажите пожалуйста новичку в С++ как написать программку saratovalex Помощь студентам 3 21.08.2008 11:06