Перейти к содержанию
  • Регистрация

Aleks133

Пользователи
  • Публикаций

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

  • Посещение

Информация о Aleks133

  • Звание
    Новичок

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. Вот так работает, но теперь почему-то другие записи стали белыми if (TOpenColumn(Column).Index = 1) then if (StringGrid1.Cells[1, Row] = 'работа') then // условие 1 Canvas.Fill.Color := TAlphaColors.Blueviolet // задаем цвет текста else if (StringGrid1.Cells[1, Row] = 'бензин') then // условие 2 Canvas.Fill.Color := TAlphaColors.Blue // задаем цвет текста else Canvas.Fill.Color := TAlphaColors.Black; // цвет для всех других записей if (TOpenColumn(Column).Index = 2) then if (StringGrid1.Cells[2, Row] = '-850') then // условие 1 Canvas.Fill.Color := TAlphaColors.Red // задаем цвет текста else if (StringGrid1.Cells[2, Row] = '3000') then // условие 2 Canvas.Fill.Color := TAlphaColors.Green // задаем цвет текста else Canvas.Fill.Color := TAlphaColors.Black; // цвет для всех других записей
  2. Вы гений!))Спасибо!Весь день экспериментирую . А можно ли теперь сделать тоже самое для суммы чтобы цвет другой поставить, а то цвет распространяется на всю строку а мне нужно только на определенный столбец? Условие есть for i := 1 to length(ansilowercase(Grid.Cells[1, Row])) do // если столбец 2 и строка 1 if (TOpenColumn(Column).Index = 1) and (Row = 1) and // и если символ + найден на позиции i (pos('+', ansilowercase(Grid.Cells[1, Row])) = i) then но куда его подставить не пойму, попробую конечно поэкспериментировать по такому же принципу как и Вы показали, но мне кажется будет мешать тот факт что цвет меняется для всей строки а не для определенного столбца.
  3. Подскажите пожалуйста как выполнить выравнивание(для каждой ячейке свое) для того примера что показал Ярослав в своем примере? Чтобы красные записи были справа, а зеленые слева. И еще вопрос: Как задать цвет текста в другом столбце для каждой ячейки свой?Дублировать код или можно более компактно сделать? Правильно ли я понял что для каждой ячейки нужно создавать отдельный TLayout? Чтобы в итоге получить вот это. Ну и еще один вопрос: Можно ли для компактности как-то вывести код отрисовки в отдельную процедуру а потом вызывать ее в событии? Что-то вроде такого implementation procedure smena_cveta(TStringrid,TAlphaColors); ... а потом ее вызвать в событии procedure TForm1.Grid2DrawColumnCell(Sender: TObject; const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF; const Row: Integer; const Value: TValue; const State: TGridDrawStates); begin procedure smena_cveta(stringgrid1.cells[1,Row], Red); end; Еще пытаюсь делать по другому методу // задаем параметры текста f := TFont.Create; f.Family := StringGrid1.TextSettings.Font.Family; f.Size := StringGrid1.TextSettings.Font.Size; f.Style := StringGrid1.TextSettings.Font.Style; // [TFontStyle.fsBold]; Canvas.Font.Assign(f); // присваиваем канве параметры текста(как в гриде) if (StringGrid1.Cells[1, Row] = 'работа') then // условие 1 Canvas.Fill.Color := TAlphaColors.Blueviolet // задаем цвет текста else Canvas.Fill.Color := TAlphaColors.Black; // цвет для всех других записей if (StringGrid1.Cells[1, Row] = 'бензин') then // условие 2 Canvas.Fill.Color := TAlphaColors.Blue // задаем цвет текста else Canvas.Fill.Color := TAlphaColors.Black; // цвет для всех других записей Canvas.FillText(Bounds, Value.AsString, False, 50, [], StringGrid1.TextSettings.HorzAlign, ttextalign.Center); // отрисовка текста по левому краю как в гриде f.Free; Но в итоге закрашивается только текст "бензин"т.к он второе условие и перекрывает первое. Я так понимаю нужна еще одна канва для второго условия?Но как ее внедрить в код? Заранее премного благодарен.
  4. Я это уже читал.Но я хотел именно в корень внутренней памяти свою папку(как например yandex карты делают). В этой http://delphifmandroid.blogspot.com/2014/02/blog-post_16.html статье, в комментариях Павел Алхимов пишет как он это делает, но я не пойму как этим воспользоваться.
  5. Всем добрый день. Как в сделать развертывание файлов(например ini или картинки) по адресу: /storage/emulated/0/MyFolder/123.ini или 123.jpg (т.е. корень внутренней памяти/моя папка/мой файл) пробовал в deployment указать такой путь, но файл не появился. и как мне потом с ним работать?какой путь к нему указывать? например так image1.Bitmap.LoadFromFile(system.iOUtils.TPath.Combine (system.iOUtils.TPath.??????????,'MyFolder/123.jpg')); Или как-то иначе? Может нужно вообще как-то по другому все это делать? Заранее благодарен.
×
×
  • Создать...