Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Переменные в моей функции [D7, WinXP]


Дмитрий_177 ©   (2006-02-19 02:37:00) 

Мне нужно в моей функции строковой переменной присвоить какойнибудь текст, но эта переменная свойство компонента(Edit1.Text). Делаю так, но текст не присваивается...

myfunc(s: string): boolean;
begin
s := '1';
end;

...

myfunc(Edit1.Text)


Может надо в качестве переменной передавать сам Edit? и ему уже присваивать текст? т.е. так:

myfunc(Edit: TEdit): boolean;
begin
Edit.Text := '1';
end;

...

myfunc(Edit1)


или это еще както делается?


Zeqfreed   (2006-02-21 14:47:00) [1]

[14] Дмитрий_177   (21.02.06 03:34)

> тут нужно задавать высоту и ширину bmp?

Смотря чего хочешь добиться. Скорее всего тут.


Virgo_Style   (2006-02-21 08:08:00) [2]

Дмитрий_177   (21.02.06 3:34) [14]
еще такой вопросик


не увидел


Дмитрий_177   (2006-02-21 03:34:00) [3]

еще такой вопросик:

function myfunc(Image: TImage): boolean;
var
bmp: TBitmap;
begin
bmp := TBitmap.Create;
with bmp do
 try
 <тут нужно задавать высоту и ширину bmp? т.е. так bmp.Width := Image.Picture.Bitmap.Width;
bmp.Height := Image.Picture.Bitmap.Height;>

 Canvas.Draw(0, 0, Image.Picture.Bitmap);

 <дорисовка bmp>
 finally
 Image.Picture.Bitmap.Assign(bmp);
 Free;
 end;
end;


Virgo_Style   (2006-02-20 21:41:00) [4]

Да. Да. Потому что [9]


Дмитрий_177   (2006-02-20 21:29:00) [5]

так правильно? :))


Дмитрий_177   (2006-02-19 21:37:00) [6]

Если передать фунции сам Image, и потом в нем нарисовать нарисованную bmp, т.е. так:

function myfunc(Image: TImage): boolean;
var
 bmp: TBitmap;
begin
bmp := TBitmap.Create;

<прорисовка bmp>
Image.Picture.Bitmap.Assign(bmp)

bmp.free;
end;


так правильно будет?


Дмитрий_177   (2006-02-19 21:14:00) [7]

т.е. в этом случае не создается переменная типа TBitmap? а тоя хотел бы сделать еще типа двойной буферизации.. рисовать в переменной типа TBitmap, а потом выводить в Image1.Picture.Bitmap, чтобы не моргало )))


Гаврила   (2006-02-19 20:40:00) [8]

Image1.Picture.Bitmap - это объект
то есть и так уже указатель


Дмитрий_177   (2006-02-19 20:27:00) [9]

Я тут передал в качестве параметра в функцию Bitmap, тоже свойство компонента (Image1.Picture.Bitmap), а функция рисует на нем... И почему-то рисует... Это правильно?


Дмитрий_177   (2006-02-19 16:35:00) [10]

Спасибо, работает )))


TUser   (2006-02-19 12:57:00) [11]

function MyFunction(Edit:TEdit):Boolean;
begin
try
 Result:=true;
 Edit.Text:='ля-ля-ля' ;
except
 Result:=false;
end;
end;


Zeqfreed   (2006-02-19 12:56:00) [12]

Так и не понял, чего хочет автор. Жаль.


Ega23   (2006-02-19 12:48:00) [13]



function MyFunction(Edit:TEdit):Boolean;
begin
 Result:=Assigned(Edit);
 if not Result then Exit;
 Edit.Text:='ля-ля-ля' ;
end;


Но это, ИМХО, изврат.


Гаврила   (2006-02-19 11:23:00) [14]

Тут два момента

>myfunc(s: string): boolean;
>begin
>s := '1';
> end;


Данный синтаксис передает строку-параметр по значению. ТО есть делается копия строки, передается параметром, изменение s внутри функции не имеет эффекта вне функции
var
 str: string;
begin
 str:='2';
 myfunc(str);
 //str по прежнему равна '2';
Для того, чтобы изменилась сама строка-источник, использзуем ключевое слово var (передача параметра по ссылке)
myfunc( vars: string): boolean;

Но тут вступает в действие второй ньюанс:
вызов myfunc(Edit1.Text) не будет пропущен компилятором, потому что свойства объектов не могут передаваться как var-параметры


> Может надо в качестве переменной передавать сам Edit?
> и ему уже присваивать текст? т.е. так:

Можно и так.


Дмитрий_177   (2006-02-19 02:49:00) [15]

Gorger вы имели ввиду вне функции, т.е. без всякой функции? но так мне не пойдет...


Gorger   (2006-02-19 02:46:00) [16]

Edit.Text := 'My text';
Самый общепринятый способ.


Наверх

Титульная страница Поиск, карта сайта Написать письмо