Форум: "Media";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];
ВнизМоргает TImage при рисовании в нём Найти похожие ветки
← →
PixGraft (2004-03-28 18:11) [0]Моргает TImage при рисовании на нём! ЗАПАРИЛСЯ!!! Помогите ПЛЗ!!! Почему в microsoft paint не моргает, а у меня прямо аж "матрица" настоящая ....
Х Е Л П !!!!
любые исходники, любые предложения, лишь бы не моргало!!!
(vixaz@rambler.ru)
← →
Pa5ha (2004-03-28 19:09) [1]form1.Image1.Stretch:=true;
form1.image1.autosize:=true;
← →
Думкин © (2004-03-28 19:23) [2]> [1] Pa5ha (28.03.04 19:09)
Рисовать при таких установках пробовал?
> PixGraft (28.03.04 18:11)
Это самый часто задаваемый тут вопрос - прогуляйся по веткам и найдешь, что у формы, либо панели на которой Имадж надо выставить простое свойство в истину.
Удачи.
← →
PixGraft (2004-03-28 19:57) [3]лучше бы подсказали куда конкретно, потому что я уже покаким веткам только не гулял!!!
← →
PixGraft (2004-03-28 20:27) [4]Ещё попутно вопросик есть.. примерно такая же фигня и с TImage.. постоянно мерцает при перемещении
← →
Mihey © (2004-03-28 21:22) [5]В OnCreate формы напиши:
DoubleBuffered := True;
← →
PixGraft (2004-03-28 21:24) [6]на техническом языке, как это работает???
DoubleBuffered := True;
← →
Mihey © (2004-03-28 23:53) [7]>на техническом языке, как это работает???
Двойная буферизация окна на уровне системы. В памяти создаётся некоторое изображение, на которое сначала рисуется всё окно, а потом оно один раз выводится, вместо того, чтобы последовательно рисовать все компоненты.
← →
Pa5ha (2004-03-29 00:04) [8]
> Рисовать при таких установках пробовал?
Только-что попробовал. А в чем собсна проблема? При DoubleBuffer у меня возникали проблеммы. Например какие-то белые пятна на месте компонентов (некоторых).
← →
Skywalker (2004-03-29 14:47) [9]чтоб не мигало юзай апишные функции вывода в канву, работает
офигенно быстро и никаких мигов...
поищи в win32 хэлпе функцию StretchDIBits.
← →
PixGraft (2004-03-29 16:27) [10]Вы ещё между собой переругайтесь!!!
Вобщем попробовал я всё что вы предлагали... НИЧЕРТА НЕ ПОМОГЛО!!! КАК ВСЁ ПРЫГАЛО, ТАК И ПРЫГАЕТ ДАЛЬШЕ!!!
Други!!! Вы лучше пришлите исходники проги в которой (по вашему мнению) ничего не прыгает!!! и выложите их ЗДЕСЬ (в кладовке)!!!! ЧТОБЫ БОЛЬШЕ ПОДОБНЫХ (на ваш взгляд) ВОПРОСОВ НЕ ПОВТОРЯЛОСЬ!!!! :) кудесники... хе..
Я тоже с дельфи вожусь, но раз есть люди умнее - помогите реально, а не спорами между собой и DoubleBuffered := True; ПИСАЛ!!!! НЕ ПОМОГЛО!!!!!!
← →
PixGraft (2004-03-29 16:30) [11]кыстати!!! карандаш сделать получилось в paintbox но ведь там изображение не обновляется!!!!! А дерзните кто-нить линию сделать!!! с координатами (x,y) и (x1,y1)...
← →
PixGraft (2004-03-29 17:03) [12]Кому не в ломы, жду ответов на своём форуме!
http://www.ditrix.best-host.ru/forum/viewforum.php?f=13
кыстати :) может найдёте чего полезного!
← →
Думкин © (2004-03-29 19:59) [13]> [8] Pa5ha (29.03.04 00:04)
Да, где-то что-то я забыл - давно с графикой не работал, но что-то еще помню - помнится было, но вот в чем?. :(
> [12] PixGraft (29.03.04 17:03)
При таком подходе можно сказать лишь: "у тебя ошибка в программе".
Скажи и дай больше из того, что за пазухой держишь. Дергание изображения зачастую свидетельствует о неверности в подходе. Дай кода.
← →
Mihey © (2004-03-29 21:28) [14]Ну вот пример, не мерцает (выводится 500х400 изображение) с линией. В папке с проектом должно быть изображение 500х400 любое, но не синего цвета :), с названием fon.bmp.
unit mainUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TmainForm = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormPaint(Sender: TObject);
private
public
procedure IdleHandler(Sender: TObject; var Done: Boolean);
end;
function ConcreteX(X: Integer): Integer;
function ConcreteY(Y: Integer): Integer;
var
mainForm: TmainForm;
fon: TBitmap;
p1, p2: TPoint;
implementation
{$R *.DFM}
procedure TmainForm.IdleHandler(Sender: TObject; var Done: Boolean);
begin
Invalidate;
end;
function ConcreteX(X: Integer): Integer;
begin
Result := X;
If X < 0 then Result := 0;
If X > (fon.Width-1) then Result := fon.Width-1;
end;
function ConcreteY(Y: Integer): Integer;
begin
Result := Y;
If Y < 0 then Result := 0;
If Y > (fon.Height-1) then Result := fon.Height-1;
end;
procedure TmainForm.FormCreate(Sender: TObject);
begin
DoubleBuffered := True;
ClientWidth := 500;
ClientHeight := 400;
BorderStyle := bsSingle;
Position := poScreenCenter;
fon := TBitmap.Create;
fon.LoadFromFile("fon.bmp");
Canvas.Pen.Color := clBlue;
p1 := Point(150, 150);
p2 := Point(350, 250);
Randomize;
Application.OnIdle := IdleHandler;
end;
procedure TmainForm.FormDestroy(Sender: TObject);
begin
fon.Free;
end;
procedure TmainForm.FormPaint(Sender: TObject);
begin
BitBlt(Canvas.Handle, 0, 0, 500, 400, fon.Canvas.Handle, 0, 0, SrcCopy);
p1.x := ConcreteX(p1.x + (1-Random(3))*Random(5));
p1.y := ConcreteY(p1.y + (1-Random(3))*Random(5));
p2.x := ConcreteX(p2.x + (1-Random(3))*Random(5));
p2.y := ConcreteY(p2.y + (1-Random(3))*Random(5));
Canvas.MoveTo(p1.x, p1.y);
Canvas.LineTo(p2.x, p2.y);
end;
end.
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.036 c