Здесь - вопросы, которые обычно задают новички в программировании.
Form1.InitControl(True,False,alNone,crDefault,clBtnFace,‘Forma1’,’’); Вместо цвета “clBtnFace” можно ввести цифровое значение из 9 цифр, что эти цифры означают я не понимаю, что не введи такое ощущение что они меняются рандомно. Например, 436657894 это жёлтый, а 435657894 чёрный. p.s. Я знаю что можно ввести шестнадцатеричное значение, но мне интересно что означают именно десятичные значения из 9 цифр.
Я понял что это! Это те же цвета, но в десятичной форме, а то что туда можно вводить больше 16 777 215 - баг, либо фича на будущее, когда цвета станут кодироваться по 10 битов на цвет =)
думаю, туда можно вводить вплоть до 4294967295, не забывайте про альфа-канал, там 4 компонента по 8 бит, итого 32
Не, только девять девяток.
А в лямбда-функции может быть несколько statement’ов? Мне надо двум коллекциям сделать zip
, но действие zip’а это просто setter, то есть процедура.
// псевдокот
type class A = end;
type class B =
my: A;
procedure setMy(a_: A);
end;
begin
var as : List<A> := RandomAs;
var bs : List<B> := RandomBs;
var newBs := bs.zip(as, (b, a) -> (b.setMy(a); a))
end.
Вот кот:
// псевдокот
type A = class end;
type B = class
my: A;
procedure setMy(a_: A);
begin
end;
end;
begin
var aa : List<A> := new List<A>;
var bb : List<B> := new List<B>;
var newBs := bb.zip(aa, (b; a) -> begin b.setMy(a); Result := a end)
end.
В хелпе последнего инсталлята всё это есть
Понял, спасибо!
ЗЫ инсталятор под линуксом не запускается, только архив с консольным компилятором.
ЗЗЫ
(b; a) ->
О боже, я был уверен, что там запятая. Кажется, поэтому у меня вообще и не получалось :’(
Там сложная синтактико-семантическая дилемма. В Паскале через запятую в разделе описаний перечисляются данные одного типа, а через точку с запятой - разных. Но типы можно и не писать
А chm-файл отдельно поможет?
Да, chm можно читать. Не самый удобный вариант, конечно, лучше бы онлайн просто, но лучше, чем ничего (или exe-архив).
Я как-то просил сделать более дружелюбный к пользователю Ассёрт, но пока всё остаётся как было. Это ладно: под Виндовсом хотя бы он пишет номер строки, где упал. Вопрос такой: нельзя ли добиться, чтобы под Линуксом тоже был номер строки, а то у меня вот что:
ответ - Админу? Новый вопрос? ясно. Тогда вот вопрос: Я создаю программу использующую дизайнер форм, как Приложение Windows Form.
-
В программе использую работу с текстовыми файлами. При компиляции программы в Unit1.pas на описании типа текстового файла - Text выдается ошибка “Ожидался тип”.
-
как организовать в диалоге выбор имени файла, раньше в паскалеАБС это было так на кнопку “открыть” вставлялась команда if opendialog1.execute then s:=opendialog1.filename; как теперь сделать подобное?
По 1 - используйте TextFile вместо Text
Здравствуйте! Скачал Pascal ABC.NET последней версии с оф. сайта Почему-то у меня не подсвечивается синтаксис, системные коды… Как сделать так, чтобы всё было красивенько и выделялось цветом?
uses graphabc;
begin
SetPixel(100,100,color.Blue);
if GetPixel(100,100) = color.Blue then
system.Console.WriteLine('все работает')
else system.Console.WriteLine('не работает');
end.
выводит “не работает” почему?
как работают переменные color с if ?
Это скорее всего из-за того, что exe-шники генерируются у вас в Release-режиме. Он оказывается включено по умолчанию. Залил на github изменения, в которых режим по умолчанию - Debug.
да, можно переопредeлить assert и выводить обычным writeln ошибку и стек. все равно Continue сделать не получится а исключениями реализовывать нельзя, потому что их можно отловить и подавить, теряется весь смысл assert… сделаю
да, нетривиальная проблема. в структуре Color есть поле приватное поле state. Оно у двух структур разное, потому что структуры создаются заново (GetPixel берет Color из буфера Bitmap). Вы можете переопределить оператор = и реализовать свое сравнение исключительно по A,R,G,B.