Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Информационный Канал Subscribe.Ru

Ежедневная рассылка сайта Мастера DELPHI

DELPHIMASTER.ru

Выпуск от 15.04.03 09:04

Восьмая техническая конференция "Корпоративные базы данных-2003"
Москва, 17-18 апреля, 2003 года

Ghost Installer - достойный инсталлятор для качественных сетапов. Весь спектр возможностей, быстрота и удобство.
Кое-что из нашей кладовки   |x|
  • ИСХОДНИКИ ICQ НА DELPHI!!!!!!!!!!!!! all_delphi gluk@vologda.ru   (10.04.03 19:55)
    !!!!!!!!!!ИСХОДНИКИ ПОПУЛЯРНОГО ПЕЁДЖЕРА ТЕПЕРЬ С ОТКРЫТЫМ КОДОМ НА DELPHI. КАЧАЙТЕ, НЕ ПОЖАЛЕЕТЕ, ВСЕГО 68КБ. ВСЕ ЭТО И МНОГОЕ ДРУГОЕ НА САЙТЕ WWW.DELPHI.H5.RU
    РАЗДЕЛ DOWNLOADS!!!!!!!!!!!!!!!1
    »»» Скачать: исходные тексты
Лучшее из нашего FAQ   |x|
Как работать с палитрой в Delphi? На форме установлен TImage и видна картинка (*.BMP файл), как изменить у него палитру цветов ?
Палитра в TBitmap и TMetaFile доступна через property Palette. Если палитра имеется (что совсем необязательно), то Palette<>0:

procedure TMain.BitBtnClick(Sender: TObject);
var
Palette : HPalette;
PaletteSize : Integer;
LogSize: Integer;
LogPalette: PLogPalette;
Red : Byte;
begin
Palette := Image.Picture.Bitmap.ReleasePalette;
// здесь можно использовать просто Image.Picture.Bitmap.Palette, но я не
// знаю, удаляются ли ненужные палитры автоматически

if Palette=0 then exit; //Палитра отсутствует
PaletteSize := 0;
if GetObject(Palette, SizeOf(PaletteSize), @PaletteSize) = 0 then Exit;
// Количество элементов в палитре = paletteSize
if PaletteSize = 0 then Exit; // палитра пустая
// определение размера палитры
LogSize := SizeOf(TLogPalette) + (PaletteSize - 1) * SizeOf(TPaletteEntry);
GetMem(LogPalette, L! ogSize);
try
// заполнение полей логической палитры
with LogPalette^ do begin
palVersion := $0300; palNumEntries := PaletteSize;
GetPaletteEntries(Palette, 0, PaletteSize, palPalEntry);
// делаете что нужно с палитрой, например:
Red := palPalEntry[PaletteSize-1].peRed;
Edit1.Text := 'Красная составляющего последнего элемента палитры ='+IntToStr(Red);
palPalEntry[PaletteSize-1].peRed := 0;
//.......................................
end;
// завершение работы
Image.Picture.Bitmap.Palette := CreatePalette(LogPalette^);
finally
FreeMem(LogPalette, LogSize);
// я должен позаботиться сам об удалении Released Palette
DeleteObject(Palette);
end;
end;


{ Этот модуль заполняет фон формы рисунком bor6.bmp (256 цветов)
и меняет его палитру при нажатии кнопки }

unit bmpfo! rmu;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type
TBmpForm = class(TForm)
Button1: TButton;
procedure FormDestroy(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
Bitmap: TBitmap;
procedure ScrambleBitmap;
procedure WMEraseBkgnd(var m: TWMEraseBkgnd); message WM_ERASEBKGND;
end;

var
BmpForm: TBmpForm;

implementation
{$R *.DFM}
procedure TBmpForm.FormCreate(Sender: TObject);
begin
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile('bor6.bmp');
end;

procedure TBmpForm.FormDestroy(Sender: TObject);
begin
Bitmap.Free;
end;

// since we're going t! o be painting the whole form, handling this
// message will suppress the uneccessary repainting of the background
// which can result in flicker.
procedure TBmpform.WMEraseBkgnd(var m : TWMEraseBkgnd);
begin
m.Result := LRESULT(False);
end;

procedure TBmpForm.FormPaint(Sender: TObject);
var x, y: Integer;
begin
y := 0;
while y < Height do begin
x := 0;
while x < Width do begin
Canvas.Draw(x, y, Bitmap);
x := x + Bitmap.Width;
end;
y := y + Bitmap.Height;
end;
end;

procedure TBmpForm.Button1Click(Sender: TObject);
begin
ScrambleBitmap; Invalidate;
end;

// scrambling the bitmap is easy when it's has 256 colors:
// we just need to change each of the color in the palette
// to some other value.
procedure TB! mpForm.ScrambleBitmap;
var
pal: PLogPalette;
hpal: HPALETTE;
i: Integer;
begin
pal := nil;
try
GetMem(pal, sizeof(TLogPalette) + sizeof(TPaletteEntry) * 255);
pal.palVersion := $300;
pal.palNumEntries := 256;
for i := 0 to 255 do
begin
pal.palPalEntry[i].peRed := Random(255);
pal.palPalEntry[i].peGreen := Random(255);
pal.palPalEntry[i].peBlue := Random(255);
end;
hpal := CreatePalette(pal^);
if hpal <> 0 then
Bitmap.Palette := hpal;
finally
FreeMem(pal);
end;
end;

end.


»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
У нас большой выбор статей   |x|
Что такое "Змейка" и как с ней бороться?
В статья подробно, шаг за шагом описывается реализация алгоритма движка игры "Змейка".
Новинки книжного рынка   |x|
Delphi 6 и Kylix для программиста
В этой книге на практических примерах рассмотрены все возможности среды Delphi 6. Читательузнает, как создавать многоуровневые программы для работы с базами данных, Интернет-системы и сетевые распределенные приложения на основе технологий СОМ и CORBA. Рассмотрены механизмы преобразования XML-данных и приемы разработки служб WebServices. В большинстве случаев программист может обойтись визуальными средствами Delphi.Характер авторских работ С. Бобровского традиционно отличается тем, что они не только служат фундаментальными руководствами по новым технологиям программирования, но и представляют собой удобные справочники, полезные каждому программисту, независимо от уровня его подготовки.
Автор: Бобровский С.
Другие сайты о DELPHI   |x|
HTML export filter for FastReport 2.4
Фильтр экспорта позволяет сохранять готовые отчеты, сформированные FastReport 2.4x, в формате HTML.
FreeWare без исходных кодов.

» Оценка сайта: 2
Опрос населения :)
Какой сайт по Delphi лучший?
»»» Королевство Дельфи
»»» Этот сайт
»»» Дельфи. Вокруг да около
»»» Другой
»»» Чем больше, тем лучше!
Для души

Хокку дня
Бесполезно, бесполезно -
сильный дождь,
идущий в море.

Афоризмы
Счастливого Рождества всем моим друзьям, кроме двоих! (Уильям Клод Филдс)

Фраза дня
Ты, работа, нас не бойся, мы тебя не тронем.

Дурацкие законы (информация предоставлена сайтом kurilka.com)
В городе Белмедир в Калифорнии (США) муниципалитет вынес постановление, которое гласит "Собак запрещается пускать в общественные заведения, кроме как с владельцами на поводке." (кто должен быть на поводке не объясняется)
В городе Льюис (США) запрещается появляться на улице в штанах, "черезчур" облигающих ноги и талию.

И на закуску коротенький анекдот
- Товарищ водитель, почему ваша пассажирка не пристегнута ремнями безопасности?
- Так это же моя тёща!!!

Фотоприколы.
Начните день с хорошего настроения!
http://delphi.mastak.ru/cgi-bin/prikol.pl?id=322073


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (delphi@mastak.ru)

Добро пожаловать на сайт -= Мастера DELPHI =- 


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное