[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. HyperOne

    HyperOne New Member

    Joined:
    23 Nov 2010
    Messages:
    44
    Likes Received:
    4
    Reputations:
    3
  2. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    Чего? Как пользоваться WinAPI или как добавлять элемент в ListView? Можно приложить минимум(больше тут не нужно) усилий и получить результат, или ждать примера.
     
    1 person likes this.
  3. HyperOne

    HyperOne New Member

    Joined:
    23 Nov 2010
    Messages:
    44
    Likes Received:
    4
    Reputations:
    3
    В общем, получилось выводить иконку только одного файла.
    Т.е. первый файл загружается в ListView нормально, с иконкой.
    Но если загрузить еще несколько файлов - у них выводиться иконка первого файла. Вот код:

    Code:
    procedure TForm11.addClick(Sender: TObject);
    var
      ListItem : TListItem;
      shinfo    : SHFILEINFO;
        ico       : TIcon;
    begin
    if dlgOpen1.Execute then
    begin
      ListItem:= lv1.Items.Add;
      ListItem.Caption := ExtractFileName(dlgopen1.FileName);
      ListItem.SubItems.Add(dlgopen1.FileName);
    
      SHGetFileInfo(PChar(dlgopen1.FileName), 0, shinfo, SizeOf(shinfo), SHGFI_ICON or SHGFI_SMALLICON);
      ico := TIcon.Create;
      ico.Handle := shinfo.hIcon;
      il1.AddIcon(ico);
      ico.Free;
    
    end;
    end;
    
    
    
    dlgOpen1 - это TOpenDialog
    lv1 - это TListView
    li1 - это TImageList

    Как подправить этот код, чтобы ДЛЯ КАЖДОГО файла в ListView выводилась своя иконка?
     
    #9423 HyperOne, 14 May 2013
    Last edited: 14 May 2013
  4. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    il1.AddIcon(ico);
    Что такое il1? Массив с иконками?
     
  5. HyperOne

    HyperOne New Member

    Joined:
    23 Nov 2010
    Messages:
    44
    Likes Received:
    4
    Reputations:
    3
    да, это TImageList
     
  6. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Я с дельфи не знаком, но исходя из того что ты написал, ты ссылаешься постоянно на первый элемент массива il1[0] вот отсюда то и одинаковые иконки у всех приложений. Посмотри то место, где ты непосредственно присваеваешь иконку новому эелементу. На c# это либо в xaml задается, либо при присваевании эелемента elementName[2].Icon = ItemsCollection[ItemsCollection.Count-1];
    Это псевдо пример кода.
     
  7. Sifon110

    Sifon110 New Member

    Joined:
    13 Mar 2011
    Messages:
    34
    Likes Received:
    1
    Reputations:
    0
    Создаю динамически компонент TRichedit:

    Code:
     rich:=Trichedit.Create(Form1);
     with rich do
      begin
       Width:=490;
       height:=337;
       parent:=Form1;
      end;
    
    Далее в потоке получаю адрес созданного компонента и присваиваю указателю:

    Code:
    p4:=@rich;
    
    Далее работаю с компонентом в потоке:

    Code:
    p4^.SelStart := d;
    p4^.SelLength := length(name); 
    p4^.SelAttributes.Style:=[fsbold];
    d:=length(p4^.text);
    
    if name=id then
     p4^.SelAttributes.Color := clRed
    else
     p4^.SelAttributes.Color := clBlue;
    
    Без вот этих двух строчек все нормально работает, но с ними происходит крит. ошибка и компонент чудесным образом исчезает на форме, подскажите пожалуйста, в чем может быть проблема:
    p4^.SelStart := d;
    p4^.SelLength := length(name);
     
  8. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    Почитай про потоки. И про объекты.
    1) незачем делать указатель т.к. rich это УЖЕ УКАЗАТЕЛЬ на объект типа TRichEdit
    2) НЕЛЬЗЯ (вообще никак ни капельки) дергать ВИЗУАЛЬНЫЕ КОМПОНЕНТЫ из потоков БЛЯТЬ!
    3) Если все-таки нужно из потока обращатся к визуальным компонентам - шли им сообщения.
     
    1 person likes this.
  9. TopRus

    TopRus New Member

    Joined:
    15 May 2011
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    От чего же прям так Никак нельзя.. а Synchronize() не вариант разве?

    Так что, народ.. ни кто не пользует что ли Chromium Embedded?
    Может тогда кто знает от куда скачать для ХЕ3 кроме как того как от сюда..
    dcef3.googlecode.com/svn-history/r29/trunk/src/
    а то тут очистка истории и работа со скриптами походу убрана.
     
  10. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    Да, сорри, по поводу синхронайза забыл... давно уже не использую стандартные потоки Delphi.
     
  11. Sifon110

    Sifon110 New Member

    Joined:
    13 Mar 2011
    Messages:
    34
    Likes Received:
    1
    Reputations:
    0
    Code:
    type
     mass = array [1..10,1..10] of string;
    var
     pole_comp, pole_user, pole_comp_2: mass;
    
    Выдает ошибку too many parameters на строке pole_comp, pole_user, pole_comp_2: mass;

    А если оставить только две переменных, то все нормлаьно. Подскажите пожалуйста, в чем может быть проблема.
     
  12. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    выложи весь код, так как именно в данном участке ошибок нету, скорее всего допустил где-то в другом месте (ранее)
     
    #9432 qw1mb1, 18 May 2013
    Last edited: 18 May 2013
  13. HyperOne

    HyperOne New Member

    Joined:
    23 Nov 2010
    Messages:
    44
    Likes Received:
    4
    Reputations:
    3
    Подскажите, как подсчитать количество строк в ListView во втором столбце?
     
  14. Dragon71421

    Dragon71421 New Member

    Joined:
    10 Oct 2012
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Ты попробуй too many parameters перевести на русский, сразу все станет ясно :D
     
  15. Diamantx

    Diamantx New Member

    Joined:
    17 Feb 2012
    Messages:
    64
    Likes Received:
    1
    Reputations:
    0
    Есть один php скрипт. При нажатии на кнопку, он берет из текстового поля строки и отправляет следующий post-запрос:

    [​IMG]

    Как видно на скрине, параметр domains имеен многострочный value.

    В моей программе есть StringList со списком значений. Как значению domains приравнять этот список (чтобы он тоже был многострочный)?
     
  16. FunOfGun

    FunOfGun Elder - Старейшина

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    72
    Reputations:
    124
    var TempStr: String;
    var StrList: TStringList;

    TempStr := StrList.Text;
     
  17. trawolta7

    trawolta7 New Member

    Joined:
    26 Jun 2013
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    [​IMG]

    Нужно разрешить доступ к скайпу, но никак не могу получить хэндл этой кнопки. пока временно сделал вариант клика по ее координатам (вычисляются относительно панели этой коричневой, ее хэндл без проблем получается), но выявилась проблема: если запускать софт на сервере, то при отключении рдп, клика не происходит. Если кто сталкивался, как можно решить проблему?
     
    #9437 trawolta7, 30 Jun 2013
    Last edited: 30 Jun 2013
  18. winlogon.exe

    winlogon.exe Active Member

    Joined:
    5 Jun 2009
    Messages:
    31
    Likes Received:
    129
    Reputations:
    13
    Выскакивает ошибка socket error #0 при indy пост запросе на https в delphi 2010 - решаемо? что предложите? sslhandler подключен. Ошибка вылетает после первого запроса, то есть на второй.
     
    #9438 winlogon.exe, 8 Jul 2013
    Last edited: 8 Jul 2013
  19. Protocoler

    Protocoler Elder - Старейшина

    Joined:
    10 Oct 2012
    Messages:
    51
    Likes Received:
    54
    Reputations:
    81
    DLL для OpenSSL есть ?

    Handle.Redirects в true стоит ?
     
  20. winlogon.exe

    winlogon.exe Active Member

    Joined:
    5 Jun 2009
    Messages:
    31
    Likes Received:
    129
    Reputations:
    13
    да, поставил делфи xe4 и проблема решена.
     
Thread Status:
Not open for further replies.