Перейти к содержанию
Fire Monkey от А до Я

neo

Пользователи
  • Постов

    64
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные neo

  1.  

    Один из вариантов:

      with TStringStream.Create do
      try
        LoadFromFile('d:\11.txt');
        Edit1.Text := DataString;
      finally
        Free;
      end;
    

    это если файл просто текстовый... а у меня там сначала идёт размер строки... у меня в ключевой файл пишется несколько параметров типа IMEI итд

  2. И это все просто чтобы считать/записать строку?

    ну да =)

    вот так вызываю..

    edit1.text:=StringOf(LoadData);

    просто размер кажется большим из за того что каждую часть разнёс по функциям/процедурам

    тк они используются ещё и для других целей

    И это все просто чтобы считать/записать строку?

    если ты умеешь делать это одной строкой то можешь поделится =)

  3. строку в файл сохраняю вот так

    procedure WriteStreamStr(Stream: TStream; Str: string);
    var
      StrLen: Integer;
    begin
      StrLen:=Length(Str);
      Stream.WriteBuffer(StrLen,SizeOf(Integer));
    
      if StrLen>0 then Stream.Write(Str[1], StrLen);
    end;
    
    procedure SaveData(Info: String);
    var
      Stream: TMemoryStream;
    begin
      Stream:= TMemoryStream.Create;
      try
      Stream.Seek(0,soFromBeginning);
      WriteStreamStr(Stream,Info);
      Stream.SaveToFile('access.key');
      finally
      Stream.Free;
      end;
    end;
    
    
  4. Привет!

     

    народ чего то не получается под андройдом из файла получить строку в нужной кодировке...

     

    вот так получаю строку

    function ReadStreamStr(Stream: TStream): String;
    var
      StrLen: Integer;
    begin
      Result:='';
      Stream.ReadBuffer(StrLen,SizeOf(Integer));
    
      SetLength(Result,StrLen);
      Stream.Read(Result[1],StrLen);
    end;
    
    function LoadData: String;
    var
      Stream: TMemoryStream;
    begin
      Stream:= TMemoryStream.Create;
      try
      Stream.LoadFromFile(TPath.GetDocumentsPath + PathDelim +'access.key');
      Stream.Seek(0,soFromBeginning);
    
      Result:=ReadStreamStr(Stream);
      finally
      Stream.Free;
      end;
    end;

    в LoadData строка

    далее декодирую её

    function StringOf(str: String): String;
    var
    Bytes: TBytes;
    begin
    Bytes := BytesOf(str);
      if Assigned(Bytes) then
        Result := TEncoding.ANSI.GetString(Bytes, Low(Bytes), High(Bytes) + 1)
      else
        Result := '';
    end;

    но всё равно килиберда получается =(

  5. Привет!

     

    столкнулся с небольшой проблемкой)

     

    при закрытии программы сохраняю настройки в Ini файл

     

    обычно делаю это на событии OnDestroy но в андройде это не работает

     

    если находясь в программе войти в перезагрузку и перезагрузить телефон

    ничего не сэйвится... и даже если сначала свернуть все приложения и потом перезагрузить...

     

    добавление в Hide/Deactive тоже ничего не даёт

    onClose работает - но для этого нужно в ручную выйти из программы

     

    Может кто нибудь знает как это обойти?

  6. Народ а как поменять разрешение получаемой картинки через CameraComponent?

    по умолчанию получаю очень маленькую картинку... хотелось бы сделать её на весь экран =(

    добавляю сюда CameraComponent1SampleBufferReady

      CameraComponent1.Quality := TVideoCaptureQuality.highQuality;
      image.Width := image.Bitmap.Width;
      image.Height := image.Bitmap.Height;
    

    но ничего не меняется =(

    походу это можно делать только в XE8 а у меня XE7

    и использовать нужно CaptureSetting

  7. Итак вот что получилось

     

    //сдвинуть выделенный пункт вверх

    procedure TForm1.Up1Click(Sender: TObject);
    begin
      if Assigned(ListBox1.Selected) and (listbox1.Selected.index>=1) then
      ListBox1.ItemsExchange( ListBox1.ItemByIndex(listbox1.Selected.index), ListBox1.ItemByIndex(listbox1.Selected.index-1)  );
    end;

     

    //сдвинуть выделенный пункт вниз
    procedure TForm1.Down2Click(Sender: TObject);
    var
      NextItem: Integer;
    begin
      if Assigned(ListBox1.Selected) and (listbox1.Selected.index<ListBox1.Items.Count-1) then
      begin
      NextItem:=Listbox1.Selected.Index+1;
      ListBox1.ItemsExchange( ListBox1.ItemByIndex(listbox1.Selected.index), ListBox1.ItemByIndex(listbox1.Selected.index+1)  );
      Listbox1.ClearSelection; //к сож. нужно добавить ClearSelection и NextItem иначе идёт мультиселект
      listbox1.ItemIndex:=NextItem;
      end;

    end;

  8.  

    1. Все контролы в ФМ являются контейнерами.

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

    3. поменять местами итемы можно так:

    ListBox1.ItemsExchange( ListBox1.ItemByIndex(0), ListBox1.ItemByIndex(1)  );
    

    4. Чтобы в Листбокс итеме поменять текст, нужно поменять его паблишед свойство Text, делается это так:

    ListBox1.ItemByIndex(1).Text := '123';
    

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

     

    а у ListView как? не знаете? там нету ItemsExchange

     

    мне на ум только такая ерунда приходит:

        Litem:=ListView1.Items.Insert(ListView1.Selected.Index-1);

        LItem.Text:=listview1.Items.Item[ListView1.Selected.Index].Text;

        LItem.Detail:=listview1.Items.Item[ListView1.Selected.Index].Detail;

        Listview1.Items.Delete(ListView1.Selected.Index);

     

    это чтоб пункт вверх сдвинуть ну и соответственно вниз то плюс

  9. во первых колонки есть! смотреть внимаельно в опциях TListBox

    Columns = 1, поменяй на 2

     

    для Add есть еще один способ, просто указать парент

      LItem:=TListBoxItem.Create(nil);
      LItem.Parent := ListBox1;
      ...

    для Delete

    if Assigned(ListBox1.Selected) then
      ListBox1.Items.Delete(listbox1.Selected.index);

    зачем нужно делать переименование??

     

    а перемещение где-то было в стандартных демо если не ошибаюсь

     

    это не те колонки) проверьте ... просто идёт размещение в две колоны.. а пункты раздельные... и выделение идёт раздельное...субитомов больше нету

     

    а наличие я вот так проверяю: if not (Listbox1.Selected=nil) then

     

    в ListView переименование легко делается... вот и хотел узнать как в ListBox

     

    у меня XE7 в ней точно примеров нет как перемещать пункты...

    и самое главное в ListView тоже не получается пункты сдвинуть

     

    просто например мне в настройках нужно по желанию менять очередность пунктов

     

    спасибо что ответили надеюсь подобные темы для начинающих будут развиваться

  10. Здравствуйте товарищи знатоки!

     

    Недавно решил перейти на Firemonkey чтоб создавать мобильные приложения...

    но к сожалению обнаружил что работа в нём сильно отличается =( и информации в интернете очень мало...

    и в дельфи демках тоже подобных примеров нету =(

     

    не понимаю как можно узнать информацию если ты не работаешь в большом коллективе программистов у которых есть связь с западными колегами

    которые участвовали в создании тех или иных компонентов...

     

    сейчас я разбираюсь с ListBox

    и хочу научится делать стандартные вещи....

     

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

    пол дня шерстил интернет и методом тыка научился делать это через Detail ... ok! =)

     

    Add:

    добавлять пункты научился так

      LItem:=TListBoxItem.Create(ListBox1)

      ...

      ListBox1.AddObject(LItem);

     

    Delete:

    поскольку DeleteSelected больше нет

    удаляю пункт сл образом

      ListBox1.Items.Delete(listbox1.Selected.index)

    но как проверить существует ли item?

    иначе возникает ошибка когда удаляешь и ничего не выделено

     

    Rename:

    переименовать item не получается =(

     

    разве что вставить пункт на место выделенного listbox1.InsertObject(... ,...);

    а сл удалить

     

    Move:

    поменять позицию у выделенного пункта тоже не получается

     

    Подскажите пожалуйста ответы на эти казалось бы простые вопросы!

    думаю это поможет очень многим начинающим ФаерМанкерам =)

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