Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/64: Рейтинг темы: голосов - 64, средняя оценка - 5.00
6 / 6 / 6
Регистрация: 30.04.2012
Сообщений: 216

Простейший Файловый менеджер

09.09.2013, 16:53. Показов 13017. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В одной книге написано как сделать простейший файлменеджер. Я написал все как в книге и прога компилируется, но запускается вот с такой ошибкой (см. скриншот), а исходник с диска книги нет.
Выкладываю код, как списал его я, а следом исходника с диска книги.
На форме должны быть компоненты ListView1, Button1, Label1, Edit1 (она же DirectoryEdit)

Сначала свой код:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
unit MainUnit;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls, shellapi;
 
type
  TMainForm = class(TForm)
    ListView1: TListView;
    DirUpButton: TButton;
    DirectoryEdit: TEdit;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
    function AddFile(FileMask: string; FFileAttr: DWORD): Boolean;
  public
    { Public declarations }
  end;
 
var
  MainForm: TMainForm;
  function SlashSep (Path, FName: string): string;
  function FileTimeToDateTimeStr (FileTime: TFileTime): string;
 
implementation
 
{$R *.dfm}
 
procedure TMainForm.FormCreate(Sender: TObject);
var
 SysImageList: uint;
 SFI: TSHFileInfo;
begin
 {Создаем списки маленьких и больших иконок}
 ListView1.LargeImages:=TImageList.Create(self);
 ListView1.SmallImages:=TImageList.Create(self);
 
 {Запрашиваем большие иконки}
 SysImageList:= SHGetFileInfo('', 0, SFI, SizeOf(TSHFileInfo),
  SHGFI_SYSICONINDEX or SHGFI_LARGEICON);
  
 if SysImageList <> 0 then
  begin
   {Присваиваем системные иконки в ListView1}
   ListView1.LargeImages.Handle:= SysImageList;
   ListView1.LargeImages.ShareImages:= True;
  end;
 
 {Запрашиваем маленькие иконки}
 SysImageList:= SHGetFileInfo('', 0, SFI, SizeOf(TSHFileInfo),
  SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
 
 if SysImageList <> 0 then
  begin
  {Присваиваем маленькие системные иконки в ListView1}
   ListView1.SmallImages.Handle:= SysImageList;
   ListView1.SmallImages.ShareImages:= True;
  end;
end;
 
procedure TMainForm.FormShow(Sender: TObject);
begin
 AddFile ('C:/*.*', faAnyFile);
end;
 
 
function SlashSep (Path, FName: string): string;
begin
 if Path[Length(Path)] <> '\' then // Если путь не заканчивается слешем '\'
  Result:= Path + '\' + FName // то его нужно добавить, а затем добавить имя файла
 else Result:= Path + FName; // иначе не добавлять
end;
 
 
function FileTimeToDateTimeStr (FileTime: TFileTime): string; // Функция перевода сист. времени в строку
var
 LocFTime: TFileTime;
 SysFTime: TSystemTime;
 DateStr: String;
 Date, Time: TDateTime;
  begin
   FileTimeToLocalFileTime(FileTime, LocFTime); // Переводим дату файла в унививерсальное глобальное время (по Гринвичу)
   FileTimeToSystemTime(LocFTime, SysFTime); // Переводим  унививерсальное глобальное время в сист. время на комп-ре
    try
     with SysFTime do // теперь дата храниться в SysFTime. С помощью ее выполнять..
      begin
       {Превращаем данные в формат DateTime}
       Date:= EncodeDate(wYear, wMonth, wDay);
       DateStr:= DateToStr(Date);
       Time:= EncodeTime(wHour, wMinute, wSecond, wMilliseconds);
      end;
     Result:= DateTimeToStr(Date + Time); // Объеденяем простым сложением и переводим дату в строку
    except
     Result:='';
    end;
  end;
 
 
function TMainForm.AddFile(FileMask: string; FFileAttr: DWORD): Boolean;
{Объявляем локальные переменные}
var
 ShInfo: TSHFileInfo;
 Attributes, FileName: string;
 hFindFile: THandle;
 SearchRec: TSearchRec;
 
{Объявляем локальную функцию}
function AttrStr (Attr: Integer): string;
 begin
  Result:='';
  if (FILE_ATTRIBUTE_DIRECTORY and Attr) > 0 then Result:= Result + '';
  if (FILE_ATTRIBUTE_ARCHIVE and Attr) > 0 then Result:= Result + 'A';
  if (FILE_ATTRIBUTE_READONLY and Attr) > 0 then Result:= Result + 'R';
  if (FILE_ATTRIBUTE_HIDDEN and Attr) > 0 then Result:= Result + 'H';
  if (FILE_ATTRIBUTE_SYSTEM and Attr) > 0 then Result:= Result + 'S';
 end;
 
begin
 ListView1.Items.BeginUpdate; // Начинаем обновление элементов списка. BeginUpdate - для значительных изменений
 ListView1.Items.Clear; // Очищаем ListView1
 
 Result:= False;
 hFindFile:= FindFirst(FileMask, FFileAttr, SearchRec); // Открываем поиск
 if hFindFile <> INVALID_HANDLE_VALUE then // Проверяем корректность найденного файла
  try // Пробуем выполнить
   repeat // Повторять
    with SearchRec.FindData do
     begin
      if (SearchRec.Name='.') or (SearchRec.Name='..') or (SearchRec.Name='') then
       Continue;
       FileName:=SlashSep(DirectoryEdit.Text, SearchRec.Name); // Вызов функции SlashSep
 
       SHGetFileInfo(PChar(FileName), 0, ShInfo, SizeOf(ShInfo),
       SHGFI_TYPENAME or SHGFI_SYSICONINDEX); // Возвращаем инф-цию о файле
       Attributes:= AttrStr(dwFileAttributes);
 
       with ListView1.Items.Add do // Добавляю новый элемент
        begin
         Caption:= SearchRec.Name; // Присваиваю его имя
         ImageIndex:= ShInfo.iIcon; // Присваиваю индекс из системного списка изображений
         SubItems.Add(IntToStr(SearchRec.Size)); // Добавляю поле "Размер"
         SubItems.Add(ShInfo.szTypeName);  // Добавляю поле "Тип"
         SubItems.Add(FileTimeToDateTimeStr(ftLastWriteTime)); // Добавляю поле "Дата"
         SubItems.Add(Attributes); // Добавляю поле "Аттрибуты"
         SubItems.Add(DirectoryEdit.Text + cFileName);
 
         if (FILE_ATTRIBUTE_DIRECTORY and dwFileAttributes) > 0  then
          SubItems.Add('dir')
         else SubItems.Add('file');
        end;
      Result:= true;
     end;
   until (FindNext(SearchRec) <> 0);
  finally // выполняем  вне зависимости от резул-та
   FindClose(SearchRec); // Закрываем поиск
  end;
 ListView1.Items.EndUpdate; // Заканчиваем обновление элементов списка. Прорисовываем все изменения сразу
end;
 
end.
Теперь код с диска книги:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
unit UnitMain;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, shellapi;
 
type
  TForm1 = class(TForm)
    ListView1: TListView;
    Panel1: TPanel;
    DirUpButton: TButton;
    Label1: TLabel;
    DirectoryEdit: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
    function AddFile(FileMask: string; FFileAttr:DWORD): Boolean;
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  function SlashSep(Path, FName: string): string;
  function FileTimeToDateTimeStr(FileTime: TFileTime): string;
 
implementation
 
{$R *.dfm}
 
function FileTimeToDateTimeStr(FileTime: TFileTime): string;
var
 LocFTime: TFileTime;
 SysFTime: TSystemTime;
 DateStr: string;
 Dt, Tm: TDateTime;
begin
 FileTimeToLocalFileTime(FileTime, LocFTime);
 FileTimeToSystemTime(LocFTime, SysFTime);
 try
  with SysFTime do
   begin
    Dt := EncodeDate(wYear, wMonth, wDay);
    DateStr := DateToStr(Dt);
    Tm := EncodeTime(wHour, wMinute, wSecond, wMilliseconds);
   end;
  Result := DateTimeToStr(Dt+Tm);
 except
  Result := '';
 end;
end;
 
function SlashSep(Path, FName: string): string;
begin
 if Path[Length(Path)] <> '\' then
  Result := Path + '\' + FName
 else Result := Path + FName;
end;
 
function TForm1.AddFile(FileMask: string; FFileAttr: DWORD): Boolean;
var
 ShInfo: TSHFileInfo;
 attributes: string;
 FileName: string;
 hFindFile: THandle;
 SearchRec: TSearchRec;
 
 function AttrStr(Attr: integer): string;
  begin
   Result := '';
   if (FILE_ATTRIBUTE_DIRECTORY and Attr) > 0 then Result := Result + '';
   if (FILE_ATTRIBUTE_ARCHIVE and Attr) > 0 then Result := Result + 'A';
   if (FILE_ATTRIBUTE_READONLY and Attr) > 0 then Result := Result + 'R';
   if (FILE_ATTRIBUTE_HIDDEN and Attr) > 0 then Result := Result + 'H';
   if (FILE_ATTRIBUTE_SYSTEM and Attr) > 0 then Result := Result + 'S';
  end;
 
begin
 ListView1.Items.BeginUpdate;
 ListView1.Items.Clear;
 
 Result := False;
 hFindFile := FindFirst(FileMask, FFileAttr, SearchRec);
 if hFindFile <> INVALID_HANDLE_VALUE then
  try
   repeat
    with SearchRec.FindData do
     begin
 
      if (SearchRec.Name = '.') or (SearchRec.Name = '..') or
      (SearchRec.Name = '') then continue;
 
      FileName := SlashSep(DirectoryEdit.Text, SearchRec.Name);
      SHGetFileInfo(PChar(FileName), 0, ShInfo, SizeOf(ShInfo),
                      SHGFI_TYPENAME or SHGFI_SYSICONINDEX);
      Attributes := AttrStr(dwFileAttributes);
      //Добавляю новый элемент
      with ListView1.Items.Add do
       begin
        //Присваиваю его имя
        Caption := SearchRec.Name;
        //Присваиваю индекс из системного списка изображений
        ImageIndex := ShInfo.iIcon;
        //Присваиваю размер
        SubItems.Add(IntToStr(SearchRec.Size));
        SubItems.Add((ShInfo.szTypeName));
        SubItems.Add(FileTimeToDateTimeStr(ftLastWriteTime));
        SubItems.Add(attributes);
        SubItems.Add(DirectoryEdit.Text + cFileName);
        if (FILE_ATTRIBUTE_DIRECTORY and dwFileAttributes) > 0 then
         SubItems.Add('dir')
        else
         SubItems.Add('file');
       end;
      Result := True;
     end;
    until (FindNext(SearchRec) <> 0);
   finally
    FindClose(SearchRec);
   end;
 ListView1.Items.EndUpdate;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var
 SysImageList: uint;
 SFI: TSHFileInfo;
begin
//Создаем списки маленьких и больших иконок.
 ListView1.LargeImages:=TImageList.Create(self);
 ListView1.SmallImages:=TImageList.Create(self);
 
//Запрашиваем большие иконки
 SysImageList := SHGetFileInfo('', 0, SFI,
 SizeOf(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_LARGEICON);
 if SysImageList <> 0 then
  begin
//Присваиваем системные иконки в ListView1
   ListView1.Largeimages.Handle := SysImageList;
   ListView1.Largeimages.ShareImages := TRUE;
  end;
//Запрашиваем маленькие иконки
 SysImageList := SHGetFileInfo('', 0, SFI, SizeOf(TSHFileInfo),
    SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
 if SysImageList <> 0 then
  begin
   //Присваиваем маленькие системные иконки в ListView1
   ListView1.Smallimages.Handle := SysImageList;
   ListView1.Smallimages.ShareImages := TRUE;
  end;
end;
 
procedure TForm1.FormShow(Sender: TObject);
begin
 AddFile('C:/*.*',faAnyFile);
end;
 
end.

Помогите найти, где у меня ошибка.
Миниатюры
Простейший Файловый менеджер  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.09.2013, 16:53
Ответы с готовыми решениями:

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

Файловый менеджер с БД
Здраствуйте! Вопрос к тем, кто смог бы Аргументированно объяснить свою точку зрения по поводу создания файлового менеджера в Delphi с базой...

ListView и Файловый менеджер..
Пишу файловый менеджер, на основе - ListView. http://s014.***********/i328/1103/91/c28e3c91992e.jpg Список из деректории вывести...

34
angstrom
11.09.2013, 10:46
Студворк — интернет-сервис помощи студентам
Посмотри в папке Demos проект "Virtual ListView".
6 / 6 / 6
Регистрация: 30.04.2012
Сообщений: 216
11.09.2013, 12:35  [ТС]
angstrom, если вы о папке Demos в Delphi 2006, то там нет такого проекта. Там есть:
Cassini
CPP
CSharp
Delphi.Net
DelphiWin32
Indy10
IntraWeb
Modeling
XMLDoc
0
angstrom
11.09.2013, 12:49
Плохо ищите
..\BDS\4.0\Demos\DelphiWin32\VCLWin32\Vi rtualListView\
6 / 6 / 6
Регистрация: 30.04.2012
Сообщений: 216
11.09.2013, 12:57  [ТС]
Кстати, на счет входа в другие папки, я увидел, где недоглядел. Код процедуры который у меня вставлен по нажатию кнопки "Назад" не для самой кнопки, а для события "Двойной клик по ListView1"! То есть вот так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TMainForm.ListView1DblClick(Sender: TObject);
begin
 if (ListView1.Selected.SubItems[5] = 'dir') then
  begin
   DirectoryEdit.Text := DirectoryEdit.Text + ListView1.Selected.Caption + '\';
   AddFile(DirectoryEdit.Text + '*.*', faAnyFile);
  end
 else 
   ShellExecute(Application.MainForm.Handle, nil, 
                PChar(DirectoryEdit.Text + ListView1.Selected.Caption), '',
                PChar(DirectoryEdit.Text), SW_SHOW); 
end;
А вот эту процедуру убрать:
Delphi
1
2
3
4
procedure TMainForm.ListView1Click(Sender: TObject);
begin
 DirUpButtonClick(NIL);
end;
Тогда войти в папки и запускать файлы получиться. А вот для кнопки "Назад" надо придумывать другую процедуру.
0
angstrom
11.09.2013, 12:59
Так у меня и сделано, но зачем изобретать велосипед, когда в указанном проекте всё уже имеется.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TMainForm.DirUpButtonClick(Sender: TObject);
begin
  if (ListView1.Selected <> NIL) then
    if (ListView1.Selected.SubItems[5] = 'dir') then                            // Если это папка,
    begin
      // то прибавить имя выделенной папки к пути (и войти в нее)
      // и изменить текст текущей папки в DirectoryEdit
      DirEdit.Text := DirEdit.Text + ListView1.Selected.Caption + '\';
 
      AddFile(DirEdit.Text + '*.*', faAnyFile);                                 // перечитать файлы из нее
    end
    else                                                                        // Иначе (если это не папка), это файл и запустить его с помощью ShellExecute
      ShellExecute(Application.MainForm.Handle, nil,                            // Указываем главное окно прог-мы и запускаем файл
                   PChar(DirEdit.Text + ListView1.Selected.Caption), '',        // Полный путь к файлу и строка параметров для команд. строке
                   PChar(DirEdit.Text), SW_SHOW);                               // Папка по умолчанию и команда показа SW_SHOW для норм-го отображения окна
end;
 
procedure TMainForm.ListView1DblClick(Sender: TObject);
begin
  DirUpButtonClick(NIL);
end;
6 / 6 / 6
Регистрация: 30.04.2012
Сообщений: 216
12.09.2013, 07:25  [ТС]
angstrom, дело в том что этот код НЕ ПРЕДНАЗНАЧЕН для кнопки DirUpButton, он ПРЕДНАЗНАЧЕН для двойного клика по ListView1, а для кнопки надо писать ДРУГОЙ код, который бы возвращал нас на 1 уровень вверх в дереве папок.
0
angstrom
12.09.2013, 11:38
Цитата Сообщение от Shman Посмотреть сообщение
НЕ ПРЕДНАЗНАЧЕН
Про это я и писал ранее. Изучай "VirtualListView".
6 / 6 / 6
Регистрация: 30.04.2012
Сообщений: 216
12.09.2013, 19:16  [ТС]
angstrom, посмотрел исходник VirtuaslListView. Он слишком большой и мне придется переписывать все процедуры, чтобы это у меня работало как надо. А мне всего лишь нужны 2-3 строчки для кнопки. Предполагаю самый простой алгоритм должен быть такой: из пути в DirectoryEdit.Text отнять слэш (т.е. ‘\’) и отнять все что до следующего слэша, затем перечитать директорию командой “AddFile(DirectoryEdit.Text + '*.*', faAnyFile);”, а вот как записать вычитание из пути не пойму.
0
angstrom
13.09.2013, 01:09
Сортировку, надеюсь, сам сделаешь.
Вложения
Тип файла: rar fm1.rar (3.8 Кб, 67 просмотров)
6 / 6 / 6
Регистрация: 30.04.2012
Сообщений: 216
13.09.2013, 06:19  [ТС]
angstrom, спасибо . А я уже нашел способ проще:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TMainForm.DirUpBitBtnClick(Sender: TObject);
begin
 {При нажатии DirUpBitBtn возвращаемся в папку верхнего уровня}
 DirEdit.Text := Copy(DirEdit.Text, 1, Length(DirEdit.Text) - 1);
 DirEdit.Text := ExtractFilePath(DirEdit.Text);
 AddFile(DirEdit.Text+'*.*',faAnyFile);
end;
 
procedure TMainForm.ListView1Change(Sender: TObject; Item: TListItem;
  Change: TItemChange);
begin
 if DirEdit.Text = 'C:\' then DirUpBitBtn.Enabled:=false
 else DirUpBitBtn.Enabled:=true; 
end;
Сейчас еще сортировку вида прикручу: большие и маленькие иконки, список и таблица.
И подумаю как перейти на уровень "Мой компьютер" и переключаться на второй жесткий диск
0
angstrom
13.09.2013, 11:05
Delphi
1
if DirEdit.Text = 'C:\'
Я не знал, что у вас только диск С имеется.
6 / 6 / 6
Регистрация: 30.04.2012
Сообщений: 216
13.09.2013, 17:43  [ТС]
Цитата Сообщение от angstrom Посмотреть сообщение
Delphi
1
if DirEdit.Text = 'C:\'
Я не знал, что у вас только диск С имеется.
Эту проверку я добавил временно, чтобы переход выше диска С не завершался ошибкой (сначала видел раб. стол, затем ошибка). В принципе можно написать
Delphi
1
if DirEdit.Text = 'C:' then...
но тогда на раб. столе будут видны только ярлыки и обратно на диск С не попасть.
0
angstrom
13.09.2013, 17:53
Мудрите вы, уважаемый.
6 / 6 / 6
Регистрация: 30.04.2012
Сообщений: 216
27.09.2013, 10:14  [ТС]
Решил добавить кнопки buttons, которые бы при нажатии отображали Listview: в виде иконок, в виде маленьких иконок, в виде списка, в виде таблицы. Однако в виде таблицы (vsReport) содержимое C:\ не отображается . Помогите найти причину. Проект приложил.
Вложения
Тип файла: zip FM.zip (276.5 Кб, 71 просмотров)
0
0 / 0 / 0
Регистрация: 29.10.2015
Сообщений: 4
20.12.2015, 06:37
Привет angstrom, извини за несвоевременный вопрос по теме,
а как такую фичу провернуть в лазарус, ( ListView1.LargeImages.Handle := SysImageList; )
он блин не берет Нандле,
у него совсем другой тип под хандле,

если в Delphi это так ( UINT = LongWord; HIMAGELIST = THandle; )
то в Lazarus это вот так ( UINT = cardinal; TLCLIntfHandle = type THandle; )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.12.2015, 06:37

Файловый менеджер на Delphi 7
Здравствуйте. Нужна помощь. Делаю файловый менеджер на Delphi 7 для дипломного проекта, но столкнулся с проблемой, не знаю как сделай...

Простой файловый менеджер
Нужно сделать не очень накрученную файловую систему. Скрин приложил, как у меня это выглядит. Работают еще не все кнопочки)) Создание...

Файловый менеджер.Компонент LastView
Здраствуйте.Вот решила написать файловый менеджер на Delphi.Как можно вывести список деректорий и файлов содержащихся в них с помощью...

Не удаётся разработать файловый менеджер
пытался создать менеджер, столкнулся с рядом проблем, не могу удалять файлы и директории, переименовывать, копировать, вставлять, если кто...

Простой файловый менеджер с фильтром
Доброго времени суток! Есть задача создать простой файловый менеджер где будут отображаться не все файлы а только некоторые, с заранее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru