Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2008, 22:24   #11
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А вы эти свойства, я надеюсь, вашему Image1 присваиваете?
А Image1.Height:=Image1.Picture.Bitma p.Height после загрузки из потока? И то же - для ширины?
А перерисовку Image1.Repaint делаете?

Последний раз редактировалось mihali4; 24.10.2008 в 22:27.
mihali4 вне форума Ответить с цитированием
Старый 24.10.2008, 22:30   #12
odi_noki
Пользователь
 
Регистрация: 23.06.2008
Сообщений: 77
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
А вы эти свойства, я надеюсь, вашему Image1 присваиваете?
А Image1.Height:=Image1.Picture.Bitma p.Height после загрузки из потока? И то же - для ширины?
А перерисовку Image1.Repaint делаете?
да, при нажатии на кнопку например пишу

Image1.Stretch :=true;
Image1.AutoSize:=true;
Image1.Repaint;

так верно? или нужно после загрузки картинки это делать?
odi_noki вне форума Ответить с цитированием
Старый 24.10.2008, 22:40   #13
odi_noki
Пользователь
 
Регистрация: 23.06.2008
Сообщений: 77
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
А Image1.Height:=Image1.Picture.Bitma p.Height после загрузки из потока? И то же - для ширины?
и так уже подгоняла после работы потока.. все по-прежнему
odi_noki вне форума Ответить с цитированием
Старый 24.10.2008, 22:49   #14
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Так. Становится все запутаннее.
Итак - вы используете TImage? Статический или вы его создаете?
Приведите целиком обработчик нажатия кнопки (если я правильно понял, именно по нажатию кнопки вы загружаете из потока картинку?).
mihali4 вне форума Ответить с цитированием
Старый 24.10.2008, 22:59   #15
odi_noki
Пользователь
 
Регистрация: 23.06.2008
Сообщений: 77
По умолчанию

procedure TForm1.Button3Click(Sender: TObject);
begin
TThread3.Create(false);
end;

procedure TThread3.Execute;
begin
with Form1.Image1.Canvas do
begin
if not FileExists(ExtractFilePath(Applicat ion.ExeName)+'1.bmp') then
begin
ShowMessage('The bitmap was not found!');
Exit;
end;
Bmp := TBitmap.Create;
try
Bmp.LoadFromFile(ExtractFilePath(Ap plication.ExeName)+'1.bmp');
Lock;
Draw(10, 10, Bmp);
Unlock;
finally
Bmp.Free;
end;
end;
self.Synchronize(Img);
end;

procedure TThread3.Img;
begin
Form1.Image1.Stretch :=true;
Form1.Image1.AutoSize:=true;
Form1.Image1.Height:= bmp.Height;
Form1.Image1.Width:= bmp.Width;
Form1.Image1.Repaint;
end;

компонент TImage лежит на форме, по нажатии кнопки создается поток, исполняет метод Execute, затем с помощью метода Synchronize передаю метод потока(в котором меняю свойства имэджа) основному потоку, и если в потоке TThread менять свойства (что вроде нельзя делать), не помогает.
odi_noki вне форума Ответить с цитированием
Старый 25.10.2008, 01:13   #16
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Код:
procedure TThread3.Execute;
var tmp: string;
begin
tmp:=ExtractFilePath(Application.ExeName)+'1 .bmp';
if not FileExists(tmp) then
begin
ShowMessage('The bitmap was not found!');
Exit;
end;
Image1.Picture.Bitmap.LoadFromFile(tmp);
{или Image1.Picture.Bitmap.LoadFromStream(...}
Image1.Left:=10;
Image1.Top:=10;
end;

Последний раз редактировалось mihali4; 25.10.2008 в 01:18.
mihali4 вне форума Ответить с цитированием
Старый 25.10.2008, 09:26   #17
odi_noki
Пользователь
 
Регистрация: 23.06.2008
Сообщений: 77
По умолчанию

mihali4,
так по размеру подгоняется хорошо, но вот между потоками конфликты возникают.. ну ладно, разберусь с этим сама. Огромное спасибо за помощь.
odi_noki вне форума Ответить с цитированием
Старый 25.10.2008, 09:53   #18
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

TImage устроен так, что его можно настроить как угодно. Image по размеру изображения (что вам и нужно), подогнать изображение под размер Image, подогнать пропорционально, отцентровать изображение посередине имиджа и т.д. Читайте описание его свойств в справке Дельфи.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TBitmap в многопоточном приложении Sergey_nl Мультимедиа в Delphi 3 09.07.2007 00:34