Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Начался отбор тем для DRKB 3.0 
:(
    Опции темы
Rouse_
Дата 27.9.2006, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 5
Всего: 29



Итак,  Виталий Невзоров открывает следующий этап расширения Delphi Russian Knowledge Base . 
Что есть DRKB: это самая большая и полная в рунете база знаний по Дельфи, составленная по материалам форумов Vingrad.ru и Sources.ru, а так же других источников. Содержит более 2000 хорошо отклассифицированных и тщательно оформленных статей в формате chm (Windows Help).
Эта база составленна силами профессиональных программистов (и им сочуствующим) для программистов . 
Если вы желаете расширить эту базу своим материалом и стать совтором DRKB, то отправляйте Ваши материалы в данную ветку.
Добавление статьи в данную ветку происходит на Вашей доброжелательной основе.
Ваши материалы не рецензируются, но могут редактироваться.
Все статьи будут тщательно анализироваться сообществом модераторов форума и привлеченных извне специалистов по тематике статьи.
Статьи, помещеные в DRKB, обязательно будут иметь указание на автора статьи.
Большая просьба: не пишите по поводу непомещения Вашей статьи в DRKB. 
Если она не помещена в DRKB - значит она не прошла проверку на качество подачи материала или уровень изложения.
(Объяснения причин отсутствия статьи не разглашаются) 


M
Snowy
Все материалы или линки на них бросаем прямо в этот топ.
(На случай, если кто прочитал, но не заметил)



--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
Yanis
Дата 17.1.2007, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Однажды понадобилось использовать функцию GetFileAttributes. Было принято решение оформить её результат в виде множества атрибутов. В результате получилась нижеприведённая функция. Ни что не мешает использовать её в оригинальном варианте, но иногда удобнее использовать такой вариант:
Код
TFileAttributes = set of (fatArchive, fatCompressed, fatDirectory, fatHidden, fatNormal,
                          fatOffline, fatReadOnly, fatSystem, fatTemporary);

function GetFileAttributes(const s: string): TFileAttributes;
var
  h: DWORD;
begin
  h := Windows.GetFileAttributes(PChar(s));
  Result := [];
  if h = MAXDWORD then Exit;

  if (h and FILE_ATTRIBUTE_ARCHIVE) = FILE_ATTRIBUTE_ARCHIVE then
    Result := Result + [fatArchive];

  if (h and FILE_ATTRIBUTE_COMPRESSED) = FILE_ATTRIBUTE_COMPRESSED then
    Result := Result + [fatCompressed];

  if (h and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY then
    Result := Result + [fatDirectory];

  if (h and FILE_ATTRIBUTE_HIDDEN) = FILE_ATTRIBUTE_HIDDEN then
    Result := Result + [fatHidden];

  if (h and FILE_ATTRIBUTE_NORMAL) = FILE_ATTRIBUTE_NORMAL then
    Result := Result + [fatNormal];

  if (h and FILE_ATTRIBUTE_OFFLINE) = FILE_ATTRIBUTE_OFFLINE then
    Result := Result + [fatOffline];

  if (h and FILE_ATTRIBUTE_READONLY) = FILE_ATTRIBUTE_READONLY then
    Result := Result + [fatReadOnly];

  if (h and FILE_ATTRIBUTE_SYSTEM) = FILE_ATTRIBUTE_SYSTEM then
    Result := Result + [fatSystem];

  if (h and FILE_ATTRIBUTE_TEMPORARY) = FILE_ATTRIBUTE_TEMPORARY then
    Result := Result + [fatTemporary];
end;


Использование: 
Код
  if fatDirectory in GetFileAttributes('C:\windows\') then
    ShowMessage('Directory');



--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Akella
Дата 25.1.2007, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Проблема с русскими символами (Snowy)
http://forum.vingrad.ru/index.php?showtopi...st&p=634050

Показ диалога выбора папки (Я)
Добавлено @ 12:17 
и ещё вот это
http://forum.vingrad.ru/index.php?showtopi...t&p=1010690

Это сообщение отредактировал(а) Akella - 25.1.2007, 12:18
PM MAIL   Вверх
Sunvas
Дата 25.1.2007, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



А когда выйдет DRKB 3 ? интересно знать..


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Vit
Дата 26.1.2007, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(Sunvas @  25.1.2007,  13:39 Найти цитируемый пост)
А когда выйдет DRKB 3 ? интересно знать.. 


Я на 4 месяца почти выпал из жизни: переезд в другой город, смена работы и т.д. Сейчас постепенно жизнь возвращается в норму, если всё пойдёт гладко, то вопрос завершения DRKB - дело примерно месяца.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 26.1.2007, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(Vit @  26.1.2007,  18:16 Найти цитируемый пост)
DRKB - дело примерно месяца. 

будет в chm формате ?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Sunvas
Дата 26.1.2007, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Цитата(Romikgy @  26.1.2007,  21:34 Найти цитируемый пост)
будет в chm формате ?

Очень желательно кстати.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Vit
Дата 28.1.2007, 05:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(Romikgy @ 26.1.2007,  12:34)
будет в chm формате ?

да


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 28.1.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(Vit @  28.1.2007,  04:32 Найти цитируемый пост)
да 

радует и сиба smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Yanis
Дата 31.1.2007, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



WinAPI аналог известной процедуры ScanDir.
Код
procedure ScanDir(Dir: string; var sFiles: string);
var
  fnd: TWin32FindData;
  hFnd: DWORD;
begin
  if Dir <> '' then
    if Dir[length(Dir)] <> '\' then Dir := Dir + '\';

  hFnd := FindFirstFile(PChar(Dir + '*.*'), fnd);
  if hFnd <> INVALID_HANDLE_VALUE then
    repeat
      if (fnd.cFileName[0] = '.') or (AnsiString(fnd.cFileName) = '..') then
        Continue;

      if Boolean((fnd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY)) then
        ScanDir(Dir + fnd.cFileName, sFiles)
      else
        sFiles := sFiles + fnd.cFileName + #13#10;

    until not FindNextFile(hFnd, fnd);

  sFiles := Copy(sFiles, 1, Length(sFiles) - 2);
  Windows.FindClose(hFnd);
end;


ссылка

Это сообщение отредактировал(а) Yanis - 31.1.2007, 10:55


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Akella
Дата 5.2.2007, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Так можно экспортировать данные из DBGridEh в разные форматы.


Код

uses ..., DBGridEhImpExp, ...

procedure TfmMain.SaveSelectionAs(Grid:TDBGridEh);
var ExpClass:TDBGridEhExportClass;
    Ext:String;
    SaveDialog1:TSaveDialog;
begin
  if not canExportData(True) then exit;

  begin
    SaveDialog1 := TSaveDialog.Create(self);
    SaveDialog1.Filter := 'Текстовый файл(*.txt)|*.txt|Файл с разделителями(*.csv)|*.csv|Веб-страница(*.htm)|*.htm|Rich Text Format(*.rtf)|*.rtf|MS Excel(*.xls)|*.xls';
    SaveDialog1.FileName := 'Export';

    if SaveDialog1.Execute then
    begin

      case SaveDialog1.FilterIndex of
        1: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
        2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
        3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
        4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
        5: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
      else
        ExpClass := nil; Ext := '';
      end;
      if ExpClass <> nil then  begin
        if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-2,3)) <> UpperCase(Ext) then
          SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext;
        SaveDBGridEhToExportFile(ExpClass,Grid, SaveDialog1.FileName,True);
      end;//if ExpClass <> nil then  begin
    end;

    FreeAndNil(SaveDialog1);
  end;
end;



procedure TfmMain.SaveDBGridEhToExportFile(ExportClass: TDBGridEhExportClass;
  DBGridEh: TCustomDBGridEh; const FileName: String; IsSaveAll: Boolean);
var DBGridEhExport: TDBGridEhExport;
begin
  DBGridEhExport := ExportClass.Create;
  try
    DBGridEhExport.DBGridEh := DBGridEh;
    DBGridEhExport.ExportToFile(FileName, IsSaveAll);
  finally
    DBGridEhExport.Free;
  end;
end;


//использование
if (ActiveControl is TDBGridEh) then
  SaveSelectionAs(ActiveControl as TDBGridEh);

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1398 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.