Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2011, 17:51   #1
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
Вопрос Вывод текста который всегда первый по z оси

Как средствами Delphi вывести текст как в нижней части этого скрина(отображение громкости)? Он выводится поверх абсолютно всех окон что крайне удобно в некоторых случаях.
Заранее спасибо за любую информацию по этому делу(очень помогло бы даже слово используя которое я смогу погуглить по этой теме т.к. сейчас я даже не знаю что искать).

Crystallon вне форума Ответить с цитированием
Старый 28.09.2011, 20:53   #2
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var WND : HWND;
    DC  : HDC;
begin
  WND:= FindWindow(nil, '0.jpeg - Программа просмотра изображений и факсов');
  if Wnd<>0 then
  begin
    DC:= GetDC(Wnd);
    windows.TextOut(DC, 100, 100, PCHar(Edit1.Text), LenGth(Edit1.Text));
    ReleaseDC(Wnd, DC);
  end;
end;
Результат
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 28.09.2011, 21:53   #3
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию

Что-то не фурычит =\ как только не извращался над этой textout...

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
WND:HWND;
DC:HDC;
res_text:LongBool;
res_text2:string;
begin
  WND:= FindWindow(nil, '1.jpg - Средство просмотра фотографий Windows');
  if Wnd<>0 then
  begin
    GP_str_log:=GP_str_log+'Окно найдено...'+#13#10;
    DC:= GetDC(Wnd);
    res_text:=windows.TextOut(DC, 200, 200, PCHar(Edit3.Text), LenGth(Edit3.Text));
    if res_text <> false then res_text2:='Успешно' else res_text2:='Не успешно';
    GP_str_log:=GP_str_log+'Результат: '+res_text2+#13#10;
    ReleaseDC(Wnd, DC);
  end;
end;
В лог выводится:
Цитата:
Окно найдено...
Успешно
Т.е. вроде как все зашибись, текст должен появится но увы его нет =\

P.S. А этот текст можно как-то запилить без фона(т.е. с прозрачным фоном)?
Crystallon вне форума Ответить с цитированием
Старый 28.09.2011, 22:34   #4
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Эмм... что то подсказывает, что через DirectX надо делать... ибо в линейке изображение дерикцивое...
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Старый 28.09.2011, 23:12   #5
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию

Похоже что так и есть...

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
ScreenDC:HDC;
rct:TRect;
begin
ScreenDC:= GetDC(0);
SetTextColor(ScreenDC,RGB(0,255,0));
SelectObject(ScreenDC, createfont(30,30, 0, 0, FW_SEMIBOLD, 0, 0, 0, DEFAULT_CHARSET, 0, 0, 1, 0, 'Arial'));
rct.Left:=500;
rct.Top:=500;
SetBkMode(ScreenDC, Transparent);
DrawText(ScreenDC, 'Hellow, world!', LenGth('Hellow, world!'), rct, DT_WORDBREAK);
end;
Эта процедура выводит текст в дексриптор экрана(т.е. как я и хотел поверх всех окон), вот только если его задевает какое-то окно он стирается, как следствие в л2 содержимое окна меняется постоянно и текст стирается только успев появится...
С директрисой работать не умею совершенно =\
Crystallon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка матриц.В каждой строке матрицы найти первый минимальный и первый максимальный элементы и поменя ride013 Помощь студентам 4 20.04.2011 13:14
Помогите с написанием макроса для Word,который преобразует кодировку текста из указанной в указанную Сотников Роман Помощь студентам 6 30.05.2009 18:34
Всегда позади и всегда впереди в одном приложении Legat Win Api 4 27.10.2007 15:48