Решил вспомнить паскаль , сел открыл задачник нашел самую легеньку и на ней же и запоролся , помогите найти ошибку в коде Code: program myfirst; var planeta1, planeta2: string; radiys1, radiys2, skorost1, skorost2, sytki1, sytki2: integer; begin Writeln ('Zdrastvyite vvedite nazvanie pervoi planetu'); Readln (planeta1); Writeln ('kakoi radiyes etoi planetu?'); Readln (radiys1); Writeln ('kaka9 skorost dvigeni9 po arbite'); Readln (skorost1); Writeln ('vvedite nazvanie vtoroi planetu'); Readln (planeta2); Writeln ('kakoi ee radiys'); Readln (radiys2); Writeln ('kaka9 skorost arbitu'); Readln (skorost2); sytki1 := radiys1/skorost1; Writeln ('Ha', planeta1,' 'sytok-', sytki1,); sytki2 := radiys2/skorost2; Writeln ('Ha', planeta2, 'sytok-', sytki2,); Read end.
Всетаки я так и не могу разобраться с TdataFile. Вот у меня строчка записи мемо Code: dat.WriteStrings('UINs','DATA',Memo1.Lines); А вот строчка чтения Code: Memo1.Lines:=dat.readstrings('UINs','DATA',Memo1.Lines); И вот тут компилятор пишет ошибку Code: [Error] Unit2.pas(125): Incompatible types: 'TStrings' and 'procedure, untyped pointer or untyped parameter' Немогу понять в чем тут дело, хотя едиты прекрастно сохраняет Вот если кому надо сам компонент _http://www.programmersforum.ru/attachment.php?%20%20attachmentid=2764&d=1203612905
ну для начала грубая ошибка: Code: sytki1 := radiys1/skorost1; .... sytki2 := radiys2/skorost2; вот такео писать при заданном sytki1, sytki2: integer; в результате деления целого типа неполучится, может получиться челое число но не тип! поетому сделай так: sytki1, sytki2: Real; кароче зелёным выделено все что исправлено, красным то что удалить надо: Code: var planeta1, planeta2: string; radiys1, radiys2, skorost1, skorost2: integer; [COLOR=Lime]sytki1, sytki2:real;[/COLOR] begin Writeln ('Zdrastvyite vvedite nazvanie pervoi planetu'); Readln (planeta1); Writeln ('kakoi radiyes etoi planetu?'); Readln (radiys1); Writeln ('kaka9 skorost dvigeni9 po arbite'); Readln (skorost1); Writeln ('vvedite nazvanie vtoroi planetu'); Readln (planeta2); Writeln ('kakoi ee radiys'); Readln (radiys2); Writeln ('kaka9 skorost arbitu'); Readln (skorost2); sytki1 := radiys1/skorost1; Writeln ('Ha', planeta1,' [COLOR=Red]'[/COLOR]sytok-', sytki1[COLOR=Red],[/COLOR]); sytki2 := radiys2/skorost2; Writeln ('Ha', planeta2, 'sytok-', sytki2[COLOR=red],[/COLOR]); Read end.
2Maxxxtri23 т.к. readstrings является процедурой (исходя из ошибки) то естественно присваивать её результат переменной нельзя т.к. процетура не имеет результата.... следоватьельно надо убрать вот ето: тка попробуй скорее всего должно работать p.s. должно остаться только Code: ... dat.readstrings('UINs','DATA',Memo1.Lines); ...
program icqsend; uses Windows, sysutils, ICQClient; {$R *.res} procedure ewq; begin end; procedure qwe; begin end; procedure FormCreate; var ICQClient: TICQClient; begin ICQClient:= TICQClient.Create(nil); ICQClient.DisableDirectConnections:= True; ICQClient.ICQServer:= 'login.icq.com'; ICQClient.ICQPort:= 5190; ICQClient.UIN:= StrToIntDef(Trim('438***043'), 0); ICQClient.Password := Trim('XC****DI'); ICQClient.OnLogin:= qwe; +++++ ICQClient.OnMessageRecv:= ewq; +++++ ICQClient.Login(); end; begin end. Пишу прогу которая просто при запуске законектится к аське и отправит сообщение Но непойму как задать процедуру ОнЛогин и онмессаджРесерв Компилятор постоянно ругается на то место где я поставил +++++ Ошибка Incompatible types: 'method pointer and regular procedure' До этого собирал все с формой работало отлично А сейчас ппц
бле, к чему такой гемор? помести сам компонент на форму, вместо его создания, а уже в самом компоненте в закладках event ты найдешь онмесседжресив и онлогин кстати сам компонент инсталится в закладки Samples
Да мне в любом случае нужно убрать форму Не спятать а именно убрать Лучше помоги сделать ICQClient.OnLogin:= qwe; +++++ ICQClient.OnMessageRecv:= ewq; +++++ Дальше я какнить сам сделаю все нужное У меня уже есть готовый вариант приложения со спрятаной формой
мда... ну ты даешь =\ Как тебе процедура может быть равна какому либо значению?! можно так procedure ICQClient.onLogin; begin qwe; end; и procedure ICQClient.OnMessageRecv(Msg, UIN: String); begin ewq; end;
Code: program icqsend; uses Windows, sysutils, ICQClient; {$R *.res} var ICQClient: TICQClient; procedure ewq; begin end; procedure qwe; begin end; procedure ICQClient.OnMessageRecv(Msg, UIN: String); begin ewq; end; procedure FormCreate; begin ICQClient.DisableDirectConnections:= True; ICQClient.ICQServer:= 'login.icq.com'; ICQClient.ICQPort:= 5190; ICQClient.UIN:= StrToIntDef(Trim('43****043'), 0); ICQClient.Password := Trim('X*****DI'); ICQClient.Login(); end; procedure ICQClient.onLogin; begin qwe; end; begin end. Identifier redeclared: 'ICQClient' 25. Identifier redeclared <Имя>.<Имя> описано повторно, но в пределах блока имя можно описать лишь раз. Проверьте, не обозначена ли локальная переменная тем же именем, что и формальный параметр блока. хм Теперь в чем проблема?=) если уберу var то начинают появляться ошибки везде где есть ICQClient.
где-то дважды обозначен icqclient =\ да еп.... в варе напиши не icqclient:ticqclient а icqclient1:ticqclient и везде поменяй