LibKing » Книги » comp-programming » Валентин Озеров - Советы по Delphi. Версия 1.0.6

Валентин Озеров - Советы по Delphi. Версия 1.0.6

Тут можно читать онлайн Валентин Озеров - Советы по Delphi. Версия 1.0.6 - бесплатно полную версию книги (целиком). Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
libking
  • Название:
    Советы по Delphi. Версия 1.0.6
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    5/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Ваша оценка:

Валентин Озеров - Советы по Delphi. Версия 1.0.6 краткое содержание

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

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

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

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

procedure CopyButtonClick(Sender: TObject);

begin

If ActiveControl is TMemo then TMemo(ActiveControl).CopyToClipboard;

If ActiveControl is TDBMemo then TDBMemo(ActiveControl).CopyToClipboard;

If ActiveControl is TEdit then TEdit(ActiveControl).CopyToClipboard;

If ActiveControl is TDBedit then TDBedit(ActiveControl).CopyToClipboard;

end;

procedure PasteButtonClick(Sender: TObject);

begin

If ActiveControl is TMemo then TMemo(ActiveControl).PasteFromClipboard;

If ActiveControl is TDBMemo then TDBMemo(ActiveControl).PasteFromClipboard;

If ActiveControl is TEdit then TEdit(ActiveControl).PasteFromClipboard;

If ActiveControl is TDBedit then TDBedit(ActiveControl).PasteFromClipboard;

end;

Форма как графический объект

Каким образом можно скопировать форму в буфер обмена в виде графического изображения?

uses clipbrd;

procedure TShowVRML.Kopieren1Click(Sender: TObject);

var bitmap:tbitmap;

begin

bitmap:=tbitmap.create;

bitmap.width:=clientwidth;

bitmap.height:=clientheight;

try

with bitmap.Canvas do CopyRect (clientrect,canvas,clientrect);

clipboard.assign(bitmap);

finally

bitmap.free;

end;

end;

Компоненты

BitBtn

Смена иконки BitBtn во время работы приложения

Иконка компонента является инкапсулированным объектом, требующим для хранения изображения некоторый участок памяти. Следовательно, при замене иконки, память, связанная с первоначальной иконкой, должна возвратиться в кучу, а для новой иконки требуется новое распределение памяти. По правилам Delphi, этим должен заниматься метод "Assign". Ниже приведен код всей процедуры замены иконки.

implementation

{$R *.DFM}

var n: integer; // При инициализации программы данное значение будет равным нулю

procedure TForm1.Button1Click(Sender: TObject);

var Image: TBitmap;

begin // Изменение иконки в bitbtn1

Image:= TBitmap.Create;

if n < ImageList1.Count then ImageList1.GetBitmap(n, Image); {end if}

BitBtn1.Glyph.Assign(Image) // Примечание: Для изменения свойств объекта используется метод Assign

inc(n,2); // В данный момент кнопка содержит две иконки!

if n > ImageList1.Count then n:= 0; {end if}

Image.Free;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin // добавляем новую иконку кнопки в список imagelist1

if OpenDialog1.Execute then ImageList1.FileLoad(rtBitMap,OpenDialog1.FileName,clBtnFace);

label1.Caption:= 'Количество иконок = ' + IntToStr(ImageList1.Count);

end;

DBGrid

Использование опции MultiSelect в DBGRID

Есть пример в Delphi Technical Information… Его можно посмотреть по адресу http://loki.borland.com/winbin/bds.exe?getdoc+2976+Delphi

{*

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

в табличной сетке и отображать второе поле

набора данных.

Метод DisableControls применяется для того, чтобы

DBGrid не обновлялся во время изменения набора данных.

Последняя позиция набора данных сохраняется как

TBookmark.

Метод IndexOf вызывается для проверки

существования закладки.

Решение использовать метод IndexOf, а не метод

Refresh должно определяться

спецификой приложения.

*}

procedure TForm1.SelectClick(Sender: TObject);

var

x: word;

TempBookmark: TBookMark;

begin

DBGrid1.Datasource.Dataset.DisableControls;

with DBgrid1.SelectedRows do if Count <> 0 then begin

TempBookmark:= DBGrid1.Datasource.Dataset.GetBookmark;

for x:= 0 to Count - 1 do begin

if IndexOf(Items[x]) > –1 then begin

DBGrid1.Datasource.Dataset.Bookmark:= Items[x];

showmessage(DBGrid1.Datasource.Dataset.Fields[1].AsString);

end;

end;

end;

DBGrid1.Datasource.Dataset.GotoBookmark(TempBookmark);

DBGrid1.Datasource.Dataset.FreeBookmark(TempBookmark);

DBGrid1.Datasource.Dataset.EnableControls;

end;

Edit

Массив Edit-компонентов

Procedure DoSomethingWithEditControls;

Var K: Integer;

EditArray: Array[0..99] of Tedit;

begin

Try

For K:= 0 to 99 do begin

EditArray[K]:= TEdit.Create(Self);

EditArray[K].Parent:= Self;

SetSomeOtherPropertiesOfTEdit; {Устанавливаем необходимые свойства TEdit}

Left:= 100; Top:= K*10;

OnMouseMove:= WhatToDoWhenMouseIsMoved; {Что-то делаем при перемещении мыши}

end;

DoWhateverYouWantToDoWithTheseEdits; {Делаем все что хотим с полученным массивом Edit-компонентов}

Finally

For K:= 0to 99do EditArray[K].Free;

end;

Примечание: узнать доступные свойства компонента можно непосредственно в инспекторе объектов и (или) в текстовом режиме вашей формы (щелкните на форме правой кнопкой мыши и выберите пункт View as Text)

Label

3D-рамка для текстовых компонентов

Один из примеров создания текстового компонента с трехмерной декоративной контурной рамкой (для создания компонента потребовалось около получаса. Он демонстрирует только принцип получения рамки. Я не стал колдовать над свойствами типа ParentFont…, т.к. это заняло бы еще немало времени и места).

unit IDSLabel;

interface

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

type TIDSLabel = class(TBevel)

private

{ Private declarations }

FAlignment: TAlignment;

FCaption: String;

FFont: TFont;

FOffset: Byte;

FOnChange: TNotifyEvent;

procedure SetAlignment(taIn : TAlignment);

procedure SetCaption(const strIn: String);

procedure SetFont(fntNew: TFont);

procedure SetOffset(bOffNew: Byte);

protected

{ Protected declarations }

constructor Create(compOwn: TComponent); override;

destructor Destroy; override;

procedure Paint; override;

public

{ Public declarations }

published

{ Published declarations }

property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;

property Caption: String read FCaption write SetCaption;

property Font: TFont read FFont write SetFont;

property Offset: Byte read FOffset write SetOffset;

property OnChange: TNotifyEvent read FOnChange write FOnChange;

end;

implementation

constructor TIDSLabel.Create;

begin

inherited Create(compOwn);

FFont:= TFont.Create;

with compOwn as TForm do FFont.Assign(Font);

Offset:= 4;

Height:= 15;

end;

destructor TIDSLabel.Destroy;

begin

FFont.Free;

inherited Destroy;

end;

procedure TIDSLabel.Paint;

var

wXPos, wYPos : Word;

begin

{Рисуем рамку}

inherited Paint;

{Назначаем шрифт}

Canvas.Font.Assign(Font);

{Вычисляем вертикальную позицию}

wYPos:= (Height – Canvas.TextHeight(Caption)) div 2;

{Вычисляем горизонтальную позицию}

wXPos:= Offset;

case alignment of

taRightJustify: wXPos:= Width – Canvas.TextWidth(Caption) – Offset;

taCenter: wXPos := (Width – Canvas.TextWidth(Caption)) div 2;

end;

Canvas.Brush:= Parent.Brush;

Canvas.TextOut(wXPos,wYPos,Caption);

end;

procedure TIDSLabel.SetAlignment;

begin

FAlignment:= taIn;

Invalidate;

end;

procedure TIDSLabel.SetCaption;

begin

FCaption:= strIn;

if Assigned(FOnChange) then FOnChange(Self);

Invalidate;

end;

procedure TIDSLabel.SetFont;

begin

FFont.Assign(fntNew);

Invalidate;

end;

procedure TIDSLabel.SetOffset;

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


Валентин Озеров читать все книги автора по порядку

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




Советы по Delphi. Версия 1.0.6 отзывы


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


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

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img