powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Нейронные сети
25 сообщений из 86, страница 2 из 4
Нейронные сети
    #39529266
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Няшикdefecator,

Нажми на картинку левой кнопкой, и тяни в нижнюю правую сторону. Он выделяет часть картинки
И что должно быть ?
...
Рейтинг: 0 / 0
Нейронные сети
    #39529270
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

Так ты возьми и сделай что я сказал. Появится красное выделение области картинки.
...
Рейтинг: 0 / 0
Нейронные сети
    #39529273
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Няшикdefecator,

Так ты возьми и сделай что я сказал. Появится красное выделение области картинки.

я в своей тестовой программе скрины показываю,
мне начхать на демки с сайта.
Там программеры могли накрутить чего угодно, тем более, что сама распознавалка - отдельно в DLL,
а всё остальное в интерфейсе - это накручено программерами на дельфях.

Распознавалка работает корректно, быстро и качественно, и этого достаточно.
...
Рейтинг: 0 / 0
Нейронные сети
    #39529276
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

Скачал исходники и глянул. Он делает снимок по шайпу, и когда нажимаешь мышкой. То он перемещает этот шайп в область нужную

Код: pascal
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.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ExtCtrls, Ocr, ExtDlgs, XPMan;

type
  TFormMain = class(TForm)
    Ocr: TOcr;
    OpenPictureDialog: TOpenPictureDialog;
    XPManifest: TXPManifest;
    PanelLeft: TPanel;
    Panel: TPanel;
    Image: TImage;
    ButtonSelectPicture: TButton;
    PanelRight: TPanel;
    Splitter: TSplitter;
    ButtonCancel: TButton;
    ProgressBar: TProgressBar;
    PageControl: TPageControl;
    TabSheetText: TTabSheet;
    MemoText: TMemo;
    TabSheetHtml: TTabSheet;
    MemoHtml: TMemo;
    TabSheetUnlv: TTabSheet;
    MemoUnlv: TMemo;
    TabSheetWords: TTabSheet;
    ScrollBoxWords: TScrollBox;
    ImageWords: TImage;
    TabSheetRegions: TTabSheet;
    ScrollBoxRegions: TScrollBox;
    ImageRegions: TImage;
    TabSheetTextLines: TTabSheet;
    ScrollBoxTextLines: TScrollBox;
    ImageTextLines: TImage;
    TabSheetConnectedComponents: TTabSheet;
    ScrollBoxComponents: TScrollBox;
    ImageComponents: TImage;
    ButtonRecognize: TButton;
    TabSheetParagraphs: TTabSheet;
    ScrollBoxParagraphs: TScrollBox;
    ImageParagraphs: TImage;
    Shape: TShape;
    procedure ButtonSelectPictureClick(Sender: TObject);
    procedure ButtonRecognizeClick(Sender: TObject);
    procedure ButtonCancelClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure OcrProgress(Sender: TObject; var Cancel: Boolean; Progress,
      WordCount: Integer);
    procedure ImageMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure ImageMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ImageMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PanelResize(Sender: TObject);
  private
    { Private declarations }
    CancelRequest: Boolean;
    Selecting: Boolean;
  public
    { Public declarations }
  end;

var
  FormMain: TFormMain;

implementation

{$R *.dfm}

uses Jpeg
{$ifdef CONDITIONALEXPRESSIONS}
  {$if CompilerVersion >= 30} // Delphi 10
    , GIFImg, PngImage
  {$ifend}
{$endif}
;

procedure TFormMain.ButtonSelectPictureClick(Sender: TObject);
begin
  with OpenPictureDialog do
    if Execute then
    begin
      Shape.Width := 0;
      Shape.Height := 0;
      ProgressBar.Position := 0;
      MemoText.Clear;
      MemoHtml.Clear;
      MemoUnlv.Clear;
      ImageWords.Picture := nil;
      ImageRegions.Picture := nil;
      ImageTextLines.Picture := nil;
      ImageComponents.Picture := nil;
      ImageParagraphs.Picture := nil;
      
      try
        Image.Picture.LoadFromFile(FileName);
        Ocr.Picture.Assign(Image.Picture);
      except
        Image.Picture := nil;
        ShowMessage('Preview of this image cannot be displayed. Click Recognize button to start OCR.');
        Ocr.PictureFileName := FileName;
      end;

      if not Ocr.Active then
      begin
        Ocr.DataPath := ExtractFilePath(Application.ExeName);
        Ocr.Active := True;
      end;
      ButtonRecognize.Enabled := True;
      Image.Cursor := crCross;
    end
end;

function RectToImageRect(Image: TImage; Rect: TRect): TRect;
var
  w, h, cw, ch: Integer;
  xyaspect: Double;
  DrawRect: TRect;
  Temp: Integer;
begin
  w := Image.Picture.Width;
  h := Image.Picture.Height;
  cw := Image.ClientWidth;
  ch := Image.ClientHeight;
  if Image.Stretch or (Image.Proportional and ((w > cw) or (h > ch))) then
  begin
    if Image.Proportional and (w > 0) and (h > 0) then
    begin
      xyaspect := w / h;
      if w > h then
      begin
        w := cw;
        h := Trunc(cw / xyaspect);
        if h > ch then
        begin
          h := ch;
          w := Trunc(ch * xyaspect);
        end;
      end
      else
      begin
        h := ch;
        w := Trunc(ch * xyaspect);
        if w > cw then
        begin
          w := cw;
          h := Trunc(cw / xyaspect);
        end;
      end;
    end
    else
    begin
      w := cw;
      h := ch;
    end;
  end;

  with DrawRect do
  begin
    Left := 0;
    Top := 0;
    Right := w;
    Bottom := h;
  end;

  if Image.Center then
    OffsetRect(DrawRect, (cw - w) div 2, (ch - h) div 2);

  if Rect.Left > Rect.Right then
  begin
    // swap
    Temp := Rect.Left;
    Rect.Left := Rect.Right;
    Rect.Right := Temp;
  end;

  if Rect.Top > Rect.Bottom then
  begin
    // swap
    Temp := Rect.Top;
    Rect.Top := Rect.Bottom;
    Rect.Bottom := Temp;
  end;

  Result.Left := Trunc((Rect.Left - DrawRect.Left) * (Image.Picture.Width / w));
  Result.Top := Trunc((Rect.Top - DrawRect.Top) * (Image.Picture.Height / h));
  Result.Right := Trunc(Result.Left + (Rect.Right - Rect.Left) * (Image.Picture.Width / w));
  Result.Bottom := Trunc(Result.Top + (Rect.Bottom - Rect.Top) * (Image.Picture.Height / h));

  if Result.Left < 0 then
    Result.Left := 0
  else if Result.Left >= Image.Picture.Width then
    Result.Left := Image.Picture.Width - 1;

  if Result.Top < 0 then
    Result.Top := 0
  else if Result.Top >= Image.Picture.Height then
    Result.Top := Image.Picture.Height - 1;

  if Result.Right < 0 then
    Result.Right := 0
  else if Result.Right >= Image.Picture.Width then
    Result.Left := Image.Picture.Width - 1;

  if Result.Bottom < 0 then
    Result.Bottom := 0
  else if Result.Bottom >= Image.Picture.Height then
    Result.Bottom := Image.Picture.Height - 1;
end;

function RectToShapeRect(UseShape: Boolean; Rect, ShapeRect: TRect): TRect;
begin
  Result := Rect;
  if UseShape then
  begin
    Inc(Result.Left, ShapeRect.Left);
    Inc(Result.Top, ShapeRect.Top);
    Inc(Result.Right, ShapeRect.Left);
    Inc(Result.Bottom, ShapeRect.Top);
  end;
end;

procedure TFormMain.ButtonRecognizeClick(Sender: TObject);
var
  i: Integer;
  UseShape: Boolean;
  ShapeRect: TRect;
begin
  try
    ProgressBar.Position := 0;
    CancelRequest := False;
    ButtonSelectPicture.Enabled := False;
    ButtonCancel.Visible := True;
    MemoText.Clear;
    MemoHtml.Clear;
    MemoUnlv.Clear;
    ImageWords.Picture := nil;
    ImageRegions.Picture := nil;
    ImageTextLines.Picture := nil;
    ImageComponents.Picture := nil;
    ImageParagraphs.Picture := nil;

    UseShape := (Shape.Width <> 0) and (Shape.Height <> 0);
    if UseShape then
    begin
      ShapeRect := RectToImageRect(Image, Shape.BoundsRect);
      Ocr.PictureLeft := ShapeRect.Left;
      Ocr.PictureTop := ShapeRect.Top;
      Ocr.PictureWidth := ShapeRect.Right - ShapeRect.Left;
      Ocr.PictureHeight := ShapeRect.Bottom - ShapeRect.Top;
    end
    else
    begin
      Ocr.PictureLeft := 0;
      Ocr.PictureTop := 0;
      Ocr.PictureWidth := 0;
      Ocr.PictureHeight := 0;
    end;

    Repaint;
    if not CancelRequest then
      MemoText.Text := StringReplace(Ocr.Text, #$a, #$d#$a, [rfReplaceAll]);
    if not CancelRequest then
      MemoHtml.Text := StringReplace(Ocr.GetHtmlText, #$a, #$d#$a, [rfReplaceAll]);
    if not CancelRequest then
      MemoUnlv.Text := StringReplace(Ocr.Unlv, #$a, #$d#$a, [rfReplaceAll]);

    if not CancelRequest then
      ProgressBar.Position := 100
    else
      ProgressBar.Position := 0;

    if not CancelRequest then
      if Image.Picture <> nil then
      begin
        ImageWords.Picture.Bitmap.Assign(Image.Picture.Graphic);
        ImageWords.Picture.Bitmap.PixelFormat := pf32bit;
        ImageWords.Canvas.Brush.Color := TColor($007FFF);
        for i := 0 to Ocr.WordCount - 1 do
          ImageWords.Canvas.FrameRect(RectToShapeRect(UseShape, Ocr.Words[i], ShapeRect));

        ImageRegions.Picture.Bitmap.Assign(Image.Picture.Graphic);
        ImageRegions.Picture.Bitmap.PixelFormat := pf32bit;
        ImageRegions.Canvas.Brush.Color := TColor($7F00FF);
        for i := 0 to Ocr.RegionCount - 1 do
          ImageRegions.Canvas.FrameRect(RectToShapeRect(UseShape, Ocr.Regions[i], ShapeRect));

        ImageTextLines.Picture.Bitmap.Assign(Image.Picture.Graphic);
        ImageTextLines.Picture.Bitmap.PixelFormat := pf32bit;
        ImageTextLines.Canvas.Brush.Color := TColor($00FF7F);
        for i := 0 to Ocr.TextLineCount - 1 do
          ImageTextLines.Canvas.FrameRect(RectToShapeRect(UseShape, Ocr.TextLines[i], ShapeRect));

        ImageComponents.Picture.Bitmap.Assign(Image.Picture.Graphic);
        ImageComponents.Picture.Bitmap.PixelFormat := pf32bit;
        ImageComponents.Canvas.Brush.Color := TColor($FF7F00);
        for i := 0 to Ocr.ConnectedComponentCount - 1 do
          ImageComponents.Canvas.FrameRect(RectToShapeRect(UseShape, Ocr.ConnectedComponents[i], ShapeRect));

        ImageParagraphs.Picture.Bitmap.Assign(Image.Picture.Graphic);
        ImageParagraphs.Picture.Bitmap.PixelFormat := pf32bit;
        ImageParagraphs.Canvas.Brush.Color := TColor($7FFF00);
        for i := 0 to Ocr.ParagraphCount - 1 do
          ImageParagraphs.Canvas.FrameRect(Ocr.Paragraphs[i].Location);
      end;
  finally
    ButtonCancel.Visible := False;
    ButtonSelectPicture.Enabled := True;
  end;
end;

procedure TFormMain.ButtonCancelClick(Sender: TObject);
begin
  CancelRequest := True;
end;

procedure TFormMain.FormCreate(Sender: TObject);
begin
  ShowMessage('OCR recognition can be slow when application is started from Delphi IDE.');
end;

procedure TFormMain.OcrProgress(Sender: TObject; var Cancel: Boolean;
  Progress, WordCount: Integer);
begin
  ProgressBar.Position := Progress;
  Application.ProcessMessages; // so we are able to click Cancel button
  Cancel := CancelRequest;
end;

procedure TFormMain.ImageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if Ocr.Active then
    if Button = mbLeft then
    begin
      Selecting := True;
      Shape.Left := X;
      Shape.Top := Y;
      Shape.Width := 0;
      Shape.Height := 0;
    end;
end;

procedure TFormMain.ImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if Selecting then
  begin
    Shape.Width := X - Shape.Left;
    Shape.Height := Y - Shape.Top;
  end;
end;

procedure TFormMain.ImageMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if Selecting then
  begin
    Selecting := False;
    Shape.Width := X - Shape.Left;
    Shape.Height := Y - Shape.Top;
    Repaint;
  end;
end;

procedure TFormMain.PanelResize(Sender: TObject);
begin
  Shape.Width := 0;
  Shape.Height := 0;
end;

end.



А когда надо, режим изображения в этой области
Код: pascal
1.
  ShapeRect := RectToImageRect(Image, Shape.BoundsRect);



По умолчанию, это вся область картинки
...
Рейтинг: 0 / 0
Нейронные сети
    #39529280
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ну и что ?
...
Рейтинг: 0 / 0
Нейронные сети
    #39529291
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заглянул сюда случайно, увидев вопрос в общем списке тем. Delphi давно не существует, если кто не заметил.

Damir_85Я хочу начать изучать нейронные сети, и поэтому хотел спросить вас о литературе по этой теме.

Значит, заодно придётся изучить Python. Большая часть литературы по нейронным сетям (теперь методика называется deep learning) и вообще по машинному обучению - с примерами на Python (в том числе новые книги на русском языке), и большая часть готовых библиотек предназначены для Python-а или имеют интерфейсы для обращения из Python-а. На втором месте - R, тоже неплохо обеспечен литературой и библиотеками. Но это, в отличие от Python и Delphi, специализированный язык для задач математической статистики.
Для темы машинного обучения глубокое знание Python-а не требуется, но заодно поизучаете то, чем сейчас можно заменить Delphi.

Ответы про распознавание текста вызваны тем, что их автор не понял вопроса.
...
Рейтинг: 0 / 0
Нейронные сети
    #39529311
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот вариант на delphi https://github.com/Steema/BI
...
Рейтинг: 0 / 0
Нейронные сети
    #39529328
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ziv-2014Вот вариант на delphi https://github.com/Steema/BI

Хоть и лежит на гитхабе, однако исходники там все испорченные.
Только интерфейсные части.

Хотя ещё весной там лежало всё целиком.
...
Рейтинг: 0 / 0
Нейронные сети
    #39529329
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
правильная ссылка на SteeBI со всеми исходниками:
http://www.steebi.com/files/code/beta/vcl_fmx/TeeBI_SourceCode.zip
...
Рейтинг: 0 / 0
Нейронные сети
    #39529587
Фотография Dimonka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MЗаглянул сюда случайно, увидев вопрос в общем списке тем. Delphi давно не существует, если кто не заметил. Вообще ничего не существует. "R", "Python" тоже зачастую не существуют для коммерческого использования из-за особенности лицензионных соглашений многих из их "бесплатных" библиотек.
...
Рейтинг: 0 / 0
Нейронные сети
    #39529730
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПро мертвость - это увы не смех, а факт. Меня тоже это не очень радует.

Идере расскажи, вместе посмеётесь :)

авторDelphi давно не существует, если кто не заметил.

Весь мир - тлен. Ничего вокруг нет :)
...
Рейтинг: 0 / 0
Нейронные сети
    #39529933
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonавторПро мертвость - это увы не смех, а факт. Меня тоже это не очень радует.

Идере расскажи, вместе посмеётесь :)

авторDelphi давно не существует, если кто не заметил.

Весь мир - тлен. Ничего вокруг нет :)

Мы вместе смеемся с 2007 года, если что.

Компиляторы Фортрана и PL/1, представь, до сих пор разрабатывают.
Я понимаю, что тебе грустно, да и мне тоже, но факт есть факт - скоро за упоминание Delphi в приличном обществе будут бить канделябром.
...
Рейтинг: 0 / 0
Нейронные сети
    #39530075
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schi,

Это кто же, мне интересно, составляет это приличное общество?
...
Рейтинг: 0 / 0
Нейронные сети
    #39530188
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schi,

Идера то Сенчу прикупит, то еще что. Наверно, что бы поржать вместе и Игорем :)
...
Рейтинг: 0 / 0
Нейронные сети
    #39530434
Damir_85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ссылки.
Читая форум, натолкнулся на высказывание что Дельфи - это мертвый язык. Согласен лишь наполовину, потому, что да, действительно сейчас он не очень популярен, даже в объявлениях на работу его практически не встретишь. Но с другой стороны, какая разница на чем написана программа, ведь главное чтобы она работала!
Кстати насчет Python : в последнее время много о нем слышу, скорее всего начну его изучать, т.к. прочитал здесь что под него много библиотек, ну и сравню с Дельфи
...
Рейтинг: 0 / 0
Нейронные сети
    #39530451
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Damir_85...какая разница на чем написана программа, ведь главное чтобы она работала...
Разница в том, что языков много, а годные библиотеки есть только для некоторых. Иногда можно использовать чужие библиотеки, но далеко не всегда.
...
Рейтинг: 0 / 0
Нейронные сети
    #39530455
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

Годные библиотеки можно написать, использовать самим и продавать. Мало кто думает терминами бизнеса. Ну тут мало что поделаешь.
...
Рейтинг: 0 / 0
Нейронные сети
    #39530460
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonчччД,

Годные библиотеки можно написать в гараже , использовать самим и продавать. Мало кто думает терминами бизнеса. Ну тут мало что поделаешь.
Поправил. :)
...
Рейтинг: 0 / 0
Нейронные сети
    #39530476
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

Бывает, что уж :)

http://hitech.vesti.ru/article/625961/
...
Рейтинг: 0 / 0
Нейронные сети
    #39534587
Jude
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schimakhaonпропущено...


Идере расскажи, вместе посмеётесь :)

пропущено...


Весь мир - тлен. Ничего вокруг нет :)

Мы вместе смеемся с 2007 года, если что.

Компиляторы Фортрана и PL/1, представь, до сих пор разрабатывают.
Я понимаю, что тебе грустно, да и мне тоже, но факт есть факт - скоро за упоминание Delphi в приличном обществе будут бить канделябром.
мне тоже регулярно говорят, что делфи мертв. гдето с 2002го.
при этом ничего не мешало на нем работать .
поменял лыжи где-то в 2014 (12 лет!) = щас опять слышу от "горячих парней" 23х лет отроду , что "делфи мертв!"(с) - недавно вакансию получил на удаленку.
однако да. кто-то на мертвом языке стартанул игрушки под андроид на фаермонкей :)

Зомби, блин, апокалипсис!
...
Рейтинг: 0 / 0
Нейронные сети
    #39544775
kaimi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jude,

Язык мертв когда его перестают использовать для новых проектов. А Firemonkey был изначально мертворожденным. А та поддержка которая сейчас существует - исключительно связанна с legacy продуктами которым embarcadero оказывает консалтинг.
Очень трудно отрицать смерть Языка, если его комьюнити с каждым годом только уменьшается.

А вакансии... Вакансии всегда будут.
...
Рейтинг: 0 / 0
Нейронные сети
    #39544784
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Откуда вы беретесь то?
...
Рейтинг: 0 / 0
Нейронные сети
    #39544796
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

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

По комьюнити вообще удивительно, дельфи-форум вроде один из самых живых
...
Рейтинг: 0 / 0
Нейронные сети
    #39544812
kaimi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kealon(Ruslan),

Я не думаю что делфи сложнее любого современного веб-стека(где помимо языка нужно знать и понимать еще кучу технологий) или языков типа Scala, Haskel, Kotlin, Python, etc...
Часто встречаете вакансии типа Junior Delphi Devekoper? А Junior Python Developer? Сомневаюсь что это связанно со "сложностью" Delphi.

Просто отсутствует класс задач, с которыми он(Delphi) бы справлялся лучше конкурентных технологий.

По поводу комьюнити:
Стоит обратиться к открытым источникам: https://insights.stackoverflow.com/survey/2017#technology-programming-languages или http://githut.info/ чтобы понять что его почти нет. А локальный форум - не показатель.
...
Рейтинг: 0 / 0
Нейронные сети
    #39544815
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan),

дельфи - это ж интербейз. А он никому не нужен.
...
Рейтинг: 0 / 0
25 сообщений из 86, страница 2 из 4
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Нейронные сети
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]