![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
подскажите можно ли этот код
Код:
GetDir(0,s);
memo2.Text:=Utf8ToAnsi(IdHTTP1.Get('http://xml.weather.co.ua/1.2/forecast/19?dayf=5&userid=yoursite_com'));
Memo2.Text:=Memo1.Text + Memo2.Text + Memo3.Text ;
Memo2.Text:=Replace(Memo2.Text,'<?xml version="1.0" encoding="UTF-8"?>','');
Memo2.Lines.SaveToFile(s+'\1.xml');
XMLDocument1.FileName:='1.xml';
XMLDocument1.Active := true;
Memo4.Text:=XMLDocument1.xml.Text ;
Label8.CAPTION :='ïîãîäà â ' + XMLDocument1.DocumentElement.ChildNodes['city'].ChildNodes['name'].Text + 'å';
Label9.CAPTION := XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['t'].Text+' °Ñ';
g:= XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['pict'].Text;
RxGIFAnimator1.Image.LoadFromFile ('clipart\'+g);
XMLDocument1.Active := false;как то поместить в функцию или в процедуру чтоб я мог потом её вызывать когда мне это нужно |
|
#2
|
||||
|
||||
|
Разве существуют какие-либо ограничения на код помещаемый в процедуры/функции?
|
|
#3
|
|||
|
|||
|
Это должно выглядеть так ?
Код:
function Pogoda(s,g: string): string;
var
s,g: string;
begin
GetDir(0,s);
memo2.Text:=Utf8ToAnsi(IdHTTP1.Get('http://xml.weather.co.ua/1.2/forecast/19?dayf=5&userid=yoursite_com'));
Memo2.Text:=Memo1.Text + Memo2.Text + Memo3.Text ;
Memo2.Text:=Replace(Memo2.Text,'<?xml version="1.0" encoding="UTF-8"?>','');
Memo2.Lines.SaveToFile(s+'\1.xml');
XMLDocument1.FileName:='1.xml';
XMLDocument1.Active := true;
Memo4.Text:=XMLDocument1.xml.Text ;
Label8.CAPTION :='ïîãîäà â ' + XMLDocument1.DocumentElement.ChildNodes['city'].ChildNodes['name'].Text + 'å';
Label9.CAPTION := XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['t'].Text+' °Ñ';
g:= XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['pict'].Text;
XMLDocument1.Active := false;
end ; |
|
#4
|
||||
|
||||
|
Автору конечно виднее, но как ты думаешь, эти переменные не передерутся?
Код:
function Pogoda(s,g: string): string;
var
s,g: string; |
|
#5
|
|||
|
|||
|
чёт не как не выходит! подскажите как сделать?
|
|
#6
|
||||
|
||||
|
Что не выходит, что должно получиться?
|
|
#7
|
|||
|
|||
|
мне нужно чтоб этот код делался при загрузке программы а потом потом периодически повторялся. можно конечно переписывать код постоянно но ка кто не удобно.
возвращаю? если я вас правильно понял то скачиваю XML и вывожу значения из него которые меняються |
|
#8
|
||||
|
||||
|
Давай по-порядку:
1. имена входных и локальных переменных у тебя одинаковые, для чего? 2. где возвращаемое значение из функции? 3. Периодичность вызова функции и, самостоятельно или по какому-либо событию. Достаточно? |
|
#9
|
|||
|
|||
|
1. имена входных и локальных переменных у тебя одинаковые
Да тут я понял наверно нужно просто Код:
function Pogoda(s,g: string): string; Код:
XMLDocument1.DocumentElement.ChildNodes['city'].ChildNodes['name'].Text XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['t'].Text XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['pict'].Text; по сабытию и как это всё оформить не пойму наверно как то так Код:
function Pogoda(n,t,g: string): string;
begin
GetDir(0,s);
memo2.Text:=Utf8ToAnsi(IdHTTP1.Get('http://xml.weather.co.ua/1.2/forecast/19?dayf=5&userid=yoursite_com'));
Memo2.Text:=Memo1.Text + Memo2.Text + Memo3.Text ;
Memo2.Text:=Replace(Memo2.Text,'<?xml version="1.0" encoding="UTF-8"?>','');
Memo2.Lines.SaveToFile(s+'\1.xml');
XMLDocument1.FileName:='1.xml';
XMLDocument1.Active := true;
Memo4.Text:=XMLDocument1.xml.Text ;
n :='ïîãîäà â ' + XMLDocument1.DocumentElement.ChildNodes['city'].ChildNodes['name'].Text + 'å';
t := XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['t'].Text+' °Ñ';
g:= XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['pict'].Text; |
|
#10
|
||||
|
||||
|
Это не возвращаемое условие, а часть кода:
Код:
XMLDocument1.DocumentElement.ChildNodes['city'].ChildNodes['name'].Text XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['t'].Text XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['pict'].Text; Код:
function MyFunc : String; begin SomeCode Result := что-то end; |
|
#11
|
|||
|
|||
|
а как сделать процедуру на моём примере и как её вызывать потом?
|
|
#12
|
|||
|
|||
|
как то так
Код:
procedure TForm1.Pogoda(Sender: TObject);
var
s,g: string;
begin
GetDir(0,s);
memo2.Text:=Utf8ToAnsi(IdHTTP1.Get('http://xml.weather.co.ua/1.2/forecast/19?dayf=5&userid=yoursite_com'));
Memo2.Text:=Memo1.Text + Memo2.Text + Memo3.Text ;
Memo2.Text:=Replace(Memo2.Text,'<?xml version="1.0" encoding="UTF-8"?>','');
Memo2.Lines.SaveToFile(s+'\1.xml');
XMLDocument1.FileName:='1.xml';
XMLDocument1.Active := true;
Memo4.Text:=XMLDocument1.xml.Text ;
Label8.CAPTION :='погода в ' + XMLDocument1.DocumentElement.ChildNodes['city'].ChildNodes['name'].Text + 'е';
Label9.CAPTION := XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['t'].Text+' °С';
g:= XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['pict'].Text;
XMLDocument1.Active := false; |
|
#13
|
||||
|
||||
|
Если g, нужно всё-таки вернуть, сделай примерно так:
Код:
function MyFunc(S : String) : String;
begin
GetDir(0, S);
memo2.Text := Utf8ToAnsi(IdHTTP1.Get('http://xml.weather.co.ua/1.2/forecast/19?dayf=5&userid=yoursite_com'));
Memo2.Text := Memo1.Text + Memo2.Text + Memo3.Text ;
Memo2.Text := Replace(Memo2.Text,'<?xml version="1.0" encoding="UTF-8"?>','');
Memo2.Lines.SaveToFile(s + '\1.xml');
XMLDocument1.FileName := '1.xml';
XMLDocument1.Active := True;
Memo4.Text := XMLDocument1.xml.Text ;
Label8.CAPTION := 'погода в ' + XMLDocument1.DocumentElement.ChildNodes['city'].ChildNodes['name'].Text + 'е';
Label9.CAPTION := XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['t'].Text + ' °С';
Result := XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['pict'].Text;
XMLDocument1.Active := False;
end; |
|
#14
|
|||
|
|||
|
мне нужно чтоб весь код проделывался сначала и до конца когда я его вызываю
процедура наверно подойдёт ! я правильно её написал? и как мне её вызвать ? |
|
#15
|
||||
|
||||
|
Цитата:
2. Нет неправильно, использована неинициализированная локальная переменная s, локальная переменная g, будет потеряна по выходу из процедуры. 3. где-то в коде: Код:
... Pogoda(NIL); ... |