Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #166  
Старый 17.12.2012, 19:38
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Цитата:
Сообщение от NumLock
Код:
GetClientRect(hwnd, rct);
FillRect(dc, rct, GetStockObject(WHITE_BRUSH));
Не помогает.
Ответить с цитированием
  #167  
Старый 17.12.2012, 19:45
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

используй правильные контекст устройства и дестриптор окна - проверено, работает.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #168  
Старый 17.12.2012, 20:22
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

В этом же сообщении WM_ERASEBKGND, вместо WM_PAINT попробовал заливать фон - все норм.
Ответить с цитированием
  #169  
Старый 17.12.2012, 21:24
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

В WM_PAINT используй ps.hdc
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #170  
Старый 18.12.2012, 19:11
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Код:
WM_PAINT:
begin
  GetClientRect(Wnd, aRect);
  FillRect(PS.hdc, aRect, COLOR_BTNFACE);
end;
Не помогло.
---------------------
Сделал так:
Код:
WM_PAINT:
begin
  GetClientRect(Wnd, aRect);
  DC := BeginPaint(Wnd, PS);
  FillRect(PS.hdc, aRect, COLOR_BTNFACE);
  EndPaint(Wnd, PS);
end;
Все работает!

Последний раз редактировалось sariman, 18.12.2012 в 19:24.
Ответить с цитированием
  #171  
Старый 18.12.2012, 19:56
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Код:
ID_FULLPATH..ID_HIDEPATH:
CheckMenuRadioItem(Menu, ID_FULLPATH, ID_HIDEPATH, LOWORD(wParam), MF_BYCOMMAND);
Как я понял, эта процедура отвечает за радио-метки. Тут появился вопрос: как их обрабатывать? То есть в зависимости от выбранной радио-метки выполнять определенные действия?
Ответить с цитированием
  #172  
Старый 18.12.2012, 22:48
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Твоя беда в том, что не желаешь пользоваться справкой. Многие вопросы сразу бы отпали.

1. Этого достаточно
Код:
WM_PAINT:
begin
  BeginPaint(Wnd, PS);
  FillRect(PS.hdc, PS.rcPaint, GetSysColorBrush(COLOR_BTNFACE));
  EndPaint(Wnd, PS);
end;
2. 2..4 параметром указываются 3 параметра, первая радиокнопка, последняя и выставляемая.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
sariman (18.12.2012)
  #173  
Старый 18.12.2012, 23:13
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Справку я смотрю, правда не всегда там все бывает понятно.
Цитата:
2. 2..4 параметром указываются 3 параметра, первая радиокнопка, последняя и выставляемая.
Это я понял, я имею ввиду как в зависимости от состоянии элемента выполнять какие-либо действия?
Ответить с цитированием
  #174  
Старый 18.12.2012, 23:22
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Можешь после этой строки добавить
Код:
  case wParam of
    ID_FULLPATH : ; // действие
    ID_ONLYNAME : ; // действие
    ID_HIDEPATH : ; // действие
  end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
sariman (18.12.2012)
  #175  
Старый 19.12.2012, 22:15
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Спасибо, подскажите почему не работает процедура которая форматирует имена файлов плейлиста? Может я что-то не так делаю?:
Код:
procedure UpdatePlayListNames;
var
  I: Integer;
  FullPath, OnlyName,
  HidePath: string;
begin
  for I := 0 to LV_Count(PlayList) - 1 do
  begin
    FullPath := LV_GetItemText(PlayList, I, 1);
    OnlyName := ChangeFileExt(ExtractFileName(LV_GetItemText(PlayList, I, 1)), '');
    HidePath := ExtractFileName(LV_GetItemText(PlayList, I, 1));
    case ViewType of
      1: LV_SetItemText(PlayList, I, 1, FullPath);
      2: LV_SetItemText(PlayList, I, 1, OnlyName);
      3: LV_SetItemText(PlayList, I, 1, HidePath)
    end
  end
end;
Ответить с цитированием
  #176  
Старый 19.12.2012, 22:58
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Вот теперь представь логику работы данной процедуры. Получил OnlyName и присвоил ListView. Как в следующий раз получить из короткого имени FullPath и как запустить на проигрывание не зная путь? ListView должен только отображать разные варианты имени файла, а хранится всё должно в другом месте, к примеру, в записи.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #177  
Старый 19.12.2012, 23:31
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Я это прекрасно понимаю, у меня будет StringList с полными путями к файлам, просто не понимаю почему не работает.
Ответить с цитированием
  #178  
Старый 19.12.2012, 23:34
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Здесь явных ошибок нет (не считая кривости алгоритма), смотри дальше.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #179  
Старый 19.12.2012, 23:48
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Чем кривоват этот алгоритм?
Ответить с цитированием
  #180  
Старый 19.12.2012, 23:55
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Смотри сам: в каждом цикле 3 раза идёт чтение строки из ListView, 3 раза преобразование этой строки.
Код:
procedure UpdatePlayListNames;
var
  I  : Integer;
  St : String;
begin
  for I := 0 to LV_Count(PlayList) - 1 do
  begin
    St := LV_GetItemText(PlayList, I, 1);
    case ViewType of
      1: LV_SetItemText(PlayList, I, 1, St);
      2: LV_SetItemText(PlayList, I, 1, ChangeFileExt(ExtractFileName(St), ''));
      3: LV_SetItemText(PlayList, I, 1, ExtractFileName(St));
    end;
  end;
end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
sariman (19.12.2012)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:58.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter