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

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

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

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

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

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

Интервал:

Закладка:

Сделать

TheBitmap.Free; TheIcon.Free;

end;

Вопрос:

Как создать отдельную подсказку (hint) для каждой ячейки StringGrid?

Ответ:

В приведенном примере отслеживается движение курсора мыши — при перемещении между ячейками StringGrid'а — появляется окно подсказки (hint), показывающее номер текущей строки и колонки.

Пример:

type TForm1 = class(TForm)

StringGrid1: TStringGrid;

procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure FormCreate(Sender: TObject);

private

{Private declarations}

Col : integer;

Row : integer;

public

{Public declarations}

end;

var Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

StringGrid1.Hint := '0 0';

StringGrid1.ShowHint := True;

end;

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

var

r : integer;

c : integer;

begin

StringGrid1.MouseToCell(X, Y, C, R);

with StringGrid1 do begin

if ((Row <> r) or (Col <> c)) then begin

Row := r;

Col := c;

Application.CancelHint;

StringGrid1.Hint :=IntToStr(r)+#32+IntToStr(c);

end;

end;

end;

Вопрос:

Как внести изменения в код VCL?

Ответ:

Примечание: внесение изменений в VCL не поддерживается Borland или Borland Developer Support.

Но если Вы решили сделать это...

Изменения в код VCL никогда не должны вносится в секцию "interface" модуля — только в секцию "implimentation". Наиболее безопасный способ внести изменения в VCL — создать новый каталог названный "исправленный VCL". Скопируйте файл VCL который Вы хотите изменить в этот каталог. Внесите изменения (лучше прокомментировать их) в этот файл. Затем добавьте путь к Вашему каталогу "исправленный VCL" в самое начало "library path". Перезапустите Delphi/C++ Builder и перекомпилируйте Ваш проект. "library path" можно изменить в меню:

Delphi 1 : Options | Environment | Library

Delphi 2 : Tools | Options | Library

Delphi 3 : Tools | Environment Options | Library

Delphi 4 : Tools | Environment Options | Library C++

Builder : Options | Environment | Library

Вопрос:

Как в Delphi реализовать функцию — эквивалент TwipsPerPixel из VisualBasic?

Ответ:

Функции TwipsPerPixelX и TwipsPerPixelY, приведенные в примере реализуют ту же функциональность в Delphi.

Пример:

function TwipsPerPixelX(Canvas : TCanvas) : Extended;

begin

result := 1440 / GetDeviceCaps(Canvas.Handle, LOGPIXELSX);

end;

function TwipsPerPixelY(Canvas : TCanvas) : Extended;

begin

result := 1440 / GetDeviceCaps(Canvas.Handle, LOGPIXELSY);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

ShowMessage(FloatToStr(TwipsPerPixelX(Form1.Canvas)));

ShowMessage(FloatToStr(TwipsPerPixelY(Form1.Canvas)));

end;

Вопрос:

Как вставить содержимое файла в текущую позицию курсора в компонете TMemo?

Ответ:

Считайте файл в TMemoryStream, затем используйте метод TMemo SetSelTextBuf() для вставки текста;

var

TheMStream : TMemoryStream;

Zero : char;

begin

TheMStream := TMemoryStream.Create;

TheMStream.LoadFromFile('C:\AUTOEXEC.BAT');

TheMStream.Seek(0, soFromEnd); //Null terminate the buffer!

Zero := #0;

TheMStream.Write(Zero, 1);

TheMStream.Seek(0, soFromBeginning);

Memo1.SetSelTextBuf(TheMStream.Memory);

TheMStream.Free;

end;

Вопрос:

Как в компоненте TMemo перехватить нажатие Ctrl-V и вставить специальный текст не из буфера обмена (clipboard)?

Ответ:

См. пример.

Пример:

uses ClipBrd;

procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

begin

if ((Key = ord('V')) and (ssCtrl in Shift)) then begin

if Clipboard.HasFormat(CF_TEXT) then ClipBoard.Clear;

Memo1.SelText := 'Delphi is RAD!';

key := 0;

end;

end;

Вопрос:

Как создать эквивалент TEdit но только с выравниваением вводимого текста по центру или по правой стороне?

Ответ:

TEdit не поддерживает выравниваение текста по центру и по правой стороне — лучше использовать компонент TMemo. Вам понадобится запретить пользователю нажимать Enter, Ctrl-Enter и всевозможные комбинации клавиш со стрелками, чтобы избежать появления нескольких строк в Memo. Этого можно добиться и просматривая содержимое текста в TMemo в поисках кода возврата каретки (13) и перевода строки(10) на событиях TMemo Change и KeyPress. Можно также заменять код возврата каретки на пробел — для того чтобы позволять вставку из буфера обмена многострочного текста в виде одной строки.

Пример:

procedure TForm1.FormCreate(Sender: TObject);

begin

Memo1.Alignment := taRightJustify;

Memo1.MaxLength := 24;

Memo1.WantReturns := false;

Memo1.WordWrap := false;

end;

procedure MultiLineMemoToSingleLine(Memo : TMemo);

var t : string;

begin

t := Memo.Text;

if Pos(#13, t) > 0 then begin

while Pos(#13, t) > 0 do delete(t, Pos(#13, t), 1);

while Pos(#10, t) > 0 do delete(t, Pos(#10, t), 1);

Memo.Text := t;

end;

end;

procedure TForm1.Memo1Change(Sender: TObject);

begin

MultiLineMemoToSingleLine(Memo1);

end;

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);

begin

MultiLineMemoToSingleLine(Memo1);

end;

Вопрос:

Как запрограммировать undo?

Ответ:

См. пример

Memo1.Perform(EM_UNDO, 0, 0);

Если Вы хотите узнать, возможно ли выполнить операцию "Undo", проверьте "Undo status":

If Memo1.Perform(EM_CANUNDO, 0, 0) <> 0 then begin

{Undo is possible}

end;

Для выполнения "Redo" выполните "Undo" еще раз.

Вопрос:

Можно ли создать форму, которая получает дополнительные параметры в методе Сreate?

Ответ:

Просто замените конструктор Create класса Вашей формы.

Пример:

unit Unit2;

interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type TForm2 = class(TForm)

private

{Private declarations}

public

constructor CreateWithCaption(aOwner: TComponent; aCaption: string);

{Public declarations}

end;

var Form2: TForm2;

implementation

{$R *.DFM}

constructor TForm2.CreateWithCaption(aOwner: TComponent; aCaption: string);

begin

Create(aOwner);

Caption := aCaption;

end;

uses Unit2;

procedure TForm1.Button1Click(Sender: TObject);

begin

Unit2.Form2 :=Unit2.TForm2.CreateWithCaption(Application, 'My Caption');

Unit2.Form2.Show;

end;

Вопрос:

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

Ответ:

В примере создается компонент, унаследованный от TTrackbar который переопределяет метод CreateParams и убират флаг TBS_ENABLESELRANGE из Style. Константа TBS_ENABLESELRANGE обьявленна в модуле CommCtrl.

Пример:

uses CommCtrl, ComCtrls;

type TMyTrackBar = class(TTrackBar)

procedure CreateParams(var Params: TCreateParams); override;

end;

procedure TMyTrackBar.CreateParams(var Params: TCreateParams);

begin

inherited;

Params.Style := Params.Style and not TBS_ENABLESELRANGE;

end;

var MyTrackbar : TMyTrackbar;

procedure TForm1.Button1Click(Sender: TObject);

begin

MyTrackBar := TMyTrackbar.Create(Form1);

MyTrackbar.Parent := Form1;

MyTrackbar.Left := 100;

MyTrackbar.Top := 100;

MyTrackbar.Width := 150;

MyTrackbar.Height := 45;

MyTrackBar.Visible := true;

end;

Вопрос:

Мне нужен временный canvas, но когда я пытаюсь его создать получаю сообщения об ошибках. Как создать TCanvas?

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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