Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 058

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
У меня полностью прозрачная форма.Можно ли сделать так что бы пользователь мог перетаскивать окно программы ,ну например за отображаемый элемент, цифры ,показывающие время и т д?И второй вопрос-можно ли сделать ,что бы пользователь мог менять цвет шрифта?

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1. unit Clock1;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs,DateUtils, ExtCtrls, Buttons, StdCtrls, ComCtrls,MPLayer;
  8.  
  9. type
  10. TForm1 = class(TForm)
  11. Timer1: TTimer;
  12. Label1: TLabel;
  13. Label2: TLabel;
  14. Label3: TLabel;
  15. Label4: TLabel;
  16. Label5: TLabel;
  17. SpeedButton1: TSpeedButton;
  18. SpeedButton2: TSpeedButton;
  19. SpeedButton3: TSpeedButton;
  20. UpDown1: TUpDown;
  21. UpDown2: TUpDown;
  22. Label6: TLabel;
  23. Label7: TLabel;
  24. Label8: TLabel;
  25. MediaPlayer1: TMediaPlayer;
  26. ComboBox1: TComboBox;
  27. SpeedButton4: TSpeedButton;
  28. Label9: TLabel;
  29. procedure FormCreate(Sender: TObject);
  30. procedure Timer1Timer(Sender: TObject);
  31. procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
  32. procedure UpDown2Click(Sender: TObject; Button: TUDBtnType);
  33. procedure SpeedButton1Click(Sender: TObject);
  34. procedure SpeedButton2Click(Sender: TObject);
  35. procedure SpeedButton3Click(Sender: TObject);
  36. procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
  37. procedure SpeedButton4Click(Sender: TObject);
  38.  
  39.  
  40.  
  41. private
  42. { Private declarations }
  43. public
  44. { Public declarations }
  45. end;
  46.  
  47. var
  48. Form1: TForm1;
  49.  
  50. implementation
  51. uses Clock3;
  52.  
  53. {$R *.dfm}
  54.  
  55. var
  56. Hour,Min,Sec : word;
  57. Hour1,Min1 : word;
  58.  
  59.  
  60. procedure TForm1.FormCreate(Sender: TObject);
  61. begin
  62. SpeedButton4.Hide;
  63. Label9.Hide;
  64. ComboBox1.Hide;
  65. Label6.Hide;
  66. Label7.Hide;
  67. Label8.Hide;
  68. UpDown1.Hide;
  69. UpDown2.Hide;
  70. SpeedButton3.Hide;
  71. Hour := HourOf(Now);
  72. Min := MinuteOf(Now);
  73. Sec := SecondOf(Now);
  74. Form1.Color := clWhite;
  75. Form1.TransparentColorValue := clWhite;
  76. Form1.TransparentColor := True;
  77. Form1.BorderStyle := bsNone;
  78.  
  79. end;
  80.  
  81. procedure TForm1.Timer1Timer(Sender: TObject);
  82. var
  83. Hour,Min,Sec : word;
  84. n : string;
  85. Label
  86. bub;
  87. begin
  88. Timer1.Interval := 500;
  89. Hour := HourOf(Now);
  90. Min := MinuteOf(Now);
  91. Sec := SecondOf(Now);
  92.  
  93. if Label2.Visible
  94. then Label2.Visible := False
  95. else Label2.Visible := True;
  96. if Label4.Visible
  97. then Label4.Visible := False
  98. else Label4.Visible := True;
  99. if Hour < 10 then Label1.Caption := '0' + IntToStr(Hour)
  100. else Label1.Caption := IntToStr(Hour);
  101. if Min < 10 then Label3.Caption := '0' + IntToStr(Min)
  102. else Label3.Caption := IntToStr(Min);
  103. if Sec < 10 then Label5.Caption := '0' + IntToStr(Sec)
  104. else Label5.Caption := IntToStr(Sec);
  105. Hour1 := UpDown1.Position;
  106. Min1 := UpDown2.Position;
  107. if (Hour1 = HourOf(Now)) and (Min1 = MinuteOf(Now)) and (Sec < 1)
  108. then Form2.Show;
  109. if (Hour1 = HourOf(Now)) and (Min1 = MinuteOf(Now)) and (Sec < 1)
  110. then
  111. begin
  112. begin
  113. case ComboBox1.ItemIndex of
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129. end;
  130. if Length(ComboBox1.Text) = 0
  131. then goto bub
  132. else
  133. MediaPlayer1.FileName := n;
  134. MediaPlayer1.Open;
  135. MediaPlayer1.Play;
  136. bub :
  137. end;
  138.  
  139.  
  140. if Sec = 25
  141. then Form2.Hide;
  142. if Sec = 25
  143. then
  144. begin
  145. MediaPlayer1.Close;
  146.  
  147. end;
  148.  
  149.  
  150. end;
  151. end;
  152.  
  153. procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
  154. begin
  155. if Updown1.Position < 10
  156. then Label6.Caption := '0' + IntToStr(UpDown1.Position)
  157. else Label6.Caption := IntToStr(UpDown1.Position);
  158.  
  159. end;
  160.  
  161. procedure TForm1.UpDown2Click(Sender: TObject; Button: TUDBtnType);
  162. begin
  163. if Updown2.Position < 10
  164. then Label8.Caption := '0' + IntToStr(UpDown2.Position)
  165. else Label8.Caption := IntToStr(UpDown2.Position);
  166.  
  167.  
  168.  
  169. end;
  170.  
  171. procedure TForm1.SpeedButton2Click(Sender: TObject);
  172. begin
  173. SpeedButton4.Show;
  174. Label9.Show;
  175. Label6.Show;
  176. Label7.Show;
  177. Label8.Show;
  178. UpDown1.Show;
  179. UpDown2.Show;
  180. SpeedButton3.Show;
  181. ComboBox1.Show;
  182.  
  183. end;
  184.  
  185. procedure TForm1.SpeedButton3Click(Sender: TObject);
  186. begin
  187. SpeedButton4.Hide;
  188. Label9.Hide;
  189. Label6.Hide;
  190. Label7.Hide;
  191. Label8.Hide;
  192. UpDown1.Hide;
  193. UpDown2.Hide;
  194. SpeedButton3.Hide;
  195. SpeedButton3.Hide;
  196. ComboBox1.Hide;
  197. if Length(ComboBox1.Text) = 0
  198. then
  199.  
  200.  
  201. end;
  202.  
  203. procedure TForm1.SpeedButton1Click(Sender: TObject);
  204. begin
  205. Form1.Close;
  206. end;
  207.  
  208. procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
  209. begin
  210. Key := Chr(0);
  211. end;
  212.  
  213.  
  214. procedure TForm1.SpeedButton4Click(Sender: TObject);
  215. var
  216. m : string;
  217. Label
  218. bye;
  219. Label
  220. bob;
  221. begin
  222. begin
  223. case ComboBox1.ItemIndex of
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239. end;
  240. if Length(ComboBox1.Text) = 0
  241. then goto bye
  242. else
  243. MediaPlayer1.FileName := m;
  244. MediaPlayer1.Open;
  245. MediaPlayer1.Play;
  246. goto bob;
  247.  
  248. bye :
  249.  
  250.  
  251. bob :
  252. end;
  253. end;
  254. end.


igoriy Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: igoriy (статус: Посетитель)
Вопрос отправлен: 2 августа 2009, 15:16
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Создай единый обработчик OnMouseDown() для всех тех контролов на форме, за которые ты хочешь таскать форму мышью.

procedure TMainForm.ControlMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbLeft
    then begin
           ReleaseCapture();
           Self.Perform(WM_SYSCOMMAND, $F012, 0);
         end;
end;
Этот пример давно гуляет в интернете.
Если хочешь - посмотри мою программку (прицеляю к ответу).

Цитата:

можно ли сделать ,что бы пользователь мог менять цвет шрифта?


Можно. Разрешаю. Сделай.
К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 2 августа 2009, 15:30
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 20; последнее сообщение — 3 августа 2009, 08:14; участников в обсуждении: 2.
min@y™

min@y™ (статус: Доктор наук), 2 августа 2009, 15:35 [#1]:

Внимательно обнюхай мою программу.
Меню вызывается правой кнопкой мыши.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
igoriy

igoriy (статус: Посетитель), 2 августа 2009, 15:45 [#2]:

А енто я уже увидел - насчет как пользоваться-прикольно,а почему адская?Или я еще не все попробовал?
Кстати за "Можно. Разрешаю. Сделай." спасибо ,но мне бы в кодах как нибудь этот момент ,а то я еще в програмировании зеленый
min@y™

min@y™ (статус: Доктор наук), 2 августа 2009, 15:54 [#3]:

Ну создай форму, там кнопку с выбором цвета и всё. Хранить настройки можно в INI-файле, в реестре или как у меня - в XML.
Я ж тебе пример скинул, посмотри, как у меня там это дело организованио.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
igoriy

igoriy (статус: Посетитель), 2 августа 2009, 15:58 [#4]:

min@y™ спасибо ща маленько разбираться буду,а вот в первой части когда единый обработчик делать буду в uses кроме стандартного дополнительно ни чего не надо включать ?
min@y™

min@y™ (статус: Доктор наук), 2 августа 2009, 16:03 [#5]:

Цитата:


в uses кроме стандартного дополнительно ни чего не надо включать ?

Это смотря что у тебя там уже есть.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
igoriy

igoriy (статус: Посетитель), 2 августа 2009, 16:04 [#6]:

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,DateUtils, ExtCtrls, Buttons, StdCtrls, ComCtrls,MPLayer;
min@y™

min@y™ (статус: Доктор наук), 2 августа 2009, 16:09 [#7]:

Да не надо ничего. Ты попробуй, компилятор тебе сам скажет, если какой ахтунг.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
igoriy

igoriy (статус: Посетитель), 2 августа 2009, 16:14 [#8]:

Ну лады-спасибо выручил в очередной раз!!!Будем тренероваться дальше в познании программирования.
min@y™

min@y™ (статус: Доктор наук), 2 августа 2009, 16:34 [#9]:

"Спасибо" - это много. Достаточно пива.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
igoriy

igoriy (статус: Посетитель), 2 августа 2009, 16:36 [#10]:

Да легко был бы ты рядом
min@y™

min@y™ (статус: Доктор наук), 2 августа 2009, 17:35 [#11]:

Цитата:

Да легко был бы ты рядом

В наше время информационных технологий пиво очень запросто передаётся по интернету. Например, через WebMoney. :)
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
igoriy

igoriy (статус: Посетитель), 2 августа 2009, 17:46 [#12]:

Так это понятно(хотя не знаю твоего кошеля)Дело в том ,что для хорошего человека действительно не жалко но сейчас у меня 82 цента и это будет не по человечачи посылать эти копейки(могу прямо сейчас)а до ближайшего банкомата киллометра 2,5 пешочком т к не фига не Москва ,а вот ежли через недельку то ей богу не забуду только вот кошель напиши.
min@y™

min@y™ (статус: Доктор наук), 2 августа 2009, 18:04 [#13]:

Да не надо. Я, хоть и не в москве, но живу нормально. Пошутил я. На пиво хватает. Кстати, я только вернулся из магазина. С пивом. :)
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 2 августа 2009, 18:06 [#14]:

Кстати, в программе, которая прицеплена к ответу, я нашёл 2 бага. Я их исправил и могу выложить свежую версию.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
igoriy

igoriy (статус: Посетитель), 2 августа 2009, 18:08 [#15]:

Да я ведь правда от души.Сам второй год как бросил а вот скучаю и приятно когда другие пивко потягивают-попил я его родимого ведь почти 10 лет по общагам
igoriy

igoriy (статус: Посетитель), 2 августа 2009, 18:24 [#16]:

Давай-интересная програмка
min@y™

min@y™ (статус: Доктор наук), 2 августа 2009, 18:31 [#17]:

Ссылка.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 2 августа 2009, 18:34 [#18]:

Не, это старая версия.
Залезай ко мне в аську, поговорим.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
igoriy

igoriy (статус: Посетитель), 2 августа 2009, 19:07 [#19]:

А у тебя чего-аська то выключена?
min@y™

min@y™ (статус: Доктор наук), 3 августа 2009, 08:14 [#20]:

Теперь включена.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 ноября 2017, 08:36
Выполнено за 0.14 сек.
Рейтинг@Mail.ru