ВОПРОС - ОТВЕТ

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;
nechik
5/23/2006, 4:59:27 PM
Есть какой-нибудь софт, чтобы задать комбинацию клавиш и он в определённом порядке и определённое количество раз пронажимал это вместо меня?
Уже с ума схожу, удаляю позиции в базе(74295), 30000 уже удалил, дальше нервов нехватает.
ПОМОГИТЕ!!!!
xTriplex
5/24/2006, 4:52:12 AM
(nechik @ 23.05.2006 - время: 12:59) Есть какой-нибудь софт, чтобы задать комбинацию клавиш и он в определённом порядке и определённое количество раз пронажимал это вместо меня?
Уже с ума схожу, удаляю позиции в базе(74295), 30000 уже удалил, дальше нервов нехватает.
ПОМОГИТЕ!!!!
Чет я не понял суть вопроса...ты хочешь на языке программирования сам реализовать...или тебе готовый сфт надо - тогда ты не по теме...тебе в ветку про софт надо...

Если сам, то можешь посылать сообщения сфоей софтине...это проще простого...почитай хелп по WinAPI.
wolonter
5/25/2006, 6:14:11 PM
Я пытаюсь программировать на Visual C++.
Не подскажете ли где можно найти описания к функциям Windows для
работы с дескрипторами окон, с запущенными процессами и т.д.
DELETED
5/25/2006, 7:04:13 PM
(wolonter @ 25.05.2006 - время: 14:14)Я пытаюсь программировать на Visual C++.
Не подскажете ли где можно найти описания к функциям Windows для
работы с дескрипторами окон, с запущенными процессами и т.д.
www.rsdn.ru
msdn.microsoft.com
KOsyak
5/28/2006, 3:23:09 PM
1 faq, а дальше уже по мере надобности использовать... бо весь API асилить - реально конечно, но зачем?

А объявление и примеры использования есть уже в хелпе языка как правило... pardon.gif

кстати могу хороший 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 его найдешь, а вот с креком незнаю как тебе быть
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;

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+''''
-=Велла=-
7/3/2006, 2:36:31 PM
Вопрос.
Пишу на Делфи.

Есть поле Edit. Требуется взять из него значение таким образом, чтобы текст, написанный в нем корректно отображался в DOS'е, а то получаются кракозяблины. Содержимое этого поля записывается в файл. Как перекодировать в DOS кодировку содержимое поля...
Модест
7/3/2006, 4:32:13 PM
1) AnsiToOEM(Edit.text)
2) в свойствах эдита выбрать нужную кодировку (не пробовал)
-=Велла=-
7/3/2006, 4:44:49 PM
(Модест @ 03.07.2006 - время: 12:32) 1) AnsiToOEM(Edit.text)
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;
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...
Модест
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;
RoyalFlesh
7/6/2006, 1:12:22 AM
Согласен с Модест...
В суть вопроса сразу не вник, вот и указал не ту функцию...
Хотя сам для перекодировки 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);
........................................................
-=Велла=-
7/12/2006, 9:40:25 PM
Ребята, спасибо за ответы.. я пока не все, но попробовала.. но нифига не получилось 0086.gif
А вот такой вопрос: а если есть файл формата .xls , составленный в Excel, как из него взять данные нужные и потом в текстовый файл преобразовать? Или может в какой компонент можно загрузить в виде таблицы и из компонента их брать?
сорри, если не ясно выражаюсь..
xTriplex
7/13/2006, 4:04:13 AM
(-=Велла=- @ 12.07.2006 - время: 17:40) Ребята, спасибо за ответы.. я пока не все, но попробовала.. но нифига не получилось 0086.gif
А вот такой вопрос: а если есть файл формата .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...почитай к ним хэлп...там все написано...можно в принципе и через макрос...это на любителя...

Удачи в твоем нелегком деле.