Виртуальная библиотека Delphi - [91]

Шрифт
Интервал

> EndPlace.x := X;

> EndPlace.y := Y;

> DrawFocusRect(Form1.Canvas.Handle,MakeRect(StartPlace,EndPlace));

> Capturing := true;

> Captured := true;

> end;


>procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

>begin

> if Capturing then begin

>  DrawFocusRect(Form1.Canvas.Handle,MakeRect(StartPlace,EndPlace));

>  EndPlace.x := X;

>  EndPlace.y := Y;

>  DrawFocusRect(Form1.Canvas.Handle,MakeRect(StartPlace,EndPlace));

> end;

>end;


>procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

>begin

> Capturing := false;

>end;


Вопрос:

Можно ли использовать иконку как картинку на кнопке TSpeedButton?

Ответ:

Можно.

См. пример.

Пример:

>uses ShellApi;


>procedure TForm1.FormShow(Sender: TObject);

>var Icon: TIcon;

>begin

> Icon := TIcon.Create;

> Icon.Handle := ExtractIcon(0,'C:\WINDOWS\NOTEPAD.EXE',1);

> SpeedButton1.Glyph.Width := Icon.Width;

> SpeedButton1.Glyph.Height := Icon.Height;

> SpeedButton1.Glyph.Canvas.Draw(0, 0, Icon);

> Icon.Free;

>end;


Вопрос:

Как поместить прозрачную фоновую каринку на компонент CoolBar?

Ответ:

>procedure TForm1.Button1Click(Sender: TObject);

>var

> Bm1 : TBitmap;

> Bm2 : TBitmap;

>begin

> Bm1 := TBitmap.Create;

> Bm2 := TBitmap.Create;

> Bm1.LoadFromFile('c:\download\test.bmp');

> Bm2.Width := Bm1.Width;

> Bm2.Height := Bm1.Height;

> bm2.Canvas.Brush.Color := CoolBar1.Color;

> bm2.Canvas.BrushCopy(Rect(0, 0, bm2.Width, bm2.Height), Bm1, Rect(0, 0, Bm1.width, Bm1.Height), ClWhite);

> bm1.Free;

> CoolBar1.Bitmap.Assign(bm2);

> bm2.Free;

>end;


Вопрос:

Ползунок компонента TScrollBar все время мигает. Как это отключить?

Ответ:

Установите свойтсво ScrollBar.TabStop в False.


Вопрос:

Как программно перевести DBgrid в реим редактирования и установить курсор в окошке редактирования в требуемую позицию?

Ответ:

Переведите таблицу в режим редактирования, затем получите дескриптор (handle) окна редактирования и перешлите ей сообщение EM_SETSEL. В качестве параметров вы должны переслать начальную позицию курсора, и конечную позицию, определяющую конец выделения текста цветом. В приведенном примере курсор помещается во вторую позицию, текст внутри ячейки не выделяется.

Пример:

>procedure TForm1.Button1Click(Sender: TObject);

>var h : THandle;

>begin

> Application.ProcessMessages;

> DbGrid1.SetFocus;

> DbGrid1.EditorMode := true;

> Application.ProcessMessages;

> h:= Windows.GetFocus;

> SendMessage(h, EM_SETSEL, 2, 2);

>end;


Вопрос:

Как поместить курсор в определенную позицию edit'а и подобных ему элементов управления?

Ответ:

Можно использовать методы Delphi SelStart() и SelectLength().

Пример:

>procedure TForm1.Button1Click(Sender: TObject);

>begin

> Edit1.SetFocus;

> {переводим курсор во вторую позицию}

> Edit1.SelStart := 2;

> {не выделяем никакого текста}

> Edit1.SelLength := 0;

>end;


Вопрос:

Как среагировать на минимизацию-максимизацию формы перед тем как произойдет изменение размера формы?

Ответ:

В примере перехватывается сообщение WM_SYSCOMMAND. Если это сообщение говорит о минимизации или максимизации формы — пищит динамик.

Пример:

>type TForm1 = class(TForm)

>private

> {Private declarations}

> procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;

>public

> {Public declarations}

>end;


>var Form1: TForm1;


>implementation

>{$R *.DFM}


>procedure TForm1.WMSysCommand;

>begin

> if (Msg.CmdType = SC_MINIMIZE) or (Msg.CmdType = SC_MAXIMIZE) then MessageBeep(0)

> else inherited;

>end;


Вопрос:

Можно ли сделать так — одна форма показывает другую и остается позади нее, но фокус ввода не переходит к новой форме, а остается у старой?

Ответ:

В примере показывается не автосоздаваемая (non auto-created) форма, но фокус ввода ей не передается.

Пример:

>uses Unit2;


>procedure TForm1.Button1Click(Sender: TObject);

>begin

> Form2 := TForm2.Create(Application);

> Form2.Visible := FALSE;

> ShowWindow(Form2.Handle, SW_SHOWNA);

>end;


Вопрос:

На некоторых laptop компьютерах может не быть флоппи дисковода. Можно ли удалять из списка TDriveComboBox диски которые отключены?

Ответ:

В примере TDriveComboBox не показывает дисководы, которые не готовы. (not ready). Учтите что на многих компьютерах будет ощутимая задержка при поверке plug&play флоппи дисковода.

Пример:

>procedure TForm1.FormCreate(Sender: TObject);

>var

> i : integer;

> OldErrorMode : Word;

> OldDirectory : string;

>begin

> OldErrorMode := SetErrorMode(SEM_NOOPENFILEERRORBOX);

> GetDir(0, OldDirectory);

> i := 0;

> while i <= DriveComboBox1.Items.Count - 1 do begin

>  {$I-}

>  ChDir(DriveComboBox1.Items[i][1] + ':\');

>  {$I+}

>  if IoResult <> 0 then DriveComboBox1.Items.Delete(i)

>  else inc(i);

> end;

> ChDir(OldDirectory);

> SetErrorMode(OldErrorMode);

>end;


Вопрос:

Как сообщить всем формам моего приложения (в том числе и не видимым в данный момент) об изменении каких-то глобальных значений?

Ответ:

Один из способов — создать пользовательское сообщение и использовать метод preform чтобы разослать его всем формам из массива Screen.Forms.

Пример:

>{Code for Unit1}

>const UM_MyGlobalMessage = WM_USER + 1;

>type TForm1 = class(TForm)

> Label1: TLabel;

> Button1: TButton;

> procedure FormShow(Sender: TObject);

> procedure Button1Click(Sender: TObject);

>private


Еще от автора Неизвестный Автор
Галчонок

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Призраки ночи

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


Закат  вечности

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


mmmavro.org | День 131, Победа

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Песнь о Нибелунгах

…«Песнь о Нибелунгах» принадлежит к числу наиболее известных эпических произведений человечества. Она находится в кругу таких творений, как поэмы Гомера и «Песнь о Роланде», «Слово о полку Игореве» и «Божественная комедия» Данте — если оставаться в пределе европейских литератур…В. Г. Адмони.


mmmavro.org | День 132, Поэт

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Рекомендуем почитать
Графика DirectX в Delphi

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Вторая жизнь старых компьютеров

Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.


DirectX 8. Начинаем работу с DirectX Graphics

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.