Форум: "Начинающим";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];
ВнизПеременные в моей функции Найти похожие ветки
← →
Дмитрий_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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.014 c