Текущий архив: 2006.10.29;
Скачать: CL | DM;
Вниз
Задачки по Delphi Найти похожие ветки
← →
Ketmar © (2006-10-04 22:11) [40]>[39] XProger(c) 4-Oct-2006, 22:09
>Ketmar, что означает ^ в данном коде?
способ задания символа по его коду. не уверен, что это есть в стандарте, но в TP5 уже точно было. %-) например, ^G -- это #7. %-)
← →
Чапаев © (2006-10-04 22:12) [41]Ctrl.
^J==#10
^M==#13
и так далее. Ну и что?
← →
XProger © (2006-10-04 22:18) [42]Ketmar, это пережитки прошлого о которых нет упоминания в хелпе к Delphi. То же самое можно сказать и о скобках в условиях... :)
← →
Чапаев © (2006-10-04 22:27) [43]Ты о (. и .)? Ну если хелп не читать, то тогда, конечно, можно утверждать, что в хелпе такого нет...
← →
XProger © (2006-10-04 22:29) [44]Чапаев, нет, я про скобки ( и )
← →
Ketmar © (2006-10-04 22:43) [45]>[44] XProger(c) 4-Oct-2006, 22:29
>Чапаев, нет, я про скобки ( и )
и что в скобках?
← →
TUser © (2006-10-04 22:54) [46]> XProger © (04.10.06 22:07) [37]
Забавно. Никто не использует такой синтаксис, а оно есть - надо же. Твое решение для [20]? Реальная ситуация, в котоорой можно допустить ошибку. Только, чур, не компилировать и не смотреть посты, в которых дан ответ.
← →
Ketmar © (2006-10-04 22:57) [47]>[46] TUser(c) 4-Oct-2006, 22:54
>Забавно. Никто не использует такой синтаксис, а
>оно есть - надо же.
стандарт-с... обратная совместимость, опять же...
← →
XProger © (2006-10-04 23:00) [48]TUser, ShortInt будет, т.к. 10 входит в диапозон.
← →
Servelat © (2006-10-04 23:42) [49]> [20]
Я бы на месте компилятора заматерился на такую фигню (=. Че за нах, непонятно какую и функцию то выбрать (=.
← →
Ketmar © (2006-10-04 23:45) [50]>[49] Servelat(c) 4-Oct-2006, 23:42
всё там понятно. типы-то разные.
← →
Servelat © (2006-10-05 00:16) [51]> [50]
да я уж посмотрел. Но родись я компилятором все равно таких авторов бы посылал: 10 приводиться и к тому и к тому типу, так что это место где программист может облажаться, а зачем позволять программисту садиться в лужу (пусть даже и потенциально). Хотя Борланду конечно виднее (=. Но тогда встречный вопрос, а если так (разумееться не компилируя):procedure P(r: integer); overload;
begin
writeln("int");
end;
procedure P(r: cardinal); overload;
begin
writeln("uint");
end;
begin
P(-10);
P(10);
end.
← →
Ketmar © (2006-10-05 00:17) [52]>[51] Servelat(c) 5-Oct-2006, 00:16
а собственно, где-то в справке я встречал упоминание, что приводится именно к меньшему типу.
или это Оберон был?..
← →
Ketmar © (2006-10-05 00:18) [53]а overload вообще зло. %-)
← →
isasa © (2006-10-05 00:35) [54]Servelat © (05.10.06 00:16) [51]
:)
Так, кто-ж тебе доктор?
Пиши явно
P(integer(-10));
P(cardinal(10));
Ketmar © (05.10.06 00:18) [53]
а overload вообще зло. %-)
Абсолютное :)
← →
Джо © (2006-10-05 00:38) [55]Да ладно вам, "зло" :) Просто удобный инструмент, которым, однако, нужно пользоваться с осторожностью.
← →
Ketmar © (2006-10-05 00:46) [56]>[55] Джо(c) 5-Oct-2006, 00:38
>которым, однако, нужно пользоваться с
>осторожностью.
молотком тоже можно палец ушибить, согласен. но всё равно -- гадость.
...гордо сказал Кэтмар и принялся дописывать очередную перегруженую функцию.
← →
Джо © (2006-10-05 01:06) [57]> [56] Ketmar © (05.10.06 00:46)
> ...гордо сказал Кэтмар и принялся дописывать очередную перегруженую
> функцию.
Это по-нашему! :b:
← →
Германн © (2006-10-05 01:40) [58]
> Ketmar © (05.10.06 00:46) [56]
>
> >[55] Джо(c) 5-Oct-2006, 00:38
> >которым, однако, нужно пользоваться с
> >осторожностью.
> молотком тоже можно палец ушибить, согласен. но всё равно
> -- гадость.
>
Во-во! Именно так и относится к молотку меньшая из двух моих собачек. Как только его видит, так сразу пытается спрятаться!
Сразу отвечаю на "очевидные" вопросы - её молотком не бил никто и никогда! Просто она боится громких и резких звуков, которые увы возникают при использовании вышеупомянутого!
А как прожить без молотка! :-)
← →
Ketmar © (2006-10-05 01:44) [59]>[58] Германн(c) 5-Oct-2006, 01:40
>А как прожить без молотка! :-)
у меня его нет. %-)
← →
guav © (2006-10-05 01:53) [60]> [0] XProger © (04.10.06 19:48)
Это всё ерунда. Вот вопрос (уже задавал я же здесь):procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := (x.y[z]); {1}
Caption := (x.y)[z]; {2}
end;
Оба варианта присвоения Caption могут быть синтаксически правильными.
В каком случае может оказаться, что оба варианта компилируются и выполняются, но {1} всегда присваивает "1" , а {2} присваивает "2" ?
(Чтобы не использовали свойства с подсчётом вызовов {1} должен всегда присваивать "1", а {2} -всегда "2", не зависимо от порядка их выполнения и наличия вызова другого варианта)
← →
guav © (2006-10-05 02:01) [61]вопрос не такой тривиальный, как [0], поэтому разрешается отвечать не только автору векти, но и всем, кому он интересен и кто прошлое обсуждение пропустил ;-)
← →
Джо © (2006-10-05 02:03) [62]так x,y,z и в {1} и в {2} одинаковые сущности?
← →
Джо © (2006-10-05 02:05) [63]> [62] Джо © (05.10.06 02:03)
> так x,y,z и в {1} и в {2} одинаковые сущности?
Фигню, сморозил-с.
← →
guav © (2006-10-05 02:15) [64]Можно задачу поставить так:
Привести Unit2, обеспечивающий результат [60]
Оба варианта компилируются и выполняются, но {1} всегда присваивает "1" , а {2} присваивает "2"unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses unit2;
procedure TForm1.FormCreate(Sender: TObject);
begin
Caption := (x.y[z]); {1}
Caption := (x.y)[z]; {2}
end;
end.
← →
MBo © (2006-10-05 06:01) [65]О правиле имен :)
McSimm © (14.02.02 10:30)
"...подлинное имя воплощает самую суть вещи. Назвать имя - значит обрести над этой вещью власть. Я верно отвечаю, госпожа учительница?"
Урсула Ле Гуин. "Правило имен".
Посмотрите на этот пример и постарайтесь предсказать что попадет в Caption формы при нажатии на Button1. Потом проверьте.
На форме лежат:
Button1: TButton;
MyNameIsA: TEdit;
MyNameIsB: TMemo;procedure TForm1.Button1Click(Sender: TObject);
begin
MyNameIsA.Text := "Меня зовут A";
MyNameIsB.Text := "Меня зовут B";
MyNameIsA.Name := "Unnamed";
MyNameIsB.Name := "MyNameIsA";
Caption := MyNameIsA.Text
end;
← →
Джо © (2006-10-05 06:24) [66]> [65] MBo © (05.10.06 06:01)
Однако, это просто страшно :0)
← →
skyle © (2006-10-05 07:31) [67]
> MBo © (05.10.06 06:01) [65]
Ну ты даёшь....;-) Мсье тонкий извращенец ;)
← →
Gydvin © (2006-10-05 07:38) [68]
> MyNameIsA.Text := "Меня зовут A";
> MyNameIsB.Text := "Меня зовут B";
>
> MyNameIsA.Name := "Unnamed";
> MyNameIsB.Name := "MyNameIsA";
>
> Caption := MyNameIsA.Text
а в чем прикол
caption= "Меня зовут B";
← →
MBo © (2006-10-05 07:48) [69]>skyle
Это не я, находка Максима ;)
← →
Gydvin © (2006-10-05 08:06) [70]может ктонить пояснит в чем прикол.
← →
MBo © (2006-10-05 08:54) [71]>Gydvin
Так и задача в том, чтобы разобраться в механизме прикола
← →
Думкин © (2006-10-05 08:56) [72]> Gydvin © (05.10.06 08:06) [70]
Для медитации:TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
MyNameisA1 : TEdit;
MyNameisB1 : TMemo;
published
MyNameisA2 : TEdit;
MyNameisB2 : TMemo;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
MyNameisA1 := TEdit.Create(self);
MyNameisA1.Parent := self;
MyNameisA1.Left := 5;
MyNameisA1.Top := 1;
MyNameisB1 := TMemo.Create(self);
MyNameisB1.Parent := self;
MyNameisB1.Left := 205;
MyNameisB1.Top := 1;
MyNameIsA1.Text := "Меня зовут A1";
MyNameIsB1.Text := "Меня зовут B1";
MyNameIsA1.Name := "un1";
MyNameIsB1.Name := "MyNameIsA1";
Caption := MyNameIsA1.Text;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
MyNameisA2 := TEdit.Create(self);
MyNameisA2.Parent := self;
MyNameisA2.Left := 5;
MyNameisA2.Top := 100;
MyNameisB2 := TMemo.Create(self);
MyNameisB2.Parent := self;
MyNameisB2.Left := 205;
MyNameisB2.Top := 100;
MyNameIsA2.Text := "Меня зовут A2";
MyNameIsB2.Text := "Меня зовут B2";
MyNameIsA2.Name := "un2";
MyNameIsB2.Name := "MyNameIsA2";
Caption := MyNameIsA2.Text;
end;
← →
ZeroDivide © (2006-10-05 09:23) [73]>>MBo © (05.10.06 06:01)
Атпад... Народ, а в QC это кто-нибудь посылал?
← →
dmitry99 © (2006-10-05 09:38) [74]поддерживаю [67]
← →
clickmaker © (2006-10-05 10:27) [75]
> [65] MBo © (05.10.06 06:01)
"Меня зовут A"
← →
McSimm © (2006-10-05 10:38) [76]Забавно, но для этого фокуса можно использовать, например, TLabel вместо TMemo, у которого вроде и свойство Text отсутствует, однако в Caption будет успешно текст из него извлекаться, что на первый взгляд выглядит несколько фантастично :)
( для тех, кто не знаком с "Правилом Имен", разумеется ;)
← →
clickmaker © (2006-10-05 10:44) [77]ах ты блин... там же SetReference... Сбило с толку, что это обычный указатель вроде бы.
Не знал.
Позор на мою седую голову )
← →
alles © (2006-10-05 10:46) [78]( для тех, кто не знаком с "Правилом Имен", разумеется ;)
а скажите пожалуста что гласит это Правило?
← →
clickmaker © (2006-10-05 10:49) [79]
> что гласит это Правило?
при смене имен меняются ссылки на компоненты. Т.е. как бы сами компоненты меняются местами (в данном случае)
← →
XProger © (2006-10-05 11:20) [80]guav, решения пока не знаю, вернусь с работы - подумаю :)
Пока есть идея, что в первом случае происходит обращение к property, а во втором к обычному массиву... как их скрестить в одном классе - нужно думать...
Страницы: 1 2 3 вся ветка
Текущий архив: 2006.10.29;
Скачать: CL | DM;
Память: 0.63 MB
Время: 0.04 c