Всё о телефонах и планшетах на базе Windows

9 years ago

7



posted imageposted imageposted image

Среди нас наверняка есть владельцы форточно-оконных гаджетов
Так что предлагаю пообсуждать, позадавать вопросы, похвалиться, пожаловаться, ну сами знаете в общем 😄

От себя скажу, что уже не первый год пользуюсь виндофонами, сейчас в эксплуатации Nokia Lumia 830 с WP8.1, как основной аппарат и Nokia Lumia 925 с WP10TP, как подопытный с 10-кой тестовой 😎
Так что есть, чем поделиться, помочь, подсказать))




UPD: 01.03.2016
Наткнулся на просторах сейчас на список полезных приложений (там много, спрячу под кат)
Скрытый текст


---
UPD 18.03.2016:
Информация про официальный релиз Windows 10 Mobile
Windows 10 Mobile

---
UPD 24.03.2016:
Про оптимизацию расхода батареи на Windows 10 Mobile

avatar
Enzo
28 October 2015

Всё о телефонах и планшетах на базе Windows
13,5K
views
57
members
254
posts

avatar
yager
25 September 2009


Привет всем! Подскажите, плз, как в WinCE добраться до двд-рома? Имеется Phantom DWM 130G с навигацией под управлением WinCE 5.0 (если не ошибаюсь) по актив синк несудьба соеденится, но я поставил альт.меню. Запустил CorePlayer, но им не могу никак найти двд диск чтоб открыть мр3 файлики. Родной плеер к двд нормально обращается, но очень уж кривой. Явно без правки реестра не обойтись, или может быть дело в плеере... Гугл ответов не дает, специализированые форумы по PNA тоже молчат
avatar
Элвис
25 September 2009

1

цитата:
сисег тут нет)

Зря написал никто не поможет теперь
avatar
yager
25 September 2009

1

avatar
Элвис:

цитата:
сисег тут нет)

Зря написал никто не поможет теперь

ну я сразу предупредил, чтоб народ не расстраивался
avatar
Perez
25 September 2009

1

avatar
Элвис:

никто не поможет теперь 

Скрытый текст
avatar
Raleks
25 September 2009


Очень часто при работе с запросами приходится менять SQL этого запроса. Например, при изменении порядка сортировки или при необходимости изменения фильтра, прописанного в where. Сделать это стандартными средствами можно, но довольно муторно, т.к. весь запрос хранится в одном месте (для TQuery и её потомков это свойство Sql). При желании изменить, например, количество или порядок следования полей в order by, нужно программно найти этот order by, написать свой, вставить его вместо старого и т.д. Для меня, честно говоря, загадка, зачем борланд пошла по такому ущербному пути: стандарт ANSI SQL-92, с которым (и только с которым!) работает Bde, подразумевает достаточно жёсткий синтаксис запроса, вполне допускающий обработку на уровне отдельных секций.
Сегодня я хотел бы поделиться одним из вариантов реализации потомка TQuery, в котором задачи такого класса будут решаться на лету одной строчкой кода.
Смысл очень простой. Для того, чтобы уйти от ручной обработки текста sql-запроса, надо просто разбить его на стандартные секции. И менять их по отдельности. Ведь любой select-запрос имеет достаточно строгий синтаксис, состоя из определённого количества заранее известных секций (clauses), задаваемых в строго определённой последовательности. Рассмотрим этот синтаксис поподробнее на примере СУБД Interbase:
SELECT
[TRANSACTION transaction]
[DISTINCT | ALL]
{* | <val> [, <val> ]}
[INTO :var [, :var ]]
FROM [, ...]
[WHERE <search_condition>]
[GROUP BY col [COLLATE collation] [, col [COLLATE collation] ]
[HAVING <search_condition>]
[UNION <select_expr> [ALL]]
[PLAN ]
[ORDER BY <order_list>]
[FOR UPDATE [OF col [, col ]]];
Как видим, обязательными являются две секции: SELECT и FROM.
Ещё восемь секций опциональны. Наша задача сводится к тому, чтобы значение каждой секции устанавливать отдельно, при необходимости переоткрывая запрос. Можно было бы плясать от стандартного свойства Sql, выделять нужную секцию, менять и вставлять обратно. Но зачем это, если можно сам Sql формировать на основе заданных секций? Конечно, этот подход имеет тот минус, что накрывается прямая установка Sql одной строкой, что может быть неудобно при хранении запроса в реестре, базе и т.д., но и это, при желании, можно побороть.
В общем-то, ничего заумного, реализация до смешного проста, но при использовании в проектах позволяет сэкономить массу времени и значительно увеличить читабельность кода.
Для начала определим все секции:

const
ciClauseCount = 10;
caClauses: array [1..ciClauseCount] of string = ('SELECT',
'INTO',
'FROM',
'WHERE',
'GROUP BY',
'HAVING',
'UNION',
'PLAN',
'ORDER BY',
'FOR UPDATE');

Чтобы не писать отдельное свойство на каждую секцию, задавать их будем в виде массива строк. Для работы с этим массивом нам понадобятся индексы, которые тоже лучше определить заранее:

const
ciSelect = 1;
ciInto = 2;
ciFrom = 3;
ciWhere = 4;
ciGroupBy = 5;
ciHaving = 6;
ciUnion = 7;
ciPlan = 8;
ciOrderBy = 9;
ciForUdate = 10;

Определим тип нашего индексированного свойства и определим сам класс:

Код:
type
TClauseArray = array [1..ciClauseCount] of string;
TDynQuery = class (TQuery)
private fClauses: TClauseArray;
procedure UpdateSql;
procedure SetClause(Index: integer; Value: string);
function GetClause (Index: integer): string; public
property Clause [Index: integer]:
string read GetClause write SetClause;
end;
Свойство fClauses будет содержать все секции запроса, на основе которых и будет формироваться сам запрос. Занимается этим процедура UpdateSql. Ну а методы GetClause/SetClause стандартны, и служат для установки/чтения значений отдельных секций. Поглядим на сам код:

Код:
{ TDynQuery }
procedure TDynQuery.UpdateSql;
var
OldActive: boolean;
i: integer;
begin
DisableControls;
try
OldActive := Active;
Sql.Clear;
for i := 1 to ciClauseCount do begin
if fClauses [i] <> '' then
Sql.Add (caClauseNames [i] + ' ' + fClauses [i]);
end;
Active := OldActive;
finally
EnableControls;
end;
end;
function TDynQuery.GetClause (Index: integer): string;
begin
Result := fClauses [index];
end;
procedure TDynQuery.SetClause(Index: integer; Value: string);
begin
if fClauses [Index] <> Value then begin
fClauses [Index] := Value;
UpdateSql;
end;
end;
Всё достаточно прозрачно, отмечу лишь, что метод UpdateSql добавляет в текст Sql-запроса только те секции, для которых установлено начение, и переоткрывает квери, если она была открыта на момент изменения секции. Здесь есть мелкие недоработки, например, не проверяется выход индекса за пределы допустимых значений, я просто не хотел мусорить исходный код вещами, которые очевидны и принципиально не важны. Можно было бы привести код регистрации компонента в палире дельфи, но это также тривиально. Приведу лучше исходник тестового проекта, в котором используется этот квери. В этом проекте на форме находятся компоненты DbGrid1, подключенные к источнику данных DataSource1, динамически создаётся экземпляр TDynQuery, открывающий таблицу "biolife" из DbDemos, входящую в стандартную поставку Delphi. После этого изменяется по кликанью на заголовке (Title) грида меняется сортировка таблицы:

Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, DBTables, StdCtrls, DynQuery;

type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
procedure FormCreate(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
private
Query1: TDynQuery;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Query1 := TDynQuery.Create (Self);
DataSource1.DataSet := Query1;
Query1.DatabaseName := 'DbDemos';
Query1.Clause [ciSelect] := '*';
Query1.Clause [ciFrom] := '"biolife" b';
Query1.Clause [ciOrderBy] := 'b."category"';
Query1.Active := TRUE;
end;

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
f: TField;
begin
f := DbGrid1.SelectedField;
// как и было обещано, порядок сортировки меняется одной строкой
Query1.Clause [ciOrderBy] := 'b."' + Column.FieldName + '"';
DbGrid1.SelectedField := f;
end;

end.
avatar
biggimot
25 September 2009


Raleks

ты меня последнее время пугаешь! Я озабочен , то формулы, то языки программирования
avatar
Valerevich
25 September 2009


А где сиське? Дафай быстрее ДВД починяйф и выкладывай!
avatar
Raleks
25 September 2009


avatar
biggimot:

Я озабочен

Знаю, Санек, знаю...

avatar
Valerevich
25 September 2009


biggimot
Сагласин. Ралексу больше травы не давать... Мажителя не наливать!
avatar
Элвис
25 September 2009


biggimot
цитата:
Я озабочен 

ок
avatar
Valerevich
25 September 2009


Элвис
И ты здеся! Чтож... ОК!
avatar
bantik
25 September 2009

1

>Очень часто при работе с запросами приходится менять SQL этого запроса

Ралекс - ты че курнул то ? Этот пример из дельфей изучает каждый первокурсник.. Уж лет 20 как это было... Дошло только сейчас что-ли ? :-)

>как в WinCE добраться до двд-рома

Как и в обычном Windows 95 - написать в config.sys что то типа
----
DEVICE=C:\WINDOWS\HIMEM.SYS /shadow:on
DEVICE=C:\WINDOWS\EMM386.EXE
DEVICEHIGH=C:\WINDOWS\ANSI.SYS
DOS=HIGH,UMB,AUTO

REM Описание дисковода CD-ROM (нижняя строчка)
DEVICEHIGH /L:1=\CPQDOS\CPQIDECD.SYS /D:IDECD001

FILESHIGH=80
BUFFERSHIGH=40,4
FCBSHIGH=10
SWITCHES=/F

device=c:\windows\COMMAND\display.sys con=(ega,,1)
Country=007,866,c:\windows\COMMAND\country.sys
------
avatar
dshelepov
25 September 2009


если я правильно понял, на DVD записаны сиське и автору нужно или починить винду или альтернативную ссылку?
avatar
Valerevich
25 September 2009


bantik
Екарный бабай! Прям как у меня на моем компе! И винда 95 лицензионная. А winCE это что то переходное с 3.11?

stelsbiker
Лучше бы он их макреком на кругляшке нарисовал бы! И не парился...
avatar
AndCam
25 September 2009


avatar
yager:

Привет всем! Подскажите, плз, как добраться до двд-рома?

Ну я бы посоветовал на кресле подкатится.
avatar
Valerevich
14 March 2011


Люди добрые, памажите неучу!!!

ДАНО:
Телефон Самсунг GT-I8000. с оперативкой 256 Мб, Памятью телефона 8 гиг и катрочка на 8 гиг.

Есть еще Основаня память 512 Мб.
Стоит Винда 6.5

ВНИМАНИЕ ВОПРОС!!!
Основная память Используется гдето 100 метров, остальные 412 забились какой то фигней - по статусу стоит что в резерве!
Свободной нет!!! Смски не приходят, постоянно вываливается сообщение о переполнении.
Если что Диспетчером задач снял все что можно. В опере Все куки-пароли-историю патер.

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

Сиське-котято приветствуютцо.

Панеслась!
avatar
Uvex
14 March 2011


Ответ!
Выкини Гнусмас на окнах и купи яблокофон
avatar
Derini
14 March 2011

1

Valerevich
поставь сторонню прогу для очистки, типа продукта от Resco. На 4пда есть инфа.

Uvex
плохой совет. Если уж и выкидывать данный аппарат, то менять его уже на Гэлакси С 2 или ЛЖ Оптимус 3Д. Айфон томрмоз по сравнению с ними.
avatar
Valerevich
14 March 2011


Uvex
я больше виноград обкусывать лублу
avatar
Uvex
14 March 2011


avatar
Derini:

Uvex
плохой совет. Если уж и выкидывать данный аппарат, то менять его уже на Гэлакси С 2 или ЛЖ Оптимус 3Д. Айфон томрмоз по сравнению с ними.

Да-да!
Очередной яфон киллер!
9876529645919й по счету))) А он живее всех живых)))

ЗЫ. Какая сволота заминусила мой архиценный и полезный совет??
Кто Валеричу добра не желает?
avatar
Derini
14 March 2011


Uvex
Идолы они такие, живучие
avatar
Valerevich
14 March 2011


На дык па теме есть че?
Меня ктонить куданить уже пашлет? (на конкретные места хде проги лежат - да, вот я такой ленивый )
avatar
Valerevich
14 March 2011


Мда... Смотрю советоф накидали вагон и маленькую тележку
avatar
Олегин
14 March 2011


Valerevich
все проста...
Пуск-Настройка-Система-Память-Запущенные программы...Остановить ВСЕ...
Постоянно очищай...
avatar
Valerevich
14 March 2011


Олегин
Это я сделал... я же написал. тчо снял все задачи

Это не действует... вернее действует на ОПЕРАТИВКУ!!!
avatar
Олегин
14 March 2011


Valerevich
...ой тада...Мож разных прог в основную память понафтыкал?...я проги на флеху ставлю.
avatar
Valerevich
14 March 2011


avatar
Олегин:

Valerevich
...ой тада...Мож разных прог в основную память понафтыкал?...я проги на флеху ставлю.

Так если нафтыкалось что то (как например опера по умолчанию лежит там) так ведь я так понимаю статус должен быть "занято" а не "зарезервировано" Под что зарезервировано? КемЧем зарезервировано? НЕПОНЯТНО!!!

Если у Оперы в кеше 0 байт стоит
nik272
14 March 2011


Valerevich
Правильно на 4пда послали , у самого такой девайс. 4PDA, регишся, скачиваеш лайт прошивку и прользуешся в свое удовольствие, никаких зависонов и т.п., а сейчас просто сделай перезагрузку аппарату, только так основательно чистится оператива на GT-I8000.
avatar
Valerevich
14 March 2011


nik272
Предлагаешь хардрезет? Я чет ачкую... ниче там не слетит контакты не потяряютцо?

Пыс Пыс: еще раз повторяю С ОПЕРАТИВКОЙ ВСЕ КАРАШО!!!

ЗАбита ОСНОВНАЯ ПАМЯТЬ НА 512 МБ!!!
avatar
Valerevich
14 March 2011


БЛИН, МАТОМ ЧТОЛЬ ПАГАВАРИТЬ, ЧТОБ ШВЫММИ ЗАШЕЛ-помог


1 person online

1 person online

Log in to leave a message or Sign up


up