Перейти к содержанию

Рекомендуемые сообщения

Здравствуйте!

Прошу принять и расценить заказ на написание приложения для фирмы для всех смартфонов (ANDROID, IOS)

Пример в приложении, делал сам, вышло не красиво

Для начала две задачи:

1. Загрузка каталога с сайта (примере в приложении работает на WINDOWS, на ANDROID один раз сработало а так зависает)

2. Загрузка статуса заказа (в примере не реализовано) 

           на сайте это выглядит так:

image.thumb.png.7fefd996a124ddfd435933349bfbbb32.png

 

 

Требуется рабочее приложение (без глюков и тормозов) и сам код для моего изучения.

89817514818 Александр (СПб)

sashar333@mail.ru

Заранее спасибо!

 

ГЕКТОРсчет.7z

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

пример кода:

Спойлер

 

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects,
  FMX.Layouts, System.ImageList, FMX.ImgList, FMX.Controls.Presentation,
  FMX.StdCtrls, FMX.TabControl, FMX.Edit, FMX.ScrollBox, FMX.Memo, FMX.Ani,
  FMX.DateTimeCtrls, FMX.ListBox, FireDAC.Stan.Intf, FireDAC.Comp.BatchMove,
  FireDAC.Comp.BatchMove.Text, System.Net.URLClient, System.Net.HttpClient,
  System.Net.HttpClientComponent;

type
  TForm1 = class(TForm)
    Layout1: TLayout;
    GridPanelLayout1: TGridPanelLayout;
    TabControl1: TTabControl;
    TabItem1: TTabItem;
    TabItem2: TTabItem;
    TabItem3: TTabItem;
    TabItem5: TTabItem;
    TabItem6: TTabItem;
    GridPanelLayout2: TGridPanelLayout;
    ImageList1: TImageList;
    GridPanelLayout3: TGridPanelLayout;
    CornerButton2: TCornerButton;
    CornerButton3: TCornerButton;
    CornerButton4: TCornerButton;
    CornerButton5: TCornerButton;
    CornerButton6: TCornerButton;
    GridPanelLayout5: TGridPanelLayout;
    GridPanelLayout6: TGridPanelLayout;
    CornerButton7: TCornerButton;
    GridPanelLayout7: TGridPanelLayout;
    GridPanelLayout8: TGridPanelLayout;
    Text2: TText;
    StyleBook1: TStyleBook;
    CornerButton1: TCornerButton;
    Text4: TText;
    GridPanelLayout9: TGridPanelLayout;
    GridPanelLayout10: TGridPanelLayout;
    CornerButton8: TCornerButton;
    CornerButton9: TCornerButton;
    GridPanelLayout11: TGridPanelLayout;
    GridPanelLayout12: TGridPanelLayout;
    Text3: TText;
    GridPanelLayout15: TGridPanelLayout;
    GridPanelLayout16: TGridPanelLayout;
    CornerButton10: TCornerButton;
    CornerButton11: TCornerButton;
    GridPanelLayout18: TGridPanelLayout;
    GridPanelLayout19: TGridPanelLayout;
    CornerButton12: TCornerButton;
    CornerButton13: TCornerButton;
    Memo2: TMemo;
    DateEdit2: TDateEdit;
    ComboBox1: TComboBox;
    Text8: TText;
    Edit1: TEdit;
    Glyph1: TGlyph;
    ImageList2: TImageList;
    Timer1: TTimer;
    Text6: TText;
    ListBox1: TListBox;
    indi: TAniIndicator;
    ListBox2: TListBox;
    procedure CornerButton2Click(Sender: TObject);
    procedure CornerButton3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CornerButton7Click(Sender: TObject);
    procedure CornerButton5Click(Sender: TObject);
    procedure CornerButton6Click(Sender: TObject);
    procedure CornerButton13Click(Sender: TObject);
    procedure CornerButton1Click(Sender: TObject);
    procedure CornerButton9Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  type
  bar = class(TThread)

  private
    { Private declarations }
  protected
    procedure Execute; override;
  end;


var
  Form1: TForm1;
  cl:bar;
  proc:byte;
  ss:TStringStream;

implementation

{$R *.fmx}
{$R *.LgXhdpiPh.fmx ANDROID}
{$R *.Windows.fmx MSWINDOWS}

procedure TForm1.ComboBox1Change(Sender: TObject);
var
  i: Integer;
begin
while Listbox2.count>0 do
 ListBox2.listitems[0].Parent:=ListBox1;
for i := 0 to ListBox1.Count-1 do
 if Listbox1.ListItems[i-ListBox2.Count].TagString=Combobox1.ListItems[Combobox1.ItemIndex].Text then
  Listbox1.ListItems[i-ListBox2.Count].Parent:=ListBox2;
end;

procedure TForm1.CornerButton13Click(Sender: TObject);
begin
if Length(Memo2.Text)>=15 then
 begin
  ShowMessage('Ваше сообщение отправлено!');
  Memo2.Lines.Clear;
  TabControl1.TabIndex:=0;
 end
else
 begin
  ShowMessage('Сообщение не менне 15 символов.');
  Memo2.SetFocus;
 end;
end;

procedure TForm1.CornerButton1Click(Sender: TObject);
begin
if Edit1.Text='' then
 Begin
  ShowMessage('Укажите и номер счета и дату !');
  Edit1.SetFocus;
 End
else
 Begin
 Text4.Text:='Подождите идет загрузка данных ...';

 End;
end;

procedure TForm1.CornerButton2Click(Sender: TObject);
begin
TabControl1.TabIndex:=1;
Edit1.SetFocus;
end;

procedure TForm1.CornerButton3Click(Sender: TObject);
begin
TabControl1.TabIndex:=2;
end;

procedure TForm1.CornerButton5Click(Sender: TObject);
begin
TabControl1.TabIndex:=3;
Memo2.SetFocus;
end;

procedure TForm1.CornerButton6Click(Sender: TObject);
begin
TabControl1.TabIndex:=4;
end;

procedure TForm1.CornerButton7Click(Sender: TObject);
begin
TabControl1.TabIndex:=0;
end;


procedure TForm1.Edit1Change(Sender: TObject);
begin
DateEdit2.SetFocus;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ListBox1.Visible:=false;
TabControl1.TabPosition:=ttabposition.None;
TabControl1.TabIndex:=0;
Text8.Text:=
'+7 (812) 460-90-07'+#13+
'+7 (812) 460-90-08'+#13+
'+7 (812) 460-90-09'+#13+
#13+
'Офис:'+#13+
#13+
'Санкт-Петербург, г. Колпино, ул. Загородная, д. 44'+#13+
#13+
'Производство и склад:'+#13+
#13+
'Дорога на Петрославянку д. 3'+#13+
#13+
#13+
'Режим работы: 09:00 - 17:30'+#13+
'Обед: 13:00 - 13:40'+#13+
#13+
'Выходные: Суббота, Воскресенье'+#13+
#13+
'Тел.: 700-6024, 700-3242';
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
If (Glyph1.ImageIndex+1)<ImageList2.Count then
 Glyph1.ImageIndex:=Glyph1.ImageIndex+1
else
 Glyph1.ImageIndex:=0;
end;


procedure TForm1.CornerButton9Click(Sender: TObject);
begin
if not(indi.Visible) then
 Begin
 Form1.indi.Visible:=true;
 Form1.indi.Enabled:=true;
 Form1.Text6.Text:='Подождите идет загрузка данных, это может занять пару минут.';
 Form1.Combobox1.Clear;
 Form1.Listbox1.Clear;
 Form1.Listbox2.Clear;
 cl:=bar.Create(false);
 end;
end;

{ bar }

procedure bar.Execute;
var s,tgs:string;
    item:TListBoxItem;
    net:TNetHTTPClient;
    mm:tmemo;
begin
 mm:=tmemo.Create(nil);
 net:=tnethttpclient.Create(nil);
 Ss:=TStringStream.Create('', TEncoding.UTF8);
 net.Get('https://www.gector-spb.ru/catalog/',ss);
 mm.text:=ss.DataString;

while (mm.Lines.Count<>0) do
begin
if pos('class="catalog"',mm.Lines[0])>0 then
 begin
  while (mm.Lines.Count<>0) do
   begin
    if pos('div class="header"',mm.Lines[0])>0 then
     begin
      mm.Lines.Delete(0);
      s:=mm.Lines[0];
      delete(s,1,pos('>',s));
      s:=copy(s,0,pos('<',s)-1);
      tgs:=s;
      Form1.ComboBox1.Items.Add(s);
      while (mm.Lines.Count<>0)and(pos('</table>',mm.Lines[0])=0) do
       begin
        if pos('tr class="cell item',mm.Lines[0])>0 then
         begin
          Form1.ListBox1.BeginUpdate;
          Item:=TListBoxItem.Create(Form1.ListBox1);
          Item.StyleLookup:='listboxitembottomdetail';
          Item.Height:=40;
          item.TagString:=tgs;
          Item.TextSettings.WordWrap:=true;
          mm.Lines.Delete(0);
          s:=mm.Lines[0];
          delete(s,1,pos('a name=',s));
          delete(s,1,pos('>',s));
          s:=copy(s,1,pos('</a>',s)-1);
          if s=' ' then
           begin
            mm.Lines.Delete(0);
            s:=mm.Lines[0];
            delete(s,1,pos('</a>',s)+3);
            s:=copy(s,1,pos('</td>',s)-1);
           end;
          Item.Text:=s;
          mm.Lines.Delete(0);
          s:=mm.Lines[0];
          delete(s,1,pos('<strong>',s)+7);
          s:=copy(s,1,pos('</strong>',s)-1);
          item.ItemData.Detail:='остаток: '+s+'тн';
          mm.Lines.Delete(0);
          s:=mm.Lines[0];
          delete(s,1,pos('>',s));
          s:=copy(s,1,pos('</td>',s)-1);
          item.ItemData.Detail:=item.ItemData.Detail+'   цена: '+s+'руб\тн';
          Form1.ListBox1.AddObject(item);
          Form1.ListBox1.EndUpdate;
         end;
        mm.Lines.Delete(0);
       end;
     end;
    mm.Lines.Delete(0);
   end;
 end;
if mm.Lines.Count<>0 then mm.Lines.Delete(0);
end;
 ss.Destroy;
 net.Destroy;
 mm.Destroy;
 Form1.indi.Visible:=false;
 Form1.indi.Enabled:=false;
 Form1.Text6.Text:='Загрузка данных завершена.';
 terminate;
 Form1.ComboBox1.ItemIndex:=0;
 cl.Free;
end;

end.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Sashar333

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вам проще адаптировать сайт https://gector-spb.ru/ для мобильных браузеров. Наймите верстальшика за доширак - обойдется дешевле и по времени гораздо быстрее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Tumaso, если добавляю items в Listbox в главном потоке то приложение зависает на время, пока большой список создается. По другому никак?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

выкинуть визуальные компоненты из парсинга (memo) и в отдельный тред...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Slym, так вроде создание визуальных компонентов в потоке не есть хорошо..?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Спойлер

 

procedure bar.Execute;
var net:TNetHTTPClient;
begin
 soed:=1;
 mm:=tmemo.Create(nil);
 net:=tnethttpclient.Create(nil);
 mm.Lines.LoadFromStream(net.Get('https://www.gector-spb.ru/catalog/').ContentStream,TEncoding.UTF8);
 pbmax:=mm.Lines.Count;
 soed:=2;

  while (mm.Lines.Count<>0) do
begin
if pos('class="catalog"',mm.Lines[0])>0 then
 begin
  while (mm.Lines.Count<>0) do
   begin
    if pos('div class="header"',mm.Lines[0])>0 then
     begin
      mm.Lines.Delete(0);
      s:=mm.Lines[0];
      delete(s,1,pos('>',s));
      s:=copy(s,0,pos('<',s)-1);
      tgs:=s;

          Synchronize(syn);

     end;
    mm.Lines.Delete(0);
   end;
 end;
if mm.Lines.Count<>0 then mm.Lines.Delete(0);
end;
 soed:=0;
 terminate;
end;


procedure bar.syn;
var item:TListBoxItem;
begin
      Form1.ComboBox1.Items.Add(s);
      Form1.ComboBox1.ListItems[0].TextSettings.FontColor := TAlphaColorRec.White;
      while (mm.Lines.Count<>0)and(pos('</table>',mm.Lines[0])=0) do
       begin
        if pos('tr class="cell item',mm.Lines[0])>0 then
         begin
          Form1.pb.Value:=100-(round(mm.Lines.Count*100/pbmax));
          Form1.ListBox1.BeginUpdate;
          Item:=TListBoxItem.Create(Form1.ListBox1);
          Item.StyleLookup:='listboxitembottomdetail';
          Item.Height:=40;
          item.TagString:=tgs;
          Item.TextSettings.WordWrap:=true;
          mm.Lines.Delete(0);
          s:=mm.Lines[0];
          delete(s,1,pos('a name=',s));
          delete(s,1,pos('>',s));
          s:=copy(s,1,pos('</a>',s)-1);
          if s=' ' then
           begin
            mm.Lines.Delete(0);
            s:=mm.Lines[0];
            delete(s,1,pos('</a>',s)+3);
            s:=copy(s,1,pos('</td>',s)-1);
           end;
          Item.Text:=s;
          mm.Lines.Delete(0);
          s:=mm.Lines[0];
          delete(s,1,pos('<strong>',s)+7);
          s:=copy(s,1,pos('</strong>',s)-1);
          item.ItemData.Detail:='остаток: '+s+'тн';
          mm.Lines.Delete(0);
          s:=mm.Lines[0];
          delete(s,1,pos('>',s));
          s:=copy(s,1,pos('</td>',s)-1);
          item.ItemData.Detail:=item.ItemData.Detail+'   цена: '+s+'руб\тн';
          Form1.ListBox1.AddObject(item);
          Form1.ListBox1.EndUpdate;
         end;
        mm.Lines.Delete(0);
       end;
end;

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот так более менее работает, но все равно подвисает (на сколько я понимаю именно при  Item:=TListBoxItem.Create(Form1.ListBox1);)

хотя могу ошибаться 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

tmemo убери! TStringList возьми. распарсить без визуальных компонент! т.е. пока парсишь ничего ListBox не добавляешь

1. Данные сохраняем в TStringList
2. в потоке парсим и добавляем в другой TStringList  Item.Text '=' item.ItemData.Detail 

3. в основном потоке вынимаем строки из второго TStringList в ListBox

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Slym, спасибо!

загрузка получилась на смартфоне за 1-2 секунды без тормозов!

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашел программиста для написания данного приложения!

Всем спасибо!

Тему можно закрыть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 часов назад, Slym сказал:

tmemo убери! TStringList возьми. распарсить без визуальных компонент! т.е. пока парсишь ничего ListBox не добавляешь

1. Данные сохраняем в TStringList
2. в потоке парсим и добавляем в другой TStringList  Item.Text '=' item.ItemData.Detail 

3. в основном потоке вынимаем строки из второго TStringList в ListBox

Что то не очень понял, а а как вы вычитываете данные из TStringList в ListBox? они же добавляются фоновым потоком, как вы определяете что добавлено, а что нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Спойлер

 

procedure bar.Execute;
var net:TNetHTTPClient;
    tm:string;
begin
 soed:=1;
 mm:=TStringList.Create;
 mmc:=TStringList.Create;
 mml:=TStringList.Create;
 net:=tnethttpclient.Create(nil);
 mm.LoadFromStream(net.Get('https://www.gector-spb.ru/catalog/').ContentStream,TEncoding.UTF8);
 pbmax:=mm.Count;
 soed:=2;
while (mm.Count<>0) do
begin
if pos('class="catalog"',mm[0])>0 then
 begin
  while (mm.Count<>0) do
   begin
    if pos('div class="header"',mm[0])>0 then
     begin
      mm.Delete(0);
      s:=mm[0];
      delete(s,1,pos('>',s));
      s:=copy(s,0,pos('<',s)-1);
mmc.Add(s);
mml.Add('---');
      while (mm.Count<>0)and(pos('</table>',mm[0])=0) do
       begin
        if pos('tr class="cell item',mm[0])>0 then
         begin
          Form1.pb.Value:=100-(round(mm.Count*100/pbmax));

          mm.Delete(0);
          s:=mm[0];
          delete(s,1,pos('a name=',s));
          delete(s,1,pos('>',s));
          s:=copy(s,1,pos('</a>',s)-1);
          if s=' ' then
           begin
            mm.Delete(0);
            s:=mm[0];
            delete(s,1,pos('</a>',s)+3);
            s:=copy(s,1,pos('</td>',s)-1);
           end;

mml.Add(s);
          mm.Delete(0);
          s:=mm[0];
          delete(s,1,pos('<strong>',s)+7);
          s:=copy(s,1,pos('</strong>',s)-1);

            tm:='остаток: '+s+'тн';
          mm.Delete(0);
          s:=mm[0];
          delete(s,1,pos('>',s));
          s:=copy(s,1,pos('</td>',s)-1);

mml.Add(tm+'   цена: '+s+'руб\тн');

         end;
        mm.Delete(0);
       end;


     end;
    mm.Delete(0);
   end;
 end;
if mm.Count<>0 then mm.Delete(0);
end;
 Synchronize(syn);
 soed:=0;
 mm.Free;
 mmc.Free;
 mml.Free;
 terminate;
end;


procedure bar.syn;
var item:TListBoxItem;
    tm:string;
    i,i2:integer;
begin
Form1.ListBox1.BeginUpdate;
for I := 0 to mmc.Count-1 do
begin
 tm:=mmc;
 Form1.ComboBox1.Items.Add(tm);
end;

i:=0;
i2:=-1;
while i<(mml.Count-1) do
begin
 Item:=TListBoxItem.Create(Form1.ListBox1);
 Item.StyleLookup:='listboxitembottomdetail';
 Item.Height:=40;
 if mml='---' then
  begin
  i2:=i2+1;
  i:=i+1;
  end;
 item.TagString:=mmc[i2];
 Item.TextSettings.WordWrap:=true;
 Item.Text:=mml;
 item.ItemData.Detail:=mml[i+1];
 Form1.ListBox1.AddObject(item);
i:=i+2;
end;

Form1.ListBox1.EndUpdate;

end;

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 20.03.2020 в 17:03, Sashar333 сказал:

Нашел программиста для написания данного приложения!

Всем спасибо!

Тему можно закрыть.

Продолжаю искать разработчика...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 21.04.2020 в 09:20, Sashar333 сказал:

Продолжаю искать разработчика...

 

Вы же вроде нашли разработчика...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
53 минуты назад, #WAMACO сказал:

Вы же вроде нашли разработчика...

сдался))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему никто не хочет заняться данной задачей, это очень сложно!?

 

Project1.apkвот что я примерно хочу видеть

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 часов назад, Sashar333 сказал:

Почему никто не хочет заняться данной задачей, это очень сложно!?

 

Project1.apkвот что я примерно хочу видеть

наоборот... с первого взгляда выглядит все как то уж слишком просто и скучно... с первого взгляда...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может быть кто подскажет где и кто может обучить грамотному программированию? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Sashar333 сказал:

Может быть кто подскажет где и кто может обучить грамотному программированию? 

https://www.labirint.ru/books/512935/

Начните с 1-го тома, потом далее.... многие вопросы отпадут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
34 минуты назад, #WAMACO сказал:

https://www.labirint.ru/books/512935/

Начните с 1-го тома, потом далее.... многие вопросы отпадут.

Это я буду 5 лет изучать, может меньше))

А программа то нужна сейчас...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
15 минут назад, Sashar333 сказал:

Это я буду 5 лет изучать, может меньше))

А программа то нужна сейчас...

Выложите хотя бы тех.задание сюда, что нужно сделать, народ посмотрит и сразу прикинет, сможет Вам написать программу или нет...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Похожий контент

    • От Олег Киреев
      Приложение для расчёта и подбора опор подвески силового агрегата автомобиля v.44.
       
       
       
       

       
       
       
       




       
       
       
       
       
      РасчётОпор v.44.rar
    • От ProgrammMan
      Всем привет. 
      Выложил приложение и жду модерацию уже больше 1 дня.
      Раньше за пару часов можно было пройти модерацию, а сейчас уже нельзя так.
      Так вот, сколько мне нужно ждать, чтобы мое приложение прошло модерацию?
    • От andahay
      Доброго времени суток. Есть android приложение, в нем есть диалоговое окно, которое предлагает перейти в google play и скачать другое приложение (pro версию), с 2 кнопками (да/нет). Как реализовать этот переход в Google play, чтобы в нем сразу было загружено нужное приложение. Использую Delphi XE7
    • От Вячеслав Холод
      При установке компонента и запуска на устройстве, приложение закрывается через секунду. Знает кто в чем может проблема быть?
      10.2 Токио
       
      ...И еще, какие аналоги есть этого компонента для винды? 
    • От Pax Beach
      Мне необходимо, когда пользователь нажимает кнопку «Закрыть», уничтожить приложение. Если указать Action = caFree, приложение остается висеть в памяти, не уничтожается, методы Destroy в приложении и сервисе не срабатывают:
      procedure TfmMain.FormClose(Sender: TObject; var Action: TCloseAction); begin DM.LocationSensor.Active := false; Action := TCloseAction.caFree; end; Если уничтожить приложение в смартфоне через «Последние приложения», тогда приложение уничтожается, сервис приложения перезапускается, и продолжает работать — это мне и надо.
      Помогите пожалуйста понять, как же правильно уничтожить приложение при закрытии основной формы?
      Подойдут решения отправки Intent, куда нужно, или вызовы нативных методов.
       
    • От gdm_it
      Здравствуйте, решил написать клиента для своего сайта, делпхи не открывал 15 лет без шуток, перешел в веб разработку,  а сейчас все возвращается на свои места как говориться
       
      так вот меня интересует теоретический набросок  использования элементов форм
       
       
      схема типичная:   слева скрытый список  MultiView1, справа рабочая область
       
      вот о рабочей области и вопрос
       
      я выбираю в меню MultiView1 СТАТЬИ(1 пункт), слева должен появиться список свежих статей, внизу панель (добавить), жмем на добавить и открывается форма добавления статьи.
       
      как это лучше реализовать?
       
      например: 
      1. накидать на каждый пункт меню панель и в них разместить свои элементы форм
      2. нагромоздить несколько форм и их подключать как то
      3. ваш вариант
       
      задача то плевая опыта пока нет 
    • От FaNtA_DDD
      Привет, я бы хотел узнать, можно ли как-то заставить приложение работать в фоне. Я знаю что это делается через сервисы, самих уроков я не видел. Я надеюсь тут есть люди, которые смогу мне помочь в этом? Не откажусь от примера.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...