Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Разное > Флейм
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #61  
Старый 16.07.2010, 15:49
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

Цитата:
Сообщение от AleD
зачем кодировки в ДЛЛки? пользовательских кодировок нет, ну по крайней мере они не нужны, поэтому динамичная модульность здесь не к чему, максимум наследование от абстрактного класса внутри кода
Про кодировка в Dll не я придумал. По большому счету, мне не суть важно, в какой форме оно будет , но сделаю, когда уже точно будет известно
Ответить с цитированием
  #62  
Старый 16.07.2010, 21:00
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от AleD
Хм, смотрю на этом форуме что-то серьёзное шевелится. А я уже от разочарования забыл про этот форум если есть вакансии - готов помочь

кстати, lmikle вы случаем не из Владивостока?

1. Ну как-то слабо шевелится... Пока в основном работет Феникс, да еще один собуствующий.
2. Да, проект открыт для всех желающих. Пока ничего лучшего не придумали, но для формирования и слаживания команды и это сойдет.
3. Нет, не из Владивостока.

Цитата:
Сообщение от AleD
зачем кодировки в ДЛЛки? пользовательских кодировок нет, ну по крайней мере они не нужны, поэтому динамичная модульность здесь не к чему, максимум наследование от абстрактного класса внутри кода

Мысль была такая, что некоторые форматы, более сложные, чем просто текст в разных вариантах, вынести в доп. модули. Например, формат с шифрованием.

ДА, НАРОД!!!
Забыл совсем сказать. Менеджер форматтеров должен помнить формат загруженногго файла и иметь 2 метода сохранения: сохраниение в исходном формате и сохранение с перекодировкой. Еще бы хорошо сделать загрузку так же, т.е. загрузку в формате по автоопределению и загрузку в указанном формате.

И еще одно задание. Нужно попробовать разобраться, как вставить свой контрол в стандартные диалоги Load и Save. Нам нужен ComboBox там (точнее нужеы будут 2 в перспективе плюс кнопка своя. но один - это минимум). То, что это точно можно сделать - зуб даю. Если никто не возьмется, то я сам этим вопросом займусь.
Ответить с цитированием
  #63  
Старый 16.07.2010, 22:23
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Запоминать легко. Про выбор - это да, можно так сделать:
1. В диалоге открытия, есть комбобокс со списком кодировок, и первый пункт - "Автоопределение".
2. В диалоге сохранения, то же самое, но автоматически подставляется выбранная при открытии кодировка. Если документ новый - кодировку по умолчанию можно выставлять в настройках. "Искаропки" - дефолтная ANSI.

Про вставку контрола - видел такой код, попробую найти.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #64  
Старый 16.07.2010, 23:31
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

Код:
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  
Старый 17.07.2010, 01:54
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

угу, скоординируйтесь с Фениксом и доделайте все классы.
Ответить с цитированием
  #66  
Старый 17.07.2010, 08:34
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

Цитата:
Сообщение от lmikle
Мысль была такая, что некоторые форматы, более сложные, чем просто текст в разных вариантах, вынести в доп. модули. Например, формат с шифрованием.
мы кажется про разное говорим? кодировки (ANSI, UTF, UCS...) или форматы файлов (TXT, RTF, DOC...)? форматы конечно желательно в длл

если никто не против, я пожалуй за аналог пэинта возьмусь, опыт есть, жаль исходников не осталось...
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием
  #67  
Старый 18.07.2010, 19:57
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Aled, давай, начинай.
Только для общности интерфейса надо бы тебе теже иконки взять...
Я ставил GlyFX.
Ответить с цитированием
  #68  
Старый 19.07.2010, 05:27
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

Цитата:
Сообщение от lmikle
Aled, давай, начинай.
Только для общности интерфейса надо бы тебе теже иконки взять...
Я ставил GlyFX.
скачал фришные иконки, но там для пэинта мало что есть
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием
  #69  
Старый 20.07.2010, 19:51
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А ты поищи как следует. Есть не только фришные.
Хотя, скорее разговор идет о стиле выполнения иконок, а не об авторе...
Ответить с цитированием
  #70  
Старый 20.07.2010, 19:57
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

Цитата:
Сообщение от lmikle
А ты поищи как следует. Есть не только фришные.
Хотя, скорее разговор идет о стиле выполнения иконок, а не об авторе...
да там кнопок то, инструменты только, я их выдрал из пэинта образца 2009 года (Win7)
насчёт моей работы, дня через 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  
Старый 21.07.2010, 20:49
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Кул! Только не забудь, что надо как минимум реализовать всесь функционал, который есть в стандартном пэйнте. Это просто минимум. Ну и плюс добавить что-то новое. Плюс добавить какие-нить удобства.

Да, если ты делаешь MDI, то озаботься открытием картинок в уже запущенной копии...

Так, где Феникс со товарищи???
Я понимаю, конечно, что одному проще и быстрее сделать. Но, вроде, собирались делать командно...
Ответить с цитированием
  #72  
Старый 22.07.2010, 00:26
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

/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  
Старый 22.07.2010, 00:48
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

OK.
Жду описания утилиты.

Про Asus Eee PC 701 2G Surf. Ну, XP туда можно взгромоздить. Хотя памяти и маловато. А чего такую слабую купил???
Ответить с цитированием
  #74  
Старый 22.07.2010, 11:47
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Просто для меня этот бук - самое то. И колонки хорошие, и память можно расширить (флешкой ), и дешёвый (что было критично)... Что мне ещё понравилось - даже с вайфаем и музыкой в наушниках, работает от батареи 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  
Старый 26.07.2010, 20:20
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, Америки ты конечно не открыл. Таких утилит вагон и маленькая тележка, хотя, если сделаем свою, то будет неплохо. Как делать даже, в общем, знаю. Проблема всех подобных утилит - это "снятие" картинки из DirectX приложения. Для хохмы попробуй отскринить любой ролик в Windows Media Player'е... Вот сюда бы надо бы покопать. Если с этим разобраться, то будет клево (из видеопамяти что-ли читать картинку...).
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:26.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter