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

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

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

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

…начиная с 1001. Смотрите другие файлы…

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

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

Интервал:

Закладка:

Сделать

procedureCreateWnd; override;

....

end;

.....

implementation

{$R myRes.res} //ресурс с битмапом фона

procedure.FormCreate( ...);

varLogBrush:TLogbrush;

begin

FCover:=TBitmap.Create;

FCover.LoadFromResourceName(hinstance,'BMPCOVER');

WithLogBrush do begin

lbStyle:=BS_PATTERN;

lbHatch:=FCover.Handle;

end;

FHBrush:=CreateBrushIndirect(Logbrush);

end;

procedure.FormDestroy( ...);

begin

DeleteObject(FHBrush);

FCover.Free;

end;

procedure.CreateWnd;

begin

inheritedCreateWnd;

if(ClientHandle <> 0) then begin

ifNewStyleControls then

SetWindowLong(ClientHandle, GWL_EXSTYLE, WS_EX_CLIENTEDGE orGetWindowLong(ClientHandle, GWL_EXSTYLE));

FNewClientInstance:=MakeObjectInstance(NewClientWndProc);

FOldClientInstance:=pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));

SetWindowLong(ClientHandle, GWL_WNDPROC, longint(FNewClientInstance));

end;

end;

procedure.NewClientWndProc( var Message:TMessage);

procedureDefault;

begin

with Message do

Result := CallWindowProc(FOldClientInstance, ClientHandle, Msg, wParam, lParam);

end;

begin

with Message do begin

caseMsg of

WM_ERASEBKGND:

begin

FillRect(TWMEraseBkGnd(Message).DC, ClientRect,FHBrush);

Result := 1;

end;

else

Default;

end;

end;

end;

Предотвращение закрытия формы

Igor Nikolaev aKa The Spriteсоветует:

Следующий текст убирает команду закрыть из системного меню и одновременно делает серой кнопку закрыть в заголовке формы:

procedureTForm1.FormCreate(Sender: TObject);

varhMenuHandle:HMENU;

begin

hMenuHandle := GetSystemMenu(Handle, FALSE);

IF(hMenuHandle <> 0) THENDeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);

end;

Немедленный TrayIcon после старта приложения

Нужно чтобы при запуске приложения сразу исчезала с экрана главная форма и появлялась TrayIcon. В Ваших «Советы по Дельфи» на данный вопрос я нашел два решения (раздел Классы/TForm) к сожалению ни одно решения на моем компьютере не работало :-(. В связи с этим было решено продолжить поиск, и решение было найдено:

На Главную форму приложения помещаем компонент (TEdit или другой любой, который может иметь фокус), затем устанавливаем свойства:

Visible:=True;

TabOrder:=0;

В обработчик события OnEnter записываем (этот код взял из «Советов по Дельфи»):

Application.Minimize;

ShowWindow(Application.Handle, SW_HIDE);

Button1.SetFocus; //Устанавливаем фокус на другой компонент формы (у меня был Button1 )

Edit1.Visible:=False; //Делаем добавочный компонент невидимым – т.к. он больше нам не нужен

Механизм работы:

При запуске приложения создается форма и фокус получает компонент со свойством TabOrder:=0, при получении фокуса вызывается процедура OnEnter для нашего компонента и происходит скрытие формы.

Для восстановления формы необходим код:

ShowWindow(Application.Handle, SW_RESTORE);

Application.Restore;

Для реализации TrayIcon был использован компонент TRxTrayIcon из библиотеки RxLib ver.2.75 Данное решение имеет один недостаток – незначительное мерцание формы при ее сворачивании.

-----------------------------------------------------------------

С уважением Пащенко Андрей Владимирович (Bibigon)

г.Архангельск, 2000.

Заполнение формы изображением

Почитал я тут ваши 'Советы ……' и решил дополнить ответ по теме создание фона на форме раздела классы\tform

Чтобы заполнить вашу форму повторяющимся изображением нужно

1. Разместить на форме image

2. Присвоить его свойству visible значение false

3. В обработчике события формы OnCreate разместить следующий код :

form1.brush.bitmap:=image1.picture.bitmap;

Хочу заметить , что при использовании этого св-ва св-ва color & style не действительны! А самое главное при изменении размеров формы ваше повторяюшееся изображение будет автоматически перересовываться и вам не понадобится обрабатывать событие paint & resize.

С уважением, Dmitry Morsin

Создание консольных приложений

Создание консольных приложений. (Об этом в советах немножко есть, но очень не конкретно)

Как уже отмечалось в совете [000092] (да и в Хелпе) в консольных приложениях в Delphi можно использовать в принципе весь дельфийский арсенал. Правда и работать они будут лишь под Windows. (Кстати этот способ можно применить для модернизации программ на Паскале под Windows).

Этот код был использован для вывода результатов работы программы проверки (неважно чего) чтобы не приходилось смотреть файл с результатами. Главная проблема была в том, что консоль (если запуск был из Windows) оставалась висеть позади формы до её закрытия. Вреда конечно никакого, но не приятно. Если же запуск из Нортона или т.п., то всё идёт нормально

ProgramMyProgram;

{$APPTYPE CONSOLE}

uses

Windows, Forms, Dialogs, SysUtils, StdCtrls, Controls; // и (или) т.п.

var

SH,SW: integer;

MainForm: TForm; // если нужна форма

Memo: TMemo;

// могут быть также любые другие визуальные компоненты

// здесь могут быть процедуры и функции, т.е всё как в обычном Паскале

Begin

… // здесь какой-то код

{ а здесь, перед выводом формы, есть два пути:}

{ так}

FreeConsole; // Отцепиться от консоли, т.е она просто исчезнет (в случае запуска из Windows) и останется только форма

{ или так}

// Handle:= GetForegroundWindow; // Получить Handle консоли

// ShowWindow(Handle, SW_HIDE); // Спрятать консоль

// а в конце, перед завершением

// ShowWindow(Handle, SW_SHOW); // Показать консоль

{ для помещения формы в центр экрана}

SH:= Screen.Height;

SW:= Screen.Width;

MainForm:= TForm.Create( nil);

withMainForm do try

BorderStyle:= bsSizeable;

Height:= 390;

Width:= 390;

Left:= (SW - Width) div2;

Top:= (SH - Height) div2;

Caption:= 'Моя программа';

// здесь могут быть и другие компоненты

Memo:= TMemo.Create(MainForm);

withMemo do begin

Parent:= MainForm;

Align:= alClient;

BorderStyle:= bsNone;

Font.Name:= 'Courier New Cyr';

Font.Size:= 9;

ScrollBars:= ssVertical;

Lines.LoadFromFile('MyProgram.txt');

end;

ShowModal;

finally

Free;

end;

{ или можно вывести сообщение, например в случае неудачи (или наоборот)}

withCreateMessageDialog('Текст сообщения', mtInformation, [mbOk]) do try

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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