Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TOutLine.Вывод полного пути элемента схемы. 
:(
    Опции темы
NTL
Дата 12.3.2007, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 13.12.2006

Репутация: нет
Всего: нет



Помогите вывести полный путь элемента схемы.
Например, имеется ini-файл System. При раскрытии этого файла и нажатия на [driver32] должен вывести путь:C:\WINDOWS\System\[driver32].

Код

procedure TForm1.Button1Click(Sender: TObject);
var s:string;
  N,first,Last:word;
  TS:TStringList;
begin
with OpenDialog1 do
  if Execute then
   begin
    OutLine1.Clear;
    TS:=TStringList.Create;
    try
     TS.LoadFromFile(FileName);
     TS.Insert(0,ExtractFileName(FileName));
     for n:=TS.Count-1 downto 1 do
      begin
       s:=TS[N];
       First:=1;
       while (First<Length(s)) and((S[First]=' ')or
             (s[first]=#9)) do inc(first);
       Last:=Length(s);
       while (Last>=First) and((S[First]=' ')or
             (s[Last]=#9)) do Dec(Last);
       if last >=First then
        begin
         s:=Copy(s,First,Last-First+1);
         if (s[1]='[') and (s[length(s)]=']')
             then s:=#9+s
             else s:=#9#9+s;
         TS[N]:=s
        end
       else
        TS.Delete(N);
      end;
      OutLine1.Lines:=TS
       Finally
        TS.Free
    end
  end;

  label1.Caption:=;{полный путь элемента схемы}
end;


PM MAIL   Вверх
Yanis
Дата 12.3.2007, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Код
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
  N,first,Last:word;
  TS:TStringList;
begin
with OpenDialog1 do
  if Execute then
   begin
    OutLine1.Clear;
    TS:=TStringList.Create;
    try
     TS.LoadFromFile(FileName);
     TS.Insert(0,ExtractFileName(FileName));
     for n:=TS.Count-1 downto 1 do
      begin
       s:=TS[N];
       First:=1;
       while (First<Length(s)) and((S[First]=' ')or
             (s[first]=#9)) do inc(first);
       Last:=Length(s);
       while (Last>=First) and((S[First]=' ')or
             (s[Last]=#9)) do Dec(Last);
       if last >=First then
        begin
         s:=Copy(s,First,Last-First+1);
         if (s[1]='[') and (s[length(s)]=']')
             then s:=#9+s
             else s:=#9#9+s;
         TS[N]:=s
        end
       else
        TS.Delete(N);
      end;
      OutLine1.Lines:=TS;
      //sPath := ExtractFileDir(OpenDialog1.FileName);
      sPath := OpenDialog1.FileName;
       Finally
        TS.Free
    end
  end;

  label1.Caption:= ExtractFileDir(OpenDialog1.FileName);{полный путь элемента схемы}
end;


Код
procedure TForm1.Outline1Click(Sender: TObject);
begin
  if Outline1.SelectedItem >= 0 then
    if (Outline1.Items[Outline1.SelectedItem].Text[1] = '[') and
       (Outline1.Items[Outline1.SelectedItem].Text[Length(Outline1.Items[Outline1.SelectedItem].Text)] = ']') then
      Label1.Caption := sPath + ':' + Outline1.Items[Outline1.SelectedItem].Text
    else Label1.Caption := '';
end;



--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
NTL
Дата 12.3.2007, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 13.12.2006

Репутация: нет
Всего: нет



Это только для элементов схемы, которые обособлены кв. скобками. Вот пример след. файла:
Рез-т: C:\windows\system.ini: [drivers]: wave=mmdrv.dll

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  system.ini 0,23 Kb
PM MAIL   Вверх
Yanis
Дата 12.3.2007, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(NTL @  12.3.2007,  12:19 Найти цитируемый пост)
Это только для элементов схемы, которые обособлены кв. скобками

Разве не это требуется?
Что значит "схема", "элемент схемы"? Подмена понятий какая то...


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
NTL
Дата 16.3.2007, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 13.12.2006

Репутация: нет
Всего: нет



Вот так сделал я. Просто забыл отписаться  smile 
Код

procedure TForm1.Outline1Click(Sender: TObject);
var i,ind:integer;
    temp,z:string;
begin
label1.Caption:='';
for i:= 1 to OutLine1.ItemCount do
begin
    if (Outline1.Items[i].Text[1] = '[')and
       (Outline1.Items[i].Text[Length(Outline1.Items[i].Text)] = ']')   then
      begin
          z:='';
          z:='\ '+OutLine1.Items[i].Text;
          a[i]:= z;
      end
    else a[i]:= z+'\ '+OutLine1.Items[i].Text;
end;

ind:=OutLine1.SelectedItem;
label1.Caption:=OpenDialog1.FileName+a[ind];
end;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1068 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.