Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.12;
Скачать: CL | DM;

Вниз

Переменные в моей функции   Найти похожие ветки 

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

Мне нужно в моей функции строковой переменной присвоить какойнибудь текст, но эта переменная свойство компонента(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)


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


 
Gorger ©   (2006-02-19 02:46) [1]

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


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

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


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

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

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


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

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


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

Можно и так.


 
Ega23 ©   (2006-02-19 12:48) [4]



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


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


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

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


 
TUser ©   (2006-02-19 12:57) [6]

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


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

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


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

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


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

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


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

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


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

Если передать фунции сам 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-20 21:29) [12]

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


 
Virgo_Style ©   (2006-02-20 21:41) [13]

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


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

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

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-21 08:08) [15]

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


не увидел


 
Zeqfreed ©   (2006-02-21 14:47) [16]

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

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

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



Страницы: 1 вся ветка

Текущий архив: 2006.03.12;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.032 c
3-1137321654
Корешь
2006-01-15 13:40
2006.03.12
Как узнать, что набор данных в DataSet был изменен


15-1139825192
Интересующийся
2006-02-13 13:06
2006.03.12
Кактеровки на валюты, акции, нефть и золото


15-1139918164
people
2006-02-14 14:56
2006.03.12
Загрузка linux


2-1140807872
Fl@sh
2006-02-24 22:04
2006.03.12
FireBird!!!!!


2-1140926399
1Al3dK
2006-02-26 06:59
2006.03.12
неверная печать