![]() |
|
|
Регистрация | << Правила форума >> | 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
|
||||
|
||||
![]() Разве существуют какие-либо ограничения на код помещаемый в процедуры/функции?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#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; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
![]() чёт не как не выходит! подскажите как сделать?
|
#6
|
||||
|
||||
![]() Что не выходит, что должно получиться?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#7
|
|||
|
|||
![]() мне нужно чтоб этот код делался при загрузке программы а потом потом периодически повторялся. можно конечно переписывать код постоянно но ка кто не удобно.
возвращаю? если я вас правильно понял то скачиваю XML и вывожу значения из него которые меняються |
#8
|
||||
|
||||
![]() Давай по-порядку:
1. имена входных и локальных переменных у тебя одинаковые, для чего? 2. где возвращаемое значение из функции? 3. Периодичность вызова функции и, самостоятельно или по какому-либо событию. Достаточно? Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#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; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#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; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#14
|
|||
|
|||
![]() мне нужно чтоб весь код проделывался сначала и до конца когда я его вызываю
процедура наверно подойдёт ! я правильно её написал? и как мне её вызвать ? |
#15
|
||||
|
||||
![]() Цитата:
2. Нет неправильно, использована неинициализированная локальная переменная s, локальная переменная g, будет потеряна по выходу из процедуры. 3. где-то в коде: Код:
... Pogoda(NIL); ... Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |