Delphi

Обсуждение ПО и железа

Модератор: Taifun

Аватара пользователя
Pink
Сообщения: 421
Зарегистрирован: Ср, 04 фев 2004 07:21:25

Сообщение Pink »

Как создать изображение на форме в режиме выполнения программы?
8(960)949-76-08 Роман
Аватара пользователя
Серый
Сообщения: 405
Зарегистрирован: Чт, 16 дек 2004 19:54:37
Откуда: Бийск

Сообщение Серый »

Ты имеешь ввиду Image1.picture.LoadFromFile('Имя файла')
Аватара пользователя
Серый
Сообщения: 405
Зарегистрирован: Чт, 16 дек 2004 19:54:37
Откуда: Бийск

Сообщение Серый »

Или тебе надо создать Image во время работы проги
Аватара пользователя
Pink
Сообщения: 421
Зарегистрирован: Ср, 04 фев 2004 07:21:25

Сообщение Pink »

Серый писал(а):Или тебе надо создать Image во время работы проги
Совершенно верно :)
8(960)949-76-08 Роман
Аватара пользователя
Серый
Сообщения: 405
Зарегистрирован: Чт, 16 дек 2004 19:54:37
Откуда: Бийск

Сообщение Серый »

Вот тебе на примере кнопки
public
MyButton : TButton;
{ Public declarations }


procedure TForm1.FormCreate(Sender: TObject);
begin
MyButton:=TButton.Create(Form1);
With MyButton Do
Begin
Parent:=Form1;
Caption:='Кнопка';
Top:=50;
Left:=50;
OnClick:=Button1Click;
// Тут описываешь все начальные параметры объекта
End;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MyButton.Free;
//Эту строку лучше написать по уничтожению формы
end;

Ну а для Image напишешь сам
Аватара пользователя
Серый
Сообщения: 405
Зарегистрирован: Чт, 16 дек 2004 19:54:37
Откуда: Бийск

Сообщение Серый »

Народ, у меня вопрос такой. Можно ли сделеть (если да - то как) чтобы отдельный Image был прозрачный, ну ка AlphaBland у формы.
Аватара пользователя
Серый
Сообщения: 405
Зарегистрирован: Чт, 16 дек 2004 19:54:37
Откуда: Бийск

Сообщение Серый »

Я подумал насчет предыдущего вопроса и у меня возник еще один вопрос. Как Delphi научить читать PNG файлы.
Аватара пользователя
BATMEN
Сообщения: 7786
Зарегистрирован: Вс, 05 дек 2004 20:05:20
Откуда: :ɐдʎʞɯО
Контактная информация:

Сообщение BATMEN »

Искать описание фомата, и раскодировать его. Я для bmp и pcx делал.
Аватара пользователя
Серый
Сообщения: 405
Зарегистрирован: Чт, 16 дек 2004 19:54:37
Откуда: Бийск

Сообщение Серый »

BATMEN писал(а):Искать описание фомата, и раскодировать его. Я для bmp и pcx делал.
BMP то я тоже делал
Аватара пользователя
neXeuse
Сообщения: 50
Зарегистрирован: Пт, 21 апр 2006 15:31:34
Откуда: (указывает вдаль)во-о-он оттуда

Сообщение neXeuse »

Как поставить свою кнопку(рисованную)?У меня 3(три)варианта этой кнопки:просто кнопка :),выделенная мышъю,ну и ес-но нажатая.
A signature is a little text that can be added at the bottom of your posts. It's limited to 255 characters on 5 line(s) and as many images as you want but none can exceed 75x500 pixels, for a maximum of 10Kb. In your text, no more than 100 characters ...
Аватара пользователя
Серый
Сообщения: 405
Зарегистрирован: Чт, 16 дек 2004 19:54:37
Откуда: Бийск

Сообщение Серый »

Есть много способов.
Я сначала делал из ресурса. Потом мне понравилось делать так:
Берёшь рисуешь какой нибуди фон и на нее кладешь кнопку. Сохраняешь. Выкладываешь этот рисунак на форму. Потом изменяешь кнопку в проге в которой рисовал. Опять сохраняешь. обрезаешь эту кнопку в том же Paint. Выкладываешь эту кнопку на форму поверх той которая на рисунке и делаешь этому Imag-у Visible:=False
Теперь по таймеру обрабатываешь 4 AND-ами положерие кнопки на экране (которая скрытая) и Visible:=true когда курсор над кнопкой.

If (Curs.X>Form1.Left+Form1.Image3.Left) and
(Curs.X<Form1.Left+Form1.Image3.Left+Form1.Image3.Width) and
(Curs.Y>Form1.Top+Form1.Image3.Top) and
(Curs.Y<Form1.Top+Form1.Image3.Top+Form1.Image3.Height)
then
begin
if Mov=false then Begin
BitMap.Handle:=LoadBitMap(HInstance,'Moved');
Image3.Canvas.Draw(0,0,BitMap);
end;
Mov:=True;
end else гасишь кнопку
end;
Аватара пользователя
neXeuse
Сообщения: 50
Зарегистрирован: Пт, 21 апр 2006 15:31:34
Откуда: (указывает вдаль)во-о-он оттуда

Сообщение neXeuse »

Ду ю спик инглиш?Мой дельфи7 ду нот понимать слово curs.Или надо какой-то модуль?
A signature is a little text that can be added at the bottom of your posts. It's limited to 255 characters on 5 line(s) and as many images as you want but none can exceed 75x500 pixels, for a maximum of 10Kb. In your text, no more than 100 characters ...
Аватара пользователя
neXeuse
Сообщения: 50
Зарегистрирован: Пт, 21 апр 2006 15:31:34
Откуда: (указывает вдаль)во-о-он оттуда

Сообщение neXeuse »

О!Зато знает слово mouse.CursorPos.Спасибо!
A signature is a little text that can be added at the bottom of your posts. It's limited to 255 characters on 5 line(s) and as many images as you want but none can exceed 75x500 pixels, for a maximum of 10Kb. In your text, no more than 100 characters ...
Аватара пользователя
neXeuse
Сообщения: 50
Зарегистрирован: Пт, 21 апр 2006 15:31:34
Откуда: (указывает вдаль)во-о-он оттуда

Сообщение neXeuse »

А как проверить,нажата ли левая мыш,и курсор находится ли на форме(активной и неактивоной)?
A signature is a little text that can be added at the bottom of your posts. It's limited to 255 characters on 5 line(s) and as many images as you want but none can exceed 75x500 pixels, for a maximum of 10Kb. In your text, no more than 100 characters ...
Code(R)
Сообщения: 420
Зарегистрирован: Чт, 25 май 2006 13:10:49

Сообщение Code(R) »

neXeuse писал(а):Как поставить свою кнопку(рисованную)?У меня 3(три)варианта этой кнопки:просто кнопка :),выделенная мышъю,ну и ес-но нажатая.
SpeedButton тебе в помощь. :wink:
Аватара пользователя
Серый
Сообщения: 405
Зарегистрирован: Чт, 16 дек 2004 19:54:37
Откуда: Бийск

Сообщение Серый »

Ну впрочем можно и так. Просто я присваевил моему Cur твой Mouse.....
Ну дак чего у тя все теперь работает ???
Аватара пользователя
neXeuse
Сообщения: 50
Зарегистрирован: Пт, 21 апр 2006 15:31:34
Откуда: (указывает вдаль)во-о-он оттуда

Сообщение neXeuse »

2 Серый работает.
SpeedButton тебе в помощь
Да ну,это муть!Там тока 1 вариант,и то он вниз вправо ползет на пиксель при нажатии.
A signature is a little text that can be added at the bottom of your posts. It's limited to 255 characters on 5 line(s) and as many images as you want but none can exceed 75x500 pixels, for a maximum of 10Kb. In your text, no more than 100 characters ...
Code(R)
Сообщения: 420
Зарегистрирован: Чт, 25 май 2006 13:10:49

Сообщение Code(R) »

neXeuse писал(а):А как проверить,нажата ли левая мыш,и курсор находится ли на форме(активной и неактивоной)?
OnMouseDown есть, координаты курсора известны, свойство Active у формы есть, координаты формы известны. Что ещё нужно для счастья? :wink:
Аватара пользователя
Серый
Сообщения: 405
Зарегистрирован: Чт, 16 дек 2004 19:54:37
Откуда: Бийск

Сообщение Серый »

neXeuse писал(а):А как проверить,нажата ли левая мыш,и курсор находится ли на форме(активной и неактивоной)?
Ну ето по MouseDown тама пишем If Button=mbLeft then и чего те нада
а про активную форму или нет это тебе нада ApplicationEvents - ом пользоваться
Аватара пользователя
neXeuse
Сообщения: 50
Зарегистрирован: Пт, 21 апр 2006 15:31:34
Откуда: (указывает вдаль)во-о-он оттуда

Сообщение neXeuse »

А как заставить компонент вращатся вокруг другово?
A signature is a little text that can be added at the bottom of your posts. It's limited to 255 characters on 5 line(s) and as many images as you want but none can exceed 75x500 pixels, for a maximum of 10Kb. In your text, no more than 100 characters ...
Code(R)
Сообщения: 420
Зарегистрирован: Чт, 25 май 2006 13:10:49

Сообщение Code(R) »

neXeuse писал(а):А как заставить компонент вращатся вокруг другово?
В смысле?
Если тебе нужно изменить положение компонента, то есть свойства Left, Top.
Аватара пользователя
Серый
Сообщения: 405
Зарегистрирован: Чт, 16 дек 2004 19:54:37
Откуда: Бийск

Сообщение Серый »

Песенка про ёлочку. Программисты должны понять.

program Елочка;
Begin
Лес.елочка.create();
While not Лес.елочка.dead do
Begin
лес.елочка.age := лес.елочка.age+1;
if зима or лето then
begin
лес.елочка.plain := true;
лес.елочка.color := cl_green;
end;
метель.filename:=?D:MusicNSYNC - Bye Bye Bye.mp3?;
метель.open;
sleep(1000);
метель.play;
мороз.укутать(лес.елочка);
GetMessage(H, лес.елочка.handle, 0, 0);
if h.uint = wm_замерзла then
dead := true;
end;
лес.заяц.create;
лес.заяц.трусливый := true;
лес.заяц.color := cl_gray;
x := лес.елочка.left;
y := лес.елочка.top;
While x
Begin
лес.заяц.left := x;
inc(x);
лес.заяц.top := y + round( abs(sin(x*pi/180)*10) );
end;
Winexec(?wolf3d.exe /evil?,0);
лес.елочка.cuttoclipboard;
Праздник.pastefromclipboard;
Праздник.елочка.skin.loadfromfile(?нарядная.jpg?);
For i:=1 to SizeOf(Праздник.елочка.радость) do
Прадзник.Дети.Настроение + Праздник.елочка.радость;
End.
Аватара пользователя
neXeuse
Сообщения: 50
Зарегистрирован: Пт, 21 апр 2006 15:31:34
Откуда: (указывает вдаль)во-о-он оттуда

Сообщение neXeuse »

Code(R) писал(а):
neXeuse писал(а):А как заставить компонент вращатся вокруг другово?
В смысле?
Если тебе нужно изменить положение компонента, то есть свойства Left, Top.
Мне надо,чтоб компонент вращался по кругу.Я слышал,там надо синусы и косинусы...
A signature is a little text that can be added at the bottom of your posts. It's limited to 255 characters on 5 line(s) and as many images as you want but none can exceed 75x500 pixels, for a maximum of 10Kb. In your text, no more than 100 characters ...
Аватара пользователя
BATMEN
Сообщения: 7786
Зарегистрирован: Вс, 05 дек 2004 20:05:20
Откуда: :ɐдʎʞɯО
Контактная информация:

Сообщение BATMEN »

ну дык формулу окружности помнишь ???

X = radius * sin(angle)
Y = radius * cos(angle)

Ну и допустим делаешь:

Код: Выделить всё

 
var
  Form1: TForm1;
  posX, posY, Angle : integer;


const
  R = 50;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
inc(angle);

if angle = 360
 then Angle := 0;

shape1.Left :=posX +  round( R * sin( Angle * pi/180 ));
shape1.Top  :=posY +  round( R * cos( Angle * pi/180 ));


end;

procedure TForm1.FormCreate(Sender: TObject);
begin
doublebuffered := true;
posX := shape1.Left;
posY := shape1.Top;
end;

end.
Если я правильно понял что тебе нужно.
Аватара пользователя
BATMEN
Сообщения: 7786
Зарегистрирован: Вс, 05 дек 2004 20:05:20
Откуда: :ɐдʎʞɯО
Контактная информация:

Сообщение BATMEN »

Серый писал(а):Песенка про ёлочку. Программисты должны понять.

program Елочка;
...............
...............
Прадзник.Дети.Настроение + Праздник.елочка.радость;
End.
Че то ошибок многовата. :D
Ответить

Вернуться в «Software & hardware»