Запись файлов в ListBox

Тема в разделе "Delphi - Система", создана пользователем Sadman701, 30 сен 2004.

Статус темы:
Закрыта.
  1. Sadman701

    Sadman701 Гость

    Репутация:
    0
    Делаю так:
    var
    PC:Char
    IDDtex,IDC_STATIC1: Integer;
    ************************************************************
    begin
    GetMem(PC, 100);
    GetDlgItemText(LSB1, IDDtex, PC, 100);
    DlgDirList(LSB1,Pchar('C:\'),GetDlgCtrlID(LSB1),GetDlgCtrlID(IDDtex), faAnyFile);
    FreeMem(PC);
    В чем ошибка?
     
  2. Barmutik

    Barmutik Гость

    Репутация:
    0
    Ну у меня твой код не компиляется ...

    Вот на выбор тебе два варианта на чистом API:

    Код (Text):
    var
    APath: PChar;
    begin
    APath := StrAlloc(100);
    APath := 'C:\*.*';
    DlgDirList(Form1.Handle, APath, LSB1.Handle, 0, DDL_READWRITE or DDL_DIRECTORY);
    StrDispose(APath);
    end;
    или совсем просто

    Код (Text):
    SendMessage(LSB1.Handle, LB_DIR, DDL_READWRITE + DDL_DIRECTORY, Integer(PChar('c:\*.*')));
     
  3. Sadman701

    Sadman701 Гость

    Репутация:
    0
    На чистом AIP ,Form1.Handle не покатит, компилятор ругается на .Handle
     
  4. Barmutik

    Barmutik Гость

    Репутация:
    0
    Ага... тут я не подумал ... тогда расскажи полнее что ты делаеш ?

    Кто такой твой LSB1 ? Я просто резонно предположил что это TListBox... если нет то раскажи подробнее
     
  5. Sadman701

    Sadman701 Гость

    Репутация:
    0
    GetMem(PC, 100);- освобождает память под PC;
    GetDlgItemText(LSB1, IDDtex, PC, 100); - Считывает текст оpгана упpавления в IDDtex
    DlgDirList(
    LSB1, - хэндл лист бокса
    Pchar('C:\'), - директория
    GetDlgCtrlID(LSB1),- возвращает идентификатоp оpгана упpавления блока списка
    GetDlgCtrlID(IDDtex), - возвращает статический текстовый идентификатоp оpгана упpавления
    faAnyFile, - тип файла
    );
    FreeMem(PC);
     
  6. Barmutik

    Barmutik Гость

    Репутация:
    0
    GetMem - не освобождает .. а выделяет ...

    Но я не про это .. Откуда ты берёш LSB1? Почитай внимательно описание функции... в смысле что передаётся каким параметром .. почему ты первым передёш хэндл листбокса? Должен был хэндл диалога Вот вторых вторым параметром должна передоваться переменная .. т.к данная функция изменяет её.. почитай опять же хелп... Третьим параметром просто хэндл листбокса куда, четвёртым хэндл статического контрола .. если 0 то не учитывается.

    И в конце что за faAnyFile ? Почитай набор возможных парметров которые передаётся последним параметром!

    Ну так и напиши тогда так ...

    Код (Text):
    DlgDirList(???, APath, LSB1, 0, DDL_READWRITE or DDL_DIRECTORY);

    Где ??? - хэндл диалога где лежит твой листбокс
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей