Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
15-1160078303
SkySpeed
2006-10-05 23:58
2006.10.29
Где скачать балеты Чайковского: Щелкунчик и Лебединное озеро?


4-1150058454
RealGanj
2006-06-12 00:40
2006.10.29
Перехват сообщений клавиатуры


9-1137878222
Аццкий_рыцарь:)
2006-01-22 00:17
2006.10.29
Переход с DelphiX на UnDelphiX


4-1150136401
redlord
2006-06-12 22:20
2006.10.29
перехват сообщений чужого окна


11-1124596891
L505
2005-08-21 08:01
2006.10.29
How to help KOL development?