← →
Kraj
(2004-02-26 15:40)
[0]
Нужно в OnKeyUp отловить отпускание русских клавиш т.е. при нажатии клавиши символ попадает в Edit, а при отпускании запускается запрос на поиск по базе. Если отлавливать в OnKeyPress то поиск отстает на один символ т.е. запускается сначала запрос, а поттом символ попадает в Edit, что приводит к поиску по базе без учета последнего символа (во блин нагородил). Ничего лучше не придумал как запускать запрос в OnKeyUp но там реагирует на нажатие всех клавиш. Удалось отловить Enter и Backspace (#13 и #8 соответственно), а на русские символы не реагирует. Преобразовать Word в Char можно через Chr(), а вот как наоборот Char в Word не знаю, может кто поможет или есть другое решение или где ошибка
if not (chr(Key) in [«а»..»я»,#13,#8]) then
Key:=0
← →
Ega23
(2004-02-26 15:42)
[1]
Ord
← →
VAleksey
(2004-02-26 15:47)
[2]
Насколько я понял, нужен инкрементальный локатор?
Тогда так:
procedure TForm1.Edit1Change(Sender: TObject);
begin
Table1.Locate("Field",Edit1.Text,[loCaseInsensitive, loPartialKey]);
end;
PS
Вместо Locate, можно использовать запрос.
PPS
Сабж реализуется с помощью функции Ord.
Строку string = AnsiString я написал в секции interface основной формы приложения, сразу после type.
Как только начал печатать, редактор Delphi сразу подчеркнул string красным цветом, а когда запустил на компиляцию выдал ошибку
«Identifier expected but «STRING» found». Вот)
Добавлено через 5 минут
Далее, попробовал ВЕЗДЕ заменить string на AnsiString. Оказало не всё так просто…
Ниже привожу пример моей функции, на которой споткнулся компилятор, и выдал ошибку
Incompatible types: ‘AnsiChar’ and ‘Char’ (почему то на 11 строке):
Delphi | ||
|
Добавлено через 1 час 27 минут
… нашёл, на что ругался компилятор… переделал строку 10 и 16 вот по такому типу:
Delphi | ||
|
В общем, долго я менял string на AnsiString, где то оказалось надо обратно на string вернуть, потому что
если обращался к функциям из Vcl, у которых в параметрах нужно было именно string передать, то там уже
нельзя было передавать переменную типа AnsiString…
Короче, наконец компилятор пропустил все строки программы, но она работает неправильно, глюк на глюке…
И видно что это всё из-за строк разных. Объясните пожалуйста — это такая петрушка надолго типа? То есть
нет какого-то одного чёткого правила перевода программы из старого Delphi в новый??
Или может я вообще зря везде на AnsiString менял, может надо было строки то Unicode оставить, а переделывать
Set of Char ? В общем одни заморочки какие-то с этими строками… И когда программа большая (несколько десятков тысяч строк), то так сложно выловить это всё… Что делать то?
Загрузка…
program Traektoria; uses GraphABC; var x1, y1, x, y: integer; S, Vg, t, g, V, alpha, it: real; begin writeln('введите начальную скорость (м/с) '); readln(V); writeln('введите градусную меру угла наклона вектора скорости'); readln(alpha); alpha := alpha / (180 / pi); writeln('введите значение ускорения свободного падения'); readln(g); ClearWindow; Pen.Color := clBlack; Pen.Width := 3; Coordinate.OriginY := Window.Height; //ставим начало координат по Y в нижний левый угол окна Coordinate.SetMathematic; //Ставим "математическую" ось S := 2 * sqr(V) * sin(alpha) / g; Vg := V * cos(alpha); t := S / Vg / 2; x := 0; y := 0; it := 0; while it < t do begin it := it + 0.0000001; x1 := x; y1 := y; x := round(50*(Vg * it)); y := round(50*(V * it * sin(alpha) - g * sqr(it) / 2)); Line(x1, y1, x, y); end; end.
See more:
i have created following object of SYSTEMTIME which has attributes like wDay, wMinute, wHour etc which are WORD…
SYSTEMTIME s_t;
I want to print s_t.wDay or s_t.wHour in DataGridView column( i.e type System::String). So i get error like «cant convert WORD to System::String»
So i tried to convert
1)WORD to char* then
2)char* to System::String but doing some mistake..plz help
my code is
dataGridView1->Rows[0]->Cells[0]->Value=????? (here i want s_t.wDay )
i tried with _ultoa for conversion WORD to char*.. but dont know how to do that..
The best way is to use a function that will format the details, such as String::Format[^].
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)
CodeProject,
20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8
+1 (416) 849-8900