Форум по 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,116
Версия 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 Image0: TImage
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 код:
Image0: TImage;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Image7: TImage;
Image8: TImage;
Image9: TImage;
Image10: TImage;
Image11: TImage;
Image12: TImage;
Image13: TImage;
Image14: TImage;
Image15: TImage;
Image16: TImage;
Image17: TImage;
Image18: TImage;
Image19: TImage;
Image20: TImage;
Image21: TImage;
Image22: TImage;
Image23: TImage;
Image24: TImage;
Image25: TImage;
Image26: TImage;
Image27: TImage;
Image28: TImage;
Image29: TImage;
Image30: TImage;
Image31: TImage;
Image32: TImage;
Image33: TImage;
Image34: TImage;
Image35: TImage;
Image36: TImage;
Image37: TImage;
Image38: TImage;
Image39: TImage;
Image40: TImage;
Image41: TImage;
Image42: TImage;
Image43: TImage;
Image44: TImage;
Image45: TImage;
Image46: TImage;
Image47: TImage;
Image48: TImage;
Image49: TImage;
Image50: TImage;
Image51: TImage;
Image52: TImage;
Image53: TImage;
Image54: TImage;
Image55: TImage;
Image56: TImage;
Image57: TImage;
Image58: TImage;
Image59: TImage;
Image60: TImage;
Image61: TImage;
Image62: TImage;
Image63: TImage;
Image64: TImage;
Image65: TImage;
Image66: TImage;
Image67: TImage;
Image68: TImage;
Image69: TImage;
Image70: TImage;
Image71: TImage;
Image72: TImage;
Image73: TImage;
Image74: TImage;
Image75: TImage;
Image76: TImage;
Image77: TImage;
Image78: TImage;
Image79: TImage;
Image80: TImage;
Image81: TImage;
Image82: TImage;
Image83: TImage;
Image84: TImage;
Image85: TImage;
Image86: TImage;
Image87: TImage;
Image88: TImage;
Image89: TImage;
Image90: TImage;
Image91: TImage;
Image92: TImage;
Image93: TImage;
Image94: TImage;
Image95: TImage;
Image96: TImage;
Image97: TImage;
Image98: TImage;
Image99: TImage; 
Код:
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,116
Версия 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, время: 16:06.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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