|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#61
|
|||
|
|||
Цитата:
|
#62
|
|||
|
|||
Цитата:
1. Ну как-то слабо шевелится... Пока в основном работет Феникс, да еще один собуствующий. 2. Да, проект открыт для всех желающих. Пока ничего лучшего не придумали, но для формирования и слаживания команды и это сойдет. 3. Нет, не из Владивостока. Цитата:
Мысль была такая, что некоторые форматы, более сложные, чем просто текст в разных вариантах, вынести в доп. модули. Например, формат с шифрованием. ДА, НАРОД!!! Забыл совсем сказать. Менеджер форматтеров должен помнить формат загруженногго файла и иметь 2 метода сохранения: сохраниение в исходном формате и сохранение с перекодировкой. Еще бы хорошо сделать загрузку так же, т.е. загрузку в формате по автоопределению и загрузку в указанном формате. И еще одно задание. Нужно попробовать разобраться, как вставить свой контрол в стандартные диалоги Load и Save. Нам нужен ComboBox там (точнее нужеы будут 2 в перспективе плюс кнопка своя. но один - это минимум). То, что это точно можно сделать - зуб даю. Если никто не возьмется, то я сам этим вопросом займусь. |
#63
|
||||
|
||||
Запоминать легко. Про выбор - это да, можно так сделать:
1. В диалоге открытия, есть комбобокс со списком кодировок, и первый пункт - "Автоопределение". 2. В диалоге сохранения, то же самое, но автоматически подставляется выбранная при открытии кодировка. Если документ новый - кодировку по умолчанию можно выставлять в настройках. "Искаропки" - дефолтная ANSI. Про вставку контрола - видел такой код, попробую найти. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#64
|
|||
|
|||
Код:
unit UTF8; interface uses Classes; type TFormatterBase=class public procedure SaveToFile(AStream : TStream; AText : String); virtual; abstract; function LoadFromFile(AStream : TStream) : String; virtual; abstract; function IsFormat(AStream : TStream) : Boolean; virtual; abstract; end; TFormatterUTF8=class(TFormatterBase) private Function FormatToAscii(s:UTF8string):AnsiString; Function AsciiToFormat(s:AnsiString):UTF8String; public procedure SaveToFile(AStream : TStream; AText : String); override; function LoadFromFile(AStream : TStream) : String; override; function IsFormat(AStream : TStream) : Boolean; override; end; implementation { TFormatterUTF8 } function TFormatterUTF8.AsciiToFormat(s: AnsiString): UTF8String; var L: Integer; Temp: UTF8String; begin Result := ''; if S = '' then Exit; SetLength(Temp, Length(S) * 3); L := UnicodeToUtf8(PChar(Temp), Length(Temp)+1, PWideChar(S), Length(S)); if L > 0 then SetLength(Temp, L-1) else Temp := ''; Result := Temp; end; function TFormatterUTF8.FormatToAscii(s: UTF8string): AnsiString; var L: Integer; Temp: WideString; begin Result := ''; if S = '' then Exit; SetLength(Temp, Length(S)); L := Utf8ToUnicode(PWideChar(Temp), Length(Temp)+1, PChar(S), Length(S)); if L > 0 then SetLength(Temp, L-1) else Temp := ''; Result := Temp; end; function TFormatterUTF8.IsFormat(AStream: TStream): Boolean; var b:cardinal; const sign=$BFBBEF; begin AStream.ReadBuffer(b,3); Result:=sign=b; end; function TFormatterUTF8.LoadFromFile(AStream: TStream): String; var Str:TStringStream; begin if IsFormat(AStream) then begin Str:=TStringStream.Create(Result); Str.CopyFrom(AStream,AStream.Size); Result:=FormatToAscii(Result); Str.Free; end; end; procedure TFormatterUTF8.SaveToFile(AStream: TStream; AText: String); begin inherited; end; end. Пока нет сохранения в файл - там компилятор пишет Variable required |
#65
|
|||
|
|||
угу, скоординируйтесь с Фениксом и доделайте все классы.
|
#66
|
||||
|
||||
Цитата:
если никто не против, я пожалуй за аналог пэинта возьмусь, опыт есть, жаль исходников не осталось... TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |
#67
|
|||
|
|||
Aled, давай, начинай.
Только для общности интерфейса надо бы тебе теже иконки взять... Я ставил GlyFX. |
#68
|
||||
|
||||
Цитата:
TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |
#69
|
|||
|
|||
А ты поищи как следует. Есть не только фришные.
Хотя, скорее разговор идет о стиле выполнения иконок, а не об авторе... |
#70
|
||||
|
||||
Цитата:
насчёт моей работы, дня через 2-3 предоставлю рабочую версию, что запланировал: 1) подключение внешних инструментов (DLL, почти готово) 2) подключение внешних форматов изображений (опять DLL, работаю) 3) GDI+ (работает куда быстрее GDI уже есть) 4) работа с несколькими изображениями (MDI, сейчас правда этим никого не удивишь) пока что всё TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |
#71
|
|||
|
|||
Кул! Только не забудь, что надо как минимум реализовать всесь функционал, который есть в стандартном пэйнте. Это просто минимум. Ну и плюс добавить что-то новое. Плюс добавить какие-нить удобства.
Да, если ты делаешь MDI, то озаботься открытием картинок в уже запущенной копии... Так, где Феникс со товарищи??? Я понимаю, конечно, что одному проще и быстрее сделать. Но, вроде, собирались делать командно... |
#72
|
||||
|
||||
/me временно выбыл, т.к. был занят некоторыми задачами...
Я сейчас не в состоянии работать на делфи, так как ноут у меня "забрали" (собственно, он и не был моим - это ноут мамани ). Я уже купил себе персональный рабочий нетбук, но виндовс нормальный на нём не установишь... (гуглим Asus Eee PC 701 2G Surf). На след. неделе покупаю для него 32гб-карточку (SDHC), и вот тогда на вайне заведу делфи. А пока: 1. AleD, не забудь про фичу, как в фотожабе - автовыделение цвета. 2. Imikle, в никсе столкнулся с хорошей утилитой, если её переписать в винде и включить в этот пакет, будет класс. Опишу позже, ибо щас уже наполовину сплю. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj Последний раз редактировалось PhoeniX, 22.07.2010 в 11:51. |
#73
|
|||
|
|||
OK.
Жду описания утилиты. Про Asus Eee PC 701 2G Surf. Ну, XP туда можно взгромоздить. Хотя памяти и маловато. А чего такую слабую купил??? |
#74
|
||||
|
||||
Просто для меня этот бук - самое то. И колонки хорошие, и память можно расширить (флешкой ), и дешёвый (что было критично)... Что мне ещё понравилось - даже с вайфаем и музыкой в наушниках, работает от батареи 5 с лишним часов (хотя, тут заслуга никсового авторегулятора мощности проца). Без него и с выключенным звуком - около 6 часов
Теперь про утилиту. Вообще, туг сразу несколько функций оболочки XFCE, которую я поставил... Все знают, что в виндовс, чтоб сделать скриншот, надо после нажатия кнопки PrintScreen запускать или Paint, или другой граф. редактор, после чего вставлять туда изображение... xfce4-screenshoot позволяет сделать скрин всего экрана, активного окна или выделенной области, после чего либо сохранить, либо открыть скрин в любом редакторе. Что мне в ней не нравится: 1. Она автоматически НЕ прописывается на кнопке PrtSc, хотя это я решил через xfce4-hotkeys 2. Она открывает окно настроек, где можно выбирать, что скринить и куда сохранять (решил через параметры ком.строки). 3. Она сохраняет изображения только в формате png. Хотя я настроил на открытие скринов в редакторе fotoxx. Что я предлагаю - утилита, которую можно посадить (хуком) на (Alt+)PrtSc, и которая будет либо открывать окно с запросом, что делать со скрином, либо (по настройке) сохранять его в определённую папку в заданном формате, либо (опять же по настройке) открывать скрин в заданной программе. Кстати, что ещё можно - сделать кливиши Shift/Ctrl + PrtSc, чтоб выделять произвольную область экрана для скрина. Будет класс. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj Последний раз редактировалось PhoeniX, 22.07.2010 в 11:50. |
#75
|
|||
|
|||
Ну, Америки ты конечно не открыл. Таких утилит вагон и маленькая тележка, хотя, если сделаем свою, то будет неплохо. Как делать даже, в общем, знаю. Проблема всех подобных утилит - это "снятие" картинки из DirectX приложения. Для хохмы попробуй отскринить любой ролик в Windows Media Player'е... Вот сюда бы надо бы покопать. Если с этим разобраться, то будет клево (из видеопамяти что-ли читать картинку...).
|