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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2015, 10:52   #21
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Да, спасибо. Так помогло:
Код:
unit Unit1;  //http://www.cyberforum.ru/delphi/thread1418862.html
// помог   x128 . Я ему должен.


interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  bmps: array of TBitmap;
  const
  bmp_cnt=5;//не более числа файлов в ресурсе или равно
 
implementation

{$R *.dfm}
{$R Resources.RES}

procedure TForm1.FormCreate(Sender: TObject);
 var
  //bmps: array of TBitmap;
  i: integer;
const
 // bmp_cnt=5;//не более числа файлов в ресурсе или равно
  res_name='img';
begin
  SetLength(bmps, bmp_cnt);
  for i:=0 to bmp_cnt-1 do
  begin
      bmps[i]:=TBitmap.Create;
    with bmps[i] do
    begin
      LoadFromResourceName(HInstance,res_name+IntToStr(i+1)); //img1, img2 .. img30
      Transparent:=true;
      TransParentColor:=Canvas.Pixels[1,1];
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Form1.Image1.canvas.Draw(0,0,bmps[1]);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  var
  i: integer;
begin
  for i:=0 to bmp_cnt-1 do
  begin
    bmps[i].Free;
  end;  
end;

end.
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 18.04.2015, 10:53   #22
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Пожалуйста!
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 22.04.2015, 12:48   #23
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Цитата:
Можно рисовать один битмап в процедуре, передавая имя и координаты, обращаться в цикле.
Рисуем это:
Изображения
Тип файла: jpg массив битмап переключателей.jpg (82.7 Кб, 122 просмотров)
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 22.04.2015, 12:49   #24
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Не получилось:
Код:
unit Unit1;


interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }

  public
    { Public declarations }
    procedure Draw_a_picture30(X:Tcoordinates; Y:Tcoordinates; bmps:array of TBitmap);
  end;

  type
  Tcoordinates = record
  X: integer;
  Y: integer;

  end;

var
  Form1: TForm1;
  bmps: array of TBitmap;
  coordinates: array [1..10000] of Tcoordinates;


  const
  bmp_cnt=5;//не более числа файлов в ресурсе или равно
 implementation

{$R *.dfm}
{$R Resources.RES}

procedure TForm1.FormCreate(Sender: TObject);
 var
  i: integer;
const
  res_name='img';
begin
    SetLength(bmps, bmp_cnt);
   for i:=0 to bmp_cnt-1 do
  begin
      bmps[i]:=TBitmap.Create;
    with bmps[i] do
    begin
      LoadFromResourceName(HInstance,res_name+IntToStr(i+1)); //img1, img2 .. img30
      Transparent:=true;
      TransParentColor:=Canvas.Pixels[1,1];
    end;
  end;
  coordinates[1].X:=100; // так работало
  coordinates[1].Y:=180; //например для  n:=[1]
  end;

procedure TForm1.Button1Click(Sender: TObject);// так работало
begin
 Form1.Image1.canvas.Draw(coordinates[1].X,coordinates[1].Y,bmps[1]);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  var
  i: integer;
begin
  for i:=0 to bmp_cnt-1 do //говорят, что так я очистил память
  begin
    bmps[i].Free;
  end;
  bmps:=nil;
 end;

procedure TForm1.Draw_a_picture30(X, Y: Tcoordinates; bmps: array of TBitmap);
  var
  i: integer;
begin
   i:=2;
 Form1.Image1.canvas.Draw(coordinates[i].X,coordinates[i].Y,bmps[i]);
end;

end.
Изображения
Тип файла: jpg ошибка в процедуре.JPG (41.1 Кб, 106 просмотров)
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 22.04.2015, 13:04   #25
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    procedure Draw_a_picture30(coordinates: TPoint; bmps: TBitmap);

  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  bmps: array of TBitmap;
  coordinates: array of TPoint;


  const
  bmp_cnt=5;//не более числа файлов в ресурсе или равно
 implementation

{$R *.dfm}
{$R Resources.RES}

procedure TForm1.FormCreate(Sender: TObject);
 var
  i: integer;
const
  res_name='img';
begin
    SetLength(bmps, bmp_cnt);
    SetLength(coordinates, bmp_cnt);
   for i:=0 to bmp_cnt-1 do
  begin
      bmps[i]:=TBitmap.Create;
    with bmps[i] do
    begin
      LoadFromResourceName(HInstance,res_name+IntToStr(i+1)); //img1, img2 .. img30
      Transparent:=true;
      TransParentColor:=Canvas.Pixels[1,1];
    end;
    coordinates[i].X:=100; // здесь какая-то формула для вычисления
    coordinates[i].Y:=180; //здесь какая-то формула для вычисления
  end;
  end;

procedure TForm1.Button1Click(Sender: TObject);// так работало
begin
//  Form1.Image1.canvas.Draw(coordinates[1].X,coordinates[1].Y,bmps[1]);
  Draw_a_picture30(coordinates[0],bmps[0]);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  var
  i: integer;
begin
  for i:=0 to bmp_cnt-1 do //говорят, что так я очистил память
  begin
    bmps[i].Free;
  end;
 end;

procedure TForm1.Draw_a_picture30(coordinates: TPoint; bmps: TBitmap);
  var
begin
 Form1.Image1.canvas.Draw(coordinates.X,coordinates.Y,bmps);
end;

end.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.04.2015, 12:15   #26
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
type
  Tcoordinates = record
    X: integer;
    Y: integer;
  end;

  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }

  public
    { Public declarations }
    procedure Draw_a_picture30(X:Tcoordinates; Y:Tcoordinates; bmps:array of TBitmap);
  end;

var
  Form1: TForm1;
  bmps: array of TBitmap;
  coordinates: array [1..10000] of Tcoordinates;
и так далее по тексту кода
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передача параметров по ссылке и по указателю Smogg Общие вопросы Delphi 7 10.03.2014 23:40
Передача id по ссылке PHP kop PHP 2 11.07.2012 23:40
Передача параметра в ссылке Pingvinenok_Lolo PHP 5 26.02.2012 14:25
Передача массива по ссылке xxxsas PHP 4 20.06.2011 14:52
передача параметра по ссылке veter_s_morya PHP 7 18.10.2009 16:43