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

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

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

    Sadman701 Гость

    Делаю так:
    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 Гость

    Ну у меня твой код не компиляется ...

    Вот на выбор тебе два варианта на чистом 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 Гость

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

    Barmutik Гость

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

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

    Sadman701 Гость

    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 Гость

    GetMem - не освобождает .. а выделяет ...

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

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

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

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

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

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