информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаСтрашный баг в WindowsГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Благодарю. И, если не возражаете, ещё один вопрос: 02.11.04 01:36  Число просмотров: 2759
Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
Отредактировано 02.11.04 01:37  Количество правок: 1
<"чистая" ссылка>
Благодарю. И, если не возражаете, ещё один вопрос:
Как получить значение указанной строки из ListBox в переменную типа string?
<programming>
[Delphi] работа с файлами в директории 01.11.04 08:21  
Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
<"чистая" ссылка>
Два вопроса по этой теме:
1. как с каждым файлом из указанной директории сделать одни и те же действия?
2. как сделать диалог выбора директории (на закладке Dialogs такого нет, обычный OpenDialog не пашет)?
[Delphi] Я дарю его тебе ;-) 01.11.04 09:35  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
> Два вопроса по этой теме:
> 1. как с каждым файлом из указанной директории сделать одни
> и те же действия?
Юзай Win32API... FindFirstFile() - FindNextFile() - FindClose()

> 2. как сделать диалог выбора директории (на закладке
> Dialogs такого нет, обычный OpenDialog не пашет)?
Дарю тебе целый Unit. Надеюсь, разберёшься... Можешь потом использовать его в любой из своих программ.
unit SHBrowseFolder;
interface
Uses Windows, SysUtils;


  Function BrowseFolder(aWndOwner: THandle; aTitle: String; FromPath: String = ''): String;

implementation
Uses ActiveX, ShlObj;
Var fSHMalloc: IMalloc = Nil;

    Function BrowseCallbackProc(ahwnd: HWND; uMsg: UINT; alParam, lpData: LPARAM): integer; StdCall;
    Begin
      If uMsg = BFFM_INITIALIZED Then
        PostMessage(ahwnd, BFFM_SETSELECTION, DWORD(True), DWORD(lpData));
      Result := 0;
    End;
  Function BrowseFolder(aWndOwner: THandle; aTitle: String; FromPath: String = ''): String;
  Var
    anInfo: TBrowseInfo;
    aResult: PItemIDList;
  Begin
    ZeroMemory(@anInfo, SizeOf(anInfo));
    anInfo.hwndOwner := aWndOwner;
    anInfo.lpszTitle := PChar(aTitle);
    anInfo.ulFlags := BIF_RETURNONLYFSDIRS;
    If FromPath <> '' Then
    Begin
      anInfo.lpfn := @BrowseCallbackProc;
      anInfo.lParam := DWORD(PChar(FromPath));
    End;
    aResult := SHBrowseForFolder(anInfo);
    If aResult = Nil Then Abort;
    Try
      SetLength(Result, MAX_PATH);
      Win32Check(SHGetPathFromIDList(aResult, PChar(Result)));
      SetLength(Result, StrLen(PChar(Result)));
    Finally
      fSHMalloc.Free(aResult);
    End;
  End;



Initialization
  Win32Check(SHGetMalloc(fSHMalloc) = NOERROR);

Finalization
  If fSHMalloc <> Nil Then
    fSHMalloc._Release;
end.

---
За подарок спасибо, только такой вопрос: 01.11.04 14:22  
Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
Отредактировано 01.11.04 15:37  Количество правок: 1
<"чистая" ссылка>
За подарок спасибо, только такой вопрос:
> Юзай Win32API... FindFirstFile() - FindNextFile() -
> FindClose()
есть ли альтернативный вариант? просто получить список файлов в директории и с каждым из них проделать одинаковые действия?
ах да, и ещё кое-что, как загнать сразу несколько файлов из OpenDialog'a (в смысле, в OpenDialog выбрать несколько файлов) в ListBox?
«А можно ли получить список файлов без программирования»? Нет, нельзя ;-) Ведь надо хотя бы изъявить о своём желании ;-) 01.11.04 17:10  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 01.11.04 17:12  Количество правок: 1
<"чистая" ссылка>
> OpenDialog'a (в смысле, в OpenDialog выбрать несколько
> файлов) в ListBox?
Можно. Примерно так.
procedure TForm1.Button1Click(Sender: TObject);
Var
  aDial: TOpenDialog;
  anOptions: TOpenOptions;
begin
  aDial := TOpenDialog.Create(Self);
  Try
    anOptions := aDial.Options;
    Include(anOptions, ofAllowMultiSelect);
    aDial.Options := anOptions;
    If Not aDial.Execute Then Exit;
    ListBox1.Items.AddStrings(aDial.Files);
  Finally
    aDial.Free;
  End;
end;

---

Можно не создавать диалог динамически, а обращаться к тому, что положишь на форму. Принцип тот же. К тому же удобно настраивать опции диалога, сразу Object Inspector'ом.
Благодарю. И, если не возражаете, ещё один вопрос: 02.11.04 01:36  
Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
Отредактировано 02.11.04 01:37  Количество правок: 1
<"чистая" ссылка>
Благодарю. И, если не возражаете, ещё один вопрос:
Как получить значение указанной строки из ListBox в переменную типа string?
А ты справку почитать не пробовал??? 02.11.04 07:07  
Автор: J'JF <Dmytro Volhushyn> Статус: Elderman
<"чистая" ссылка>
> Благодарю. И, если не возражаете, ещё один вопрос:
> Как получить значение указанной строки из ListBox в
> переменную типа string?

var
MyString : AnsiString;
....
MyString := ListBox1.Items.Strings[i];
где i - номер строки в листбоксе.

<private>А вообще, после прочтения твоих вопросов, у меня складывается стойкое впечатление, что справочных руководств (да того же встроенного хелпа в делфю) ты не читаешь в принципе. Никогда.
Либо у тебя большие проблемы с английским (учите, молодой человек, учите непременно!) или вообще нет никаких способностей к программированию (во что очень не хочется верить).</private>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach