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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.06.2008, 10:24
Аватар для Genry
Genry Genry вне форума
Начинающий
 
Регистрация: 14.04.2008
Адрес: с. Россия, г. Курган
Сообщения: 160
Версия Delphi: 7
Репутация: 10
Восклицание Как создать компонент, не помещая его на форму???

Объявляю переменную:
Код:
var
  Memo1: TMemo;
Мне надо сделать так, чтобы компонент был лишь в переменной, но не был на форме. И при этом можно было выполнять действия (например):
Код:
Memo1.lines.loadfromfile('settings.txt');
N15.checked:=strtobool(Memo1.lines[0]);
Помогите, пожалуйста.
Ответить с цитированием
  #2  
Старый 02.06.2008, 11:05
xchrom xchrom вне форума
Начинающий
 
Регистрация: 08.04.2008
Сообщения: 177
Репутация: 15
По умолчанию

можно той же, но до этого и visible в false поставить, по идее не долэжен появиться...

что то типа:
Код:
  memo1:=TMemo.Create(nil);
  memo1.Visible := false;
  memo1.Parent := self;
  memo1.Lines.LoadFromFile('d:\text.txt');
  Edit1.Text := memo1.Lines[0];
  memo1.Free;
Ответить с цитированием
  #3  
Старый 02.06.2008, 11:09
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

А при чем тут Visible? Если он ничейный (Create(nil)) то он вроде и не должен появиться.
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #4  
Старый 02.06.2008, 11:31
xchrom xchrom вне форума
Начинающий
 
Регистрация: 08.04.2008
Сообщения: 177
Репутация: 15
По умолчанию

я потестил - ругается на отсутствие парента почему то в рантайм
Ответить с цитированием
  #5  
Старый 02.06.2008, 11:37
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

У меня все отлично работает
Вот весь модуль
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Memo1: TMemo;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1:=TMemo.Create(nil);
  Memo1.Visible:=False;
  Memo1.Lines.LoadFromFile('D:\CGI.txt');
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  Memo1.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text:=Memo1.Lines[StrToInt(Edit2.Text)];
end;

end.
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.

Последний раз редактировалось The Shadow, 02.06.2008 в 18:10.
Ответить с цитированием
  #6  
Старый 02.06.2008, 11:57
xchrom xchrom вне форума
Начинающий
 
Регистрация: 08.04.2008
Сообщения: 177
Репутация: 15
По умолчанию

хм... видимо визибл действительно излишний
и так работает
Ответить с цитированием
  #7  
Старый 02.06.2008, 18:06
Аватар для Genry
Genry Genry вне форума
Начинающий
 
Регистрация: 14.04.2008
Адрес: с. Россия, г. Курган
Сообщения: 160
Версия Delphi: 7
Репутация: 10
Лампочка

Спасибо!
Но
Код:
Memo1.Parent := self;
Зачем нужно? С этим компонент появляется на форме, а если это не написать, то тоже нормально робит.
Ответить с цитированием
  #8  
Старый 02.06.2008, 18:10
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Не знаю =) Я просто скопировал с форума и не посмотрел, но на форме у меня ничего не появилось.
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #9  
Старый 02.06.2008, 18:12
Аватар для zip000
zip000 zip000 вне форума
Начинающий
 
Регистрация: 24.07.2007
Сообщения: 194
Репутация: 25
По умолчанию

Genry, я так понимаю вам нужна работа со строками? Так для этого есть класс TStringList, говоря простым языком это невизуальный Memo.
__________________
Не профи, но и не чайник . D6 - лучше не придумали. Пока.
Ответить с цитированием
  #10  
Старый 03.06.2008, 09:41
xchrom xchrom вне форума
Начинающий
 
Регистрация: 08.04.2008
Сообщения: 177
Репутация: 15
По умолчанию

Цитата:
Сообщение от Genry
Спасибо!
Но
Код:
Memo1.Parent := self;
Зачем нужно? С этим компонент появляется на форме, а если это не написать, то тоже нормально робит.

да? странно, у мну 5 и 7 делфи ругались на "Control has no parent window!", а когда поставил парент - перестала.

Последний раз редактировалось xchrom, 03.06.2008 в 09:46.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter