ВОПРОС - ОТВЕТ
xTriplex
Мастер
5/23/2006, 4:53:48 AM
(Leon161 @ 07.04.2006 - время: 20:23) Вопрос по Делфи на тему фильтрации данных:
....имена переменных в выражении фильтра использовать нельзя. Если в выражение фильтра требуется включить значение переменной или свойства какого-либо компонента, то это значение должно быть преобразовано в строковый тип...
Вопрос: а как мне быть, если моя переменная уже строкового типа?
Просто подставить её не получается - просто не работает. Вот это не работает:
Table1.Filter :='Otd=''Label4.Caption''';
а это работает, но здесь тип - Date :
Table1.Filter:='BirthDay>'''+DateToStr(DateTimePicker1.Date) +''' AND BirthDay<'''+DateToStr(DateTimePicker2.Date)+'''';
Как быть?
Может я и ошибаюсь, но из соображений синтаксиса Делфи надо писать так...
Table1.Filter :='Otd='+Label4.Caption;
....имена переменных в выражении фильтра использовать нельзя. Если в выражение фильтра требуется включить значение переменной или свойства какого-либо компонента, то это значение должно быть преобразовано в строковый тип...
Вопрос: а как мне быть, если моя переменная уже строкового типа?
Просто подставить её не получается - просто не работает. Вот это не работает:
Table1.Filter :='Otd=''Label4.Caption''';
а это работает, но здесь тип - Date :
Table1.Filter:='BirthDay>'''+DateToStr(DateTimePicker1.Date) +''' AND BirthDay<'''+DateToStr(DateTimePicker2.Date)+'''';
Как быть?
Может я и ошибаюсь, но из соображений синтаксиса Делфи надо писать так...
Table1.Filter :='Otd='+Label4.Caption;
nechik
Новичок
5/23/2006, 4:59:27 PM
Есть какой-нибудь софт, чтобы задать комбинацию клавиш и он в определённом порядке и определённое количество раз пронажимал это вместо меня?
Уже с ума схожу, удаляю позиции в базе(74295), 30000 уже удалил, дальше нервов нехватает.
ПОМОГИТЕ!!!!
Уже с ума схожу, удаляю позиции в базе(74295), 30000 уже удалил, дальше нервов нехватает.
ПОМОГИТЕ!!!!
xTriplex
Мастер
5/24/2006, 4:52:12 AM
(nechik @ 23.05.2006 - время: 12:59) Есть какой-нибудь софт, чтобы задать комбинацию клавиш и он в определённом порядке и определённое количество раз пронажимал это вместо меня?
Уже с ума схожу, удаляю позиции в базе(74295), 30000 уже удалил, дальше нервов нехватает.
ПОМОГИТЕ!!!!
Чет я не понял суть вопроса...ты хочешь на языке программирования сам реализовать...или тебе готовый сфт надо - тогда ты не по теме...тебе в ветку про софт надо...
Если сам, то можешь посылать сообщения сфоей софтине...это проще простого...почитай хелп по WinAPI.
Уже с ума схожу, удаляю позиции в базе(74295), 30000 уже удалил, дальше нервов нехватает.
ПОМОГИТЕ!!!!
Чет я не понял суть вопроса...ты хочешь на языке программирования сам реализовать...или тебе готовый сфт надо - тогда ты не по теме...тебе в ветку про софт надо...
Если сам, то можешь посылать сообщения сфоей софтине...это проще простого...почитай хелп по WinAPI.
wolonter
Новичок
5/25/2006, 6:14:11 PM
Я пытаюсь программировать на Visual C++.
Не подскажете ли где можно найти описания к функциям Windows для
работы с дескрипторами окон, с запущенными процессами и т.д.
Не подскажете ли где можно найти описания к функциям Windows для
работы с дескрипторами окон, с запущенными процессами и т.д.
DELETED
Акула пера
5/25/2006, 7:04:13 PM
(wolonter @ 25.05.2006 - время: 14:14)Я пытаюсь программировать на Visual C++.
Не подскажете ли где можно найти описания к функциям Windows для
работы с дескрипторами окон, с запущенными процессами и т.д.
www.rsdn.ru
msdn.microsoft.com
Не подскажете ли где можно найти описания к функциям Windows для
работы с дескрипторами окон, с запущенными процессами и т.д.
www.rsdn.ru
msdn.microsoft.com
KOsyak
Удален 5/28/2006, 3:23:09 PM
1 faq, а дальше уже по мере надобности использовать... бо весь API асилить - реально конечно, но зачем?
А объявление и примеры использования есть уже в хелпе языка как правило...
кстати могу хороший faq помимо предложить - www.ya.ru ...
А объявление и примеры использования есть уже в хелпе языка как правило...
кстати могу хороший faq помимо предложить - www.ya.ru ...
Gorjie
Профессионал
6/22/2006, 4:45:11 AM
У меня возник вопрос - как уменьшить мерцание в форме в Dеlphi при полной перерисовке и что такое реализация обратной связи?
закройщик
Профессионал
6/27/2006, 11:00:02 PM
(nechik @ 23.05.2006 - время: 12:59) Есть какой-нибудь софт, чтобы задать комбинацию клавиш и он в определённом порядке и определённое количество раз пронажимал это вместо меня?
Уже с ума схожу, удаляю позиции в базе(74295), 30000 уже удалил, дальше нервов нехватает.
ПОМОГИТЕ!!!!
да, есть Iolo MacroMagic тебе поможет. Он и мышку двигает и печатает и стирает и вообще ВСЕ делает ))
На сайте www.iolo.com его найдешь, а вот с креком незнаю как тебе быть
Уже с ума схожу, удаляю позиции в базе(74295), 30000 уже удалил, дальше нервов нехватает.
ПОМОГИТЕ!!!!
да, есть Iolo MacroMagic тебе поможет. Он и мышку двигает и печатает и стирает и вообще ВСЕ делает ))
На сайте www.iolo.com его найдешь, а вот с креком незнаю как тебе быть
RoyalFlesh
Мастер
6/29/2006, 10:50:25 AM
(osob @ 26.03.2006 - время: 19:10)2. Как сделать скролинг текста, ну чтобы титры бежали
Стандартными компонентами Дельфи можно сделать примерно так...
На форму вставляем панель Panel1, относительно которой будет проводится скроллинг и таймер Timer1 для задания интевала "прокрутки"...
Сам "бегущий" текст можно организовать с помощью меток (TLabel) или Мемо (TMemo)...
В оброботчике события OnTimer компонента Timer1 меняем значение свойства Top сщщтветствуюших компонентов, примерно как в следующем коде...
CODE
procedure TfmMain.Timer1Timer(Sender: TObject);
begin
// Label1 и Label2 "прокручиваются" вниз по панели Panel1
Label2.Top := ((Label2.Top+1) mod Panel1.Height);
Label1.Top := ((Label1.Top+1) mod Panel1.Height);
// Memo1 "прокручивается" вверх по панели Panel1
Memo1.Top := Memo1.Top-1;
if Memo1.Top = (0-Memo1.Height) then Memo1.Top := Panel1.Height;
end;
Стандартными компонентами Дельфи можно сделать примерно так...
На форму вставляем панель Panel1, относительно которой будет проводится скроллинг и таймер Timer1 для задания интевала "прокрутки"...
Сам "бегущий" текст можно организовать с помощью меток (TLabel) или Мемо (TMemo)...
В оброботчике события OnTimer компонента Timer1 меняем значение свойства Top сщщтветствуюших компонентов, примерно как в следующем коде...
CODE
procedure TfmMain.Timer1Timer(Sender: TObject);
begin
// Label1 и Label2 "прокручиваются" вниз по панели Panel1
Label2.Top := ((Label2.Top+1) mod Panel1.Height);
Label1.Top := ((Label1.Top+1) mod Panel1.Height);
// Memo1 "прокручивается" вверх по панели Panel1
Memo1.Top := Memo1.Top-1;
if Memo1.Top = (0-Memo1.Height) then Memo1.Top := Panel1.Height;
end;
RoyalFlesh
Мастер
6/29/2006, 10:53:33 AM
(Leon161 @ 07.04.2006 - время: 20:23)Вопрос: а как мне быть, если моя переменная уже строкового типа?
Просто подставить её не получается - просто не работает. Вот это не работает:
Table1.Filter :='Otd=''Label4.Caption''';
(xTriplex)Table1.Filter :='Otd='+Label4.Caption
Могу добавить только, что если параметр фильтрации Otd имеет строковой тип, то условие записывается в виде:
Table1.Filter :='Otd='''+Label4.Caption+''''
Просто подставить её не получается - просто не работает. Вот это не работает:
Table1.Filter :='Otd=''Label4.Caption''';
(xTriplex)Table1.Filter :='Otd='+Label4.Caption
Могу добавить только, что если параметр фильтрации Otd имеет строковой тип, то условие записывается в виде:
Table1.Filter :='Otd='''+Label4.Caption+''''
-=Велла=-
Акула пера
7/3/2006, 2:36:31 PM
Вопрос.
Пишу на Делфи.
Есть поле Edit. Требуется взять из него значение таким образом, чтобы текст, написанный в нем корректно отображался в DOS'е, а то получаются кракозяблины. Содержимое этого поля записывается в файл. Как перекодировать в DOS кодировку содержимое поля...
Пишу на Делфи.
Есть поле Edit. Требуется взять из него значение таким образом, чтобы текст, написанный в нем корректно отображался в DOS'е, а то получаются кракозяблины. Содержимое этого поля записывается в файл. Как перекодировать в DOS кодировку содержимое поля...
Модест
Новичок
7/3/2006, 4:32:13 PM
1) AnsiToOEM(Edit.text)
2) в свойствах эдита выбрать нужную кодировку (не пробовал)
2) в свойствах эдита выбрать нужную кодировку (не пробовал)
-=Велла=-
Акула пера
7/3/2006, 4:44:49 PM
(Модест @ 03.07.2006 - время: 12:32) 1) AnsiToOEM(Edit.text)
2) в свойствах эдита выбрать нужную кодировку (не пробовал)
Нет.. тоже самое получается..
2) в свойствах эдита выбрать нужную кодировку (не пробовал)
Нет.. тоже самое получается..
Unknown_Identifier
Мастер
7/4/2006, 1:05:54 AM
(-=Велла=- @ 03.07.2006 - время: 10:36) Как перекодировать в DOS кодировку содержимое поля...
Посимвольно.
В нете можно найти таблицу перекодировки (например, взять из DOS Navigator'а). Впрочем там очень простая замена, можно воспользоваться такой функцией:
CODE
function ConvertFromWindows(ch:char):char;
var
b:byte;
begin
b:=byte(ch);
if (b>=192) and (b<=239) then b:=b-64
else
if (b>=240) and (b<=255) then b:=b-16
else
if b=168 then b:=240
else
if b=184 then b:=241;
result:=chr(b);
end;
Посимвольно.
В нете можно найти таблицу перекодировки (например, взять из DOS Navigator'а). Впрочем там очень простая замена, можно воспользоваться такой функцией:
CODE
function ConvertFromWindows(ch:char):char;
var
b:byte;
begin
b:=byte(ch);
if (b>=192) and (b<=239) then b:=b-64
else
if (b>=240) and (b<=255) then b:=b-16
else
if b=168 then b:=240
else
if b=184 then b:=241;
result:=chr(b);
end;
RoyalFlesh
Мастер
7/4/2006, 11:17:08 AM
Я для таких целей использую следующую функцию:
CODE function DosToWin(St: string): string;
var
Ch: PChar;
begin
Ch := StrAlloc(Length(St) + 1);
OemToAnsi(PChar(St), Ch);
Result := Ch;
StrDispose(Ch)
end;
Функция StrAlloc и процедура StrDispose находятся в модуле SysUtils,
а OemToAnsi - в Windows...
CODE function DosToWin(St: string): string;
var
Ch: PChar;
begin
Ch := StrAlloc(Length(St) + 1);
OemToAnsi(PChar(St), Ch);
Result := Ch;
StrDispose(Ch)
end;
Функция StrAlloc и процедура StrDispose находятся в модуле SysUtils,
а OemToAnsi - в Windows...
Модест
Новичок
7/4/2006, 11:55:07 PM
(-=Велла=- @ 03.07.2006 - время: 12:44) (Модест @ 03.07.2006 - время: 12:32) 1) AnsiToOEM(Edit.text)
2) в свойствах эдита выбрать нужную кодировку (не пробовал)
Нет.. тоже самое получается..
Значит криво пользуешь )
Вышеупомянутый способ + обратно
function WinToDos(St:string):string;
var Ch:PChar;
begin
Ch:=StrAlloc(Length(St)+1);
AnsiToOem(PChar(St),Ch);
Result:=Ch;
StrDispose(Ch)
end;
function DosToWin(St:string):string;
var Ch:PChar;
begin
Ch:=StrAlloc(Length(St)+1);
OemToAnsi(PChar(St),Ch);
Result:=Ch;
StrDispose(Ch)
end;
2) в свойствах эдита выбрать нужную кодировку (не пробовал)
Нет.. тоже самое получается..
Значит криво пользуешь )
Вышеупомянутый способ + обратно
function WinToDos(St:string):string;
var Ch:PChar;
begin
Ch:=StrAlloc(Length(St)+1);
AnsiToOem(PChar(St),Ch);
Result:=Ch;
StrDispose(Ch)
end;
function DosToWin(St:string):string;
var Ch:PChar;
begin
Ch:=StrAlloc(Length(St)+1);
OemToAnsi(PChar(St),Ch);
Result:=Ch;
StrDispose(Ch)
end;
RoyalFlesh
Мастер
7/6/2006, 1:12:22 AM
Согласен с Модест...
В суть вопроса сразу не вник, вот и указал не ту функцию...
Хотя сам для перекодировки DOS <-> WindowS пользуюсь именно ими... обеими...
В суть вопроса сразу не вник, вот и указал не ту функцию...
Хотя сам для перекодировки DOS <-> WindowS пользуюсь именно ими... обеими...
xTriplex
Мастер
7/11/2006, 5:25:20 AM
Вот это работает 100%...в принципе как и у всех остальных...
........................................................
var N: PChar;
...
Memo1.Lines.LoadFromFile('dos.txt');
N := Memo1.Lines.GetText;
OemToAnsi(N, N);
Memo1.Lines.Text := StrPas(N);
........................................................
........................................................
var N: PChar;
...
Memo1.Lines.LoadFromFile('dos.txt');
N := Memo1.Lines.GetText;
OemToAnsi(N, N);
Memo1.Lines.Text := StrPas(N);
........................................................
-=Велла=-
Акула пера
7/12/2006, 9:40:25 PM
Ребята, спасибо за ответы.. я пока не все, но попробовала.. но нифига не получилось
А вот такой вопрос: а если есть файл формата .xls , составленный в Excel, как из него взять данные нужные и потом в текстовый файл преобразовать? Или может в какой компонент можно загрузить в виде таблицы и из компонента их брать?
сорри, если не ясно выражаюсь..
А вот такой вопрос: а если есть файл формата .xls , составленный в Excel, как из него взять данные нужные и потом в текстовый файл преобразовать? Или может в какой компонент можно загрузить в виде таблицы и из компонента их брать?
сорри, если не ясно выражаюсь..
xTriplex
Мастер
7/13/2006, 4:04:13 AM
(-=Велла=- @ 12.07.2006 - время: 17:40) Ребята, спасибо за ответы.. я пока не все, но попробовала.. но нифига не получилось
А вот такой вопрос: а если есть файл формата .xls , составленный в Excel, как из него взять данные нужные и потом в текстовый файл преобразовать? Или может в какой компонент можно загрузить в виде таблицы и из компонента их брать?
сорри, если не ясно выражаюсь..
1 - преобразования замечательно работают...не поленился прям щас запустил Delphi...вот те полный код унитки...лично проверил - РАБОТАЕТ!!!
CODE unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
function WinToDos(St:string):string;
var Ch:PChar;
begin
Ch:=StrAlloc(Length(St)+1);
AnsiToOem(PChar(St),Ch);
Result:=Ch;
StrDispose(Ch)
end;
begin
Edit1.Text := WinToDos(Edit1.Text);
end;
end.
2 - Есть такая штука, как ExcelWorkbook и иже с ними на вкладке Servers...почитай к ним хэлп...там все написано...можно в принципе и через макрос...это на любителя...
Удачи в твоем нелегком деле.
А вот такой вопрос: а если есть файл формата .xls , составленный в Excel, как из него взять данные нужные и потом в текстовый файл преобразовать? Или может в какой компонент можно загрузить в виде таблицы и из компонента их брать?
сорри, если не ясно выражаюсь..
1 - преобразования замечательно работают...не поленился прям щас запустил Delphi...вот те полный код унитки...лично проверил - РАБОТАЕТ!!!
CODE unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
function WinToDos(St:string):string;
var Ch:PChar;
begin
Ch:=StrAlloc(Length(St)+1);
AnsiToOem(PChar(St),Ch);
Result:=Ch;
StrDispose(Ch)
end;
begin
Edit1.Text := WinToDos(Edit1.Text);
end;
end.
2 - Есть такая штука, как ExcelWorkbook и иже с ними на вкладке Servers...почитай к ним хэлп...там все написано...можно в принципе и через макрос...это на любителя...
Удачи в твоем нелегком деле.