Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.04.2011, 18:46
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию Создание компонентов

Доброго времени суток. Возникла следующая проблема: Нужно создать 100+ TImage. На одинаковом расстоянии, и переименовать их как надо. Вручную это займёт много времени, можно ли как-нибудь программно? Знаю, можно таким кодом:

Код:
procedure DoSomethingWithEditControls;
var
  K: Integer;
  EditArray: array[0..99] of Tedit;
begin
  try
    for K := 0 to 99 do
    begin
      EditArray[K] := TEdit.Create(form1);
      EditArray[K].Parent := form1;
      EditArray[k].Left := 100;
      EditArray[k].Top := K * 10;
      EditArray[k].Visible:=true;
    end;
  finally
  end;
end;

Но тут он создаёт тедиты в программе, а мне нужно в самом проекте.
Ответить с цитированием
  #2  
Старый 25.04.2011, 18:47
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

т.е. чтобы они в design-time были?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 25.04.2011, 19:07
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

Что бы он был на самой форме в проекте.
Ответить с цитированием
  #4  
Старый 25.04.2011, 19:12
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Маньяк
Напиши программку, которая тебе сгенерит соответсвующий исходный код .pas и .dfm. Нонче .dfm текстовый, так что его легко сгенерить.
Ответить с цитированием
  #5  
Старый 25.04.2011, 19:13
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

О, хорошая идея, спасибо. Т.е. после
Код:
  object Button2: TButton
    Left = 488
    Top = 256
    Width = 75
    Height = 25
    Caption = 'Button2'
    TabOrder = 16
    OnClick = Button2Click
  end
end

Этого добавить код, который мне нужен для Тимэдж и всё? Или в компиляторе то же объявлять нужно?
Ответить с цитированием
  #6  
Старый 25.04.2011, 19:28
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

это в dfm:
PHP код:
object Image0TImage
Left 
16
Top 
104
Width 
33
Height 
33
end
object Image1
TImage
Left 
49
Top 
104
Width 
33
Height 
33
end
object Image2
TImage
Left 
82
Top 
104
Width 
33
Height 
33
end
object Image3
TImage
Left 
115
Top 
104
Width 
33
Height 
33
end
object Image4
TImage
Left 
148
Top 
104
Width 
33
Height 
33
end
object Image5
TImage
Left 
181
Top 
104
Width 
33
Height 
33
end
object Image6
TImage
Left 
214
Top 
104
Width 
33
Height 
33
end
object Image7
TImage
Left 
247
Top 
104
Width 
33
Height 
33
end
object Image8
TImage
Left 
280
Top 
104
Width 
33
Height 
33
end
object Image9
TImage
Left 
313
Top 
104
Width 
33
Height 
33
end
object Image10
TImage
Left 
346
Top 
104
Width 
33
Height 
33
end
object Image11
TImage
Left 
379
Top 
104
Width 
33
Height 
33
end
object Image12
TImage
Left 
412
Top 
104
Width 
33
Height 
33
end
object Image13
TImage
Left 
445
Top 
104
Width 
33
Height 
33
end
object Image14
TImage
Left 
478
Top 
104
Width 
33
Height 
33
end
object Image15
TImage
Left 
511
Top 
104
Width 
33
Height 
33
end
object Image16
TImage
Left 
16
Top 
137
Width 
33
Height 
33
end
object Image17
TImage
Left 
49
Top 
137
Width 
33
Height 
33
end
object Image18
TImage
Left 
82
Top 
137
Width 
33
Height 
33
end
object Image19
TImage
Left 
115
Top 
137
Width 
33
Height 
33
end
object Image20
TImage
Left 
148
Top 
137
Width 
33
Height 
33
end
object Image21
TImage
Left 
181
Top 
137
Width 
33
Height 
33
end
object Image22
TImage
Left 
214
Top 
137
Width 
33
Height 
33
end
object Image23
TImage
Left 
247
Top 
137
Width 
33
Height 
33
end
object Image24
TImage
Left 
280
Top 
137
Width 
33
Height 
33
end
object Image25
TImage
Left 
313
Top 
137
Width 
33
Height 
33
end
object Image26
TImage
Left 
346
Top 
137
Width 
33
Height 
33
end
object Image27
TImage
Left 
379
Top 
137
Width 
33
Height 
33
end
object Image28
TImage
Left 
412
Top 
137
Width 
33
Height 
33
end
object Image29
TImage
Left 
445
Top 
137
Width 
33
Height 
33
end
object Image30
TImage
Left 
478
Top 
137
Width 
33
Height 
33
end
object Image31
TImage
Left 
511
Top 
137
Width 
33
Height 
33
end
object Image32
TImage
Left 
16
Top 
170
Width 
33
Height 
33
end
object Image33
TImage
Left 
49
Top 
170
Width 
33
Height 
33
end
object Image34
TImage
Left 
82
Top 
170
Width 
33
Height 
33
end
object Image35
TImage
Left 
115
Top 
170
Width 
33
Height 
33
end
object Image36
TImage
Left 
148
Top 
170
Width 
33
Height 
33
end
object Image37
TImage
Left 
181
Top 
170
Width 
33
Height 
33
end
object Image38
TImage
Left 
214
Top 
170
Width 
33
Height 
33
end
object Image39
TImage
Left 
247
Top 
170
Width 
33
Height 
33
end
object Image40
TImage
Left 
280
Top 
170
Width 
33
Height 
33
end
object Image41
TImage
Left 
313
Top 
170
Width 
33
Height 
33
end
object Image42
TImage
Left 
346
Top 
170
Width 
33
Height 
33
end
object Image43
TImage
Left 
379
Top 
170
Width 
33
Height 
33
end
object Image44
TImage
Left 
412
Top 
170
Width 
33
Height 
33
end
object Image45
TImage
Left 
445
Top 
170
Width 
33
Height 
33
end
object Image46
TImage
Left 
478
Top 
170
Width 
33
Height 
33
end
object Image47
TImage
Left 
511
Top 
170
Width 
33
Height 
33
end
object Image48
TImage
Left 
16
Top 
203
Width 
33
Height 
33
end
object Image49
TImage
Left 
49
Top 
203
Width 
33
Height 
33
end
object Image50
TImage
Left 
82
Top 
203
Width 
33
Height 
33
end
object Image51
TImage
Left 
115
Top 
203
Width 
33
Height 
33
end
object Image52
TImage
Left 
148
Top 
203
Width 
33
Height 
33
end
object Image53
TImage
Left 
181
Top 
203
Width 
33
Height 
33
end
object Image54
TImage
Left 
214
Top 
203
Width 
33
Height 
33
end
object Image55
TImage
Left 
247
Top 
203
Width 
33
Height 
33
end
object Image56
TImage
Left 
280
Top 
203
Width 
33
Height 
33
end
object Image57
TImage
Left 
313
Top 
203
Width 
33
Height 
33
end
object Image58
TImage
Left 
346
Top 
203
Width 
33
Height 
33
end
object Image59
TImage
Left 
379
Top 
203
Width 
33
Height 
33
end
object Image60
TImage
Left 
412
Top 
203
Width 
33
Height 
33
end
object Image61
TImage
Left 
445
Top 
203
Width 
33
Height 
33
end
object Image62
TImage
Left 
478
Top 
203
Width 
33
Height 
33
end
object Image63
TImage
Left 
511
Top 
203
Width 
33
Height 
33
end
object Image64
TImage
Left 
16
Top 
236
Width 
33
Height 
33
end
object Image65
TImage
Left 
49
Top 
236
Width 
33
Height 
33
end
object Image66
TImage
Left 
82
Top 
236
Width 
33
Height 
33
end
object Image67
TImage
Left 
115
Top 
236
Width 
33
Height 
33
end
object Image68
TImage
Left 
148
Top 
236
Width 
33
Height 
33
end
object Image69
TImage
Left 
181
Top 
236
Width 
33
Height 
33
end
object Image70
TImage
Left 
214
Top 
236
Width 
33
Height 
33
end
object Image71
TImage
Left 
247
Top 
236
Width 
33
Height 
33
end
object Image72
TImage
Left 
280
Top 
236
Width 
33
Height 
33
end
object Image73
TImage
Left 
313
Top 
236
Width 
33
Height 
33
end
object Image74
TImage
Left 
346
Top 
236
Width 
33
Height 
33
end
object Image75
TImage
Left 
379
Top 
236
Width 
33
Height 
33
end
object Image76
TImage
Left 
412
Top 
236
Width 
33
Height 
33
end
object Image77
TImage
Left 
445
Top 
236
Width 
33
Height 
33
end
object Image78
TImage
Left 
478
Top 
236
Width 
33
Height 
33
end
object Image79
TImage
Left 
511
Top 
236
Width 
33
Height 
33
end
object Image80
TImage
Left 
16
Top 
269
Width 
33
Height 
33
end
object Image81
TImage
Left 
49
Top 
269
Width 
33
Height 
33
end
object Image82
TImage
Left 
82
Top 
269
Width 
33
Height 
33
end
object Image83
TImage
Left 
115
Top 
269
Width 
33
Height 
33
end
object Image84
TImage
Left 
148
Top 
269
Width 
33
Height 
33
end
object Image85
TImage
Left 
181
Top 
269
Width 
33
Height 
33
end
object Image86
TImage
Left 
214
Top 
269
Width 
33
Height 
33
end
object Image87
TImage
Left 
247
Top 
269
Width 
33
Height 
33
end
object Image88
TImage
Left 
280
Top 
269
Width 
33
Height 
33
end
object Image89
TImage
Left 
313
Top 
269
Width 
33
Height 
33
end
object Image90
TImage
Left 
346
Top 
269
Width 
33
Height 
33
end
object Image91
TImage
Left 
379
Top 
269
Width 
33
Height 
33
end
object Image92
TImage
Left 
412
Top 
269
Width 
33
Height 
33
end
object Image93
TImage
Left 
445
Top 
269
Width 
33
Height 
33
end
object Image94
TImage
Left 
478
Top 
269
Width 
33
Height 
33
end
object Image95
TImage
Left 
511
Top 
269
Width 
33
Height 
33
end
object Image96
TImage
Left 
16
Top 
302
Width 
33
Height 
33
end
object Image97
TImage
Left 
49
Top 
302
Width 
33
Height 
33
end
object Image98
TImage
Left 
82
Top 
302
Width 
33
Height 
33
end
object Image99
TImage
Left 
115
Top 
302
Width 
33
Height 
33
end 
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 25.04.2011, 19:29
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

это в pas:
PHP код:
Image0TImage;
Image1TImage;
Image2TImage;
Image3TImage;
Image4TImage;
Image5TImage;
Image6TImage;
Image7TImage;
Image8TImage;
Image9TImage;
Image10TImage;
Image11TImage;
Image12TImage;
Image13TImage;
Image14TImage;
Image15TImage;
Image16TImage;
Image17TImage;
Image18TImage;
Image19TImage;
Image20TImage;
Image21TImage;
Image22TImage;
Image23TImage;
Image24TImage;
Image25TImage;
Image26TImage;
Image27TImage;
Image28TImage;
Image29TImage;
Image30TImage;
Image31TImage;
Image32TImage;
Image33TImage;
Image34TImage;
Image35TImage;
Image36TImage;
Image37TImage;
Image38TImage;
Image39TImage;
Image40TImage;
Image41TImage;
Image42TImage;
Image43TImage;
Image44TImage;
Image45TImage;
Image46TImage;
Image47TImage;
Image48TImage;
Image49TImage;
Image50TImage;
Image51TImage;
Image52TImage;
Image53TImage;
Image54TImage;
Image55TImage;
Image56TImage;
Image57TImage;
Image58TImage;
Image59TImage;
Image60TImage;
Image61TImage;
Image62TImage;
Image63TImage;
Image64TImage;
Image65TImage;
Image66TImage;
Image67TImage;
Image68TImage;
Image69TImage;
Image70TImage;
Image71TImage;
Image72TImage;
Image73TImage;
Image74TImage;
Image75TImage;
Image76TImage;
Image77TImage;
Image78TImage;
Image79TImage;
Image80TImage;
Image81TImage;
Image82TImage;
Image83TImage;
Image84TImage;
Image85TImage;
Image86TImage;
Image87TImage;
Image88TImage;
Image89TImage;
Image90TImage;
Image91TImage;
Image92TImage;
Image93TImage;
Image94TImage;
Image95TImage;
Image96TImage;
Image97TImage;
Image98TImage;
Image99TImage
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
 for i:=0 to 99 do
 begin
   Memo1.Lines.Add('object Image'+IntToStr(i)+': TImage');
   Memo1.Lines.Add('Left = '+IntToStr(16+33*(i mod 16)));
   Memo1.Lines.Add('Top = '+IntToStr(104+33*(i div 16)));
   Memo1.Lines.Add('Width = 33');
   Memo1.Lines.Add('Height = 33');
   Memo1.Lines.Add('end');
   Memo2.Lines.Add('Image'+IntToStr(i)+': TImage;');
 end;
end;

end.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #8  
Старый 25.04.2011, 19:42
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

Большое спасибо!

Но появилась проблема, эти имэджи бывают не заполненые, ну т.е. пустые, а полоса прокрутки всё равно появляется. Надо, что бы она появлялась по мере заполнения имэджов.
Ответить с цитированием
  #9  
Старый 25.04.2011, 21:54
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Эээээ. Это вы про что? Про скролбар формы что-ли на которой имиджи добавляете?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #10  
Старый 25.04.2011, 23:28
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

Ну я создал 100 имэджов. Когда запускаю программу, её можно прокручивать, хотя имэджи не видимы. Хотелось бы, что бы скроллбар увеличивался по мере заполнения имэджов.
Ответить с цитированием
  #11  
Старый 26.04.2011, 00:46
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Данное решение кажется мне нерациональным. Объясните, что вы хотите получить в итоговой программе, и мы подскажем более простой и качественный метод решения.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #12  
Старый 26.04.2011, 01:59
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Человеку нужен компонент типа ListView в режиме иконок. Рекомендую хороший компонент - EasyListView от MustangPeak. Хотя custom-отрисовка там сделана не очень прозрачно, но работает все на ура.
Ответить с цитированием
  #13  
Старый 27.04.2011, 01:53
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

Я делаю что-то типа базы предметов, для одной игры. Программа сейчас выглядит так:

Когда не выделен ни один чекбокс, то загружаются все предметы, которые есть в массиве (113 всего), дак вот а когда нажимашь к примеру мана, то предметов остаётся 20, это я сделал, мне бы вот этот скроллбар убрать, когда картинки пустые.
Ответить с цитированием
  #14  
Старый 27.04.2011, 02:53
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

А почему бы не создавать, допустим, в скроллбоксе столько имежов, сколько нужно для конкретной подборки, а при изменении фильтра - удалять всё что есть и создавать новые? По-моему, это более разумный вариант..
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #15  
Старый 27.04.2011, 11:39
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

Хм, я никогда не работал в скроллбоксе. Не могли бы вы рассказать, для каких целей он вообще нужен. И как будет выглядить моя программа, со скроллбоксом?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:03.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025