Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.011 c
6-1132057630
SergGG
2005-11-15 15:27
2006.03.12
Вопросы по сетям


15-1140406651
никак не получается
2006-02-20 06:37
2006.03.12
таблицы


2-1140431213
ForX
2006-02-20 13:26
2006.03.12
Редактирование запроса?


2-1140419004
integery
2006-02-20 10:03
2006.03.12
обновление даних


2-1140895416
49 Cent
2006-02-25 22:23
2006.03.12
Как программно определить текущий месяц?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский