Виртуальная библиотека Delphi

Тут можно читать онлайн Виртуальная библиотека Delphi - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Виртуальная библиотека Delphi
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Виртуальная библиотека Delphi краткое содержание

Виртуальная библиотека Delphi - описание и краткое содержание, автор Неизвестный Автор, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Виртуальная библиотека Delphi - читать онлайн бесплатно полную версию (весь текст целиком)

Виртуальная библиотека Delphi - читать книгу онлайн бесплатно, автор Неизвестный Автор
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Вопрос:

Как во время выполнения определить поддерживает ли обьект заданное свойство?

Ответ:

function HasProperty(Obj : TObject; Prop : string) : PPropInfo;

begin

Result := GetPropInfo(Obj.ClassInfo, Prop);

end;

procedure TForm1.Button1Click(Sender: TObject);

var p : pointer;

begin

p := HasProperty(Button1, 'Color');

if p <> nil then SetOrdProp(Button1, p, clRed)

else ShowMessage('Button has no color property');

p := HasProperty(Label1, 'Color');

if p <> nil then SetOrdProp(Label1, p, clRed)

else ShowMessage('Label has no color property');

p := HasProperty(Label1.Font, 'Color');

if p <> nil then SetOrdProp(Label1.Font.Color, p, clBlue)

else ShowMessage('Label.Font has no color property');

end;

Вопрос:

Как при проигрывании музыки с Audio CD показывать сколько прошло минут и секунд?

Ответ:

В примере время выводится по таймеру.

Пример:

uses MMSystem;

procedure TForm1.Timer1Timer(Sender: TObject);

var

Trk : Word;

Min : Word;

Sec : Word;

begin

with MediaPlayer1 do begin

Trk := MCI_TMSF_TRACK(Position);

Min := MCI_TMSF_MINUTE(Position);

Sec := MCI_TMSF_SECOND(Position);

Label1.Caption := Format('%.2d',[Trk]);

Label2.Caption := Format('%.2d:%.2d',[Min,Sec]);

end;

end;

Вопрос:

Можно ли рисовать на рамке формы?

Ответ:

Обрабатывайте событие WM_NCPAINT. В примере рамка обводится красной линией толщиной в 1 пиксел.

Пример:

type TForm1 = class(TForm)

private

{Private declarations}

procedure WMNCPaint(var Msg : TWMNCPaint); message WM_NCPAINT;

public

{Public declarations}

end;

var Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMNCPaint(var Msg: TWMNCPaint);

var

dc : hDc;

Pen : hPen;

OldPen : hPen;

OldBrush : hBrush;

begin

inherited;

dc := GetWindowDC(Handle);

msg.Result := 1;

Pen := CreatePen(PS_SOLID, 1, RGB(255, 0, 0));

OldPen := SelectObject(dc, Pen);

OldBrush := SelectObject(dc, GetStockObject(NULL_BRUSH));

Rectangle(dc, 0,0, Form1.Width, Form1.Height);

SelectObject(dc, OldBrush);

SelectObject(dc, OldPen);

DeleteObject(Pen);

ReleaseDC(Handle, Canvas.Handle);

end;

Вопрос:

Как выполнить какой-то процесс тогда, когда пользователь не работает с моим приложением?

Ответ:

Создайте процедуру, которая будет вызываться при событии Application.OnIdle.

Обьявим процедуру:

{Private declarations}

procedure IdleEventHandler(Sender: TObject; var Done: Boolean);

В разделе implementation опишем процедуру:

procedure TForm1.IdleEventHandler(Sender: TObject; var Done: Boolean);

begin

{Do a small bit of work here}

Done := false;

end;

В методе Form'ы OnCreate — укажем что наша процедура вызывается на событии Application.OnIdle.

Application.OnIdle := IdleEventHandler;

Событие OnIdle возникает один раз — когда приложение переходит в режим "безделья" (idle). Если в обработчике переменной Done присвоить False событие будет вызываться вновь и вновь, до тех пор пока приложение "бездельничает" и переменной Done не присвоенно значение True.

Вопрос:

При перемещении фокуса ввода клавишей Tab чтобы переместить его в RadioGroup нужно нажать клавишу Tab дважды если какой нибудь пункт RadioGroup уже выбран, но только один раз если не выбран. Можно ли сделать поведение RadioGroup логичным?

Ответ:

Установка свойства RadioGroup'ы TabStop в false должна решить эту проблему — поскольку клавиша tab будет продолжать работать — перемещаясь сразу на выделенный пункт RadioGroup.

Вопрос:

Как разместить маленькие картинки в компоненте TPopUpMenu?

Ответ:

В приведенном примере показано как это сделать с использованием функции Windows API SetMenuItemBitmaps(). Эта функция получает handle popup menu, позицию строчки меню куда будет помещена картинка, и два дескриптора (handles) на две картинки (одна из них — картинка которая будет показана когда строка меню доступна, вторая — когда строка меню недоступна).

type TForm1 = class(TForm)

PopupMenu1: TPopupMenu;

Pop11: TMenuItem;

Pop21: TMenuItem;

Pop31: TMenuItem;

procedure FormCreate(Sender: TObject);

procedure FormDestroy(Sender: TObject);

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

private

{Private declarations}

bmUnChecked : TBitmap;

bmChecked : TBitmap;

public

{Public declarations}

end;

var Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

bmUnChecked := TBitmap.Create;

bmUnChecked.LoadFromFile('C:\Program Files\Borland\BitBtns\ALARMRNG.BMP');

bmChecked := TBitmap.Create;

bmChecked.LoadFromFile('C:\Program Files\Borland\BitBtns\CHECK.BMP');

{Add the bitmaps to the item at index 1 in PopUpMenu}

SetMenuItemBitmaps(PopUpMenu1.Handle,1,MF_BYPOSITION,BmUnChecked.Handle, BmChecked.Handle);

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

bmUnChecked.Free;

bmChecked.Free;

end;

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

var pt : TPoint;

begin

pt := ClientToScreen(Point(x, y));

PopUpMenu1.Popup(pt.x, pt.y);

end;

Вопрос:

Как узнать число кадров AVI файла, и выяснить как долго будет проигрываться этот файл?

Ответ:

В приведенном примере указано как получить эту информацию.

Пример:

procedure TForm1.Button1Click(Sender: TObject);

begin

MediaPlayer1.TimeFormat := tfFrames;

ShowMessage('Number of frames = ' + IntToStr(MediaPlayer1.Length));

MediaPlayer1.TimeFormat := tfMilliseconds;

ShowMessage('Number of milliseconds = ' + IntToStr(MediaPlayer1.Length));

end;

Вопрос:

Как изменить число фиксированных колонок в TDbGrid?

Пример:

procedure TForm1.Button1Click(Sender: TObject);

begin

TStringGrid(DbGrid1).FixedCols := 2;

end;

Вопрос:

Некоторые компоненты баз данных (и среди них TDBGrid) никак не меняют визуальных свойств, когда к ним отключен доступ (disabled). Как это изменить програмно?

Ответ:

Ниже приведен пример, меняющий цвет шрифта на clGray, когда доступ к элементу управления (в данном случае TDBGrid) запрещен (disabled).

procedure TForm1.Button1Click(Sender: TObject);

begin

DbGrid1.Enabled := false;

DbGrid1.Font.Color := clGray;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

DbGrid1.Enabled := true;

DbGrid1.Font.Color := clBlack;

end;

Вопрос:

Как определить нажаты ли клавиши Shift, Alt, or Ctrl в какой-либо момент времени?

Ответ:

В приведенном примере показано как определить нажата ли клавиша Shift при выборе строчки меню. Пример также содержит функции проверки состояния клавиш Alt, Ctrl.

Пример:

function CtrlDown : Boolean;

var State : TKeyboardState;

begin

GetKeyboardState(State);

Result := ((State[vk_Control] And 128) <> 0);

end;

function ShiftDown : Boolean;

var State : TKeyboardState;

begin

GetKeyboardState(State);

Result := ((State[vk_Shift] and 128) <> 0);

end;

function AltDown : Boolean;

var State : TKeyboardState;

begin

GetKeyboardState(State);

Result := ((State[vk_Menu] and 128) <> 0);

end;

procedure TForm1.MenuItem12Click(Sender: TObject);

begin

if ShiftDown then Form1.Caption := 'Shift'

else Form1.Caption := '';

end;

Вопрос:

Как изменить шрифта hint'а?

Ответ:

В примере перехватывается событие Application.OnShowHint и изменяется шрифт Hint'а.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Неизвестный Автор читать все книги автора по порядку

Неизвестный Автор - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Виртуальная библиотека Delphi отзывы


Отзывы читателей о книге Виртуальная библиотека Delphi, автор: Неизвестный Автор. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x