Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2008, 11:04   #1
student90
Пользователь
 
Регистрация: 15.09.2008
Сообщений: 38
Восклицание Помогите с созданием поиска.

Помогите с созданием поиска. у меня есть checklistbox.итемки он берёт из базы данных. предположим итемок всего 20. каждая итемка имеет вид: ЦТП *(где *-номер от 1 до 20).мне нужно сделать когда я ввожу только номер(например, 20) и когда нажимаю на кнопку поиск выделялась нужная итемка.у меня получилось только выделение происходит когда ввожу ЦТП 20.а нужно только по номеру.помогите плз.подскажите. данные вводятся в edit.
student90 вне форума Ответить с цитированием
Старый 01.10.2008, 11:13   #2
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Чет непонял куда чё вводить чтобы было было то, что не понял как надо. Мозг закипел. 10 минут лежу на полу. Думаю на стул сесть или потом.
Sibedir вне форума Ответить с цитированием
Старый 01.10.2008, 11:21   #3
student90
Пользователь
 
Регистрация: 15.09.2008
Сообщений: 38
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Чет непонял куда чё вводить чтобы было было то, что не понял как надо. Мозг закипел. 10 минут лежу на полу. Думаю на стул сесть или потом.
ну то есть. я меня получается выполнить поиск в checklistboх когда в edit ввожу "ЦТП 20" и он мне показывает итемку "ЦТП 20".а мне нужно чтобы вводишь просто "20" и он показывает итемку "ЦТП 20".
student90 вне форума Ответить с цитированием
Старый 01.10.2008, 11:24   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

ну так обрабатывайте руками ввод и по результатам вхождения набранной подсроки в элементы списка выводить найденный элемент
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 01.10.2008, 11:27   #5
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Вводи в едит число, а потом перед поиском добавь к нему "ЦТП ".
Код:
str := 'ЦТП ' + Edit1.Text;
Sibedir вне форума Ответить с цитированием
Старый 01.10.2008, 11:35   #6
student90
Пользователь
 
Регистрация: 15.09.2008
Сообщений: 38
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Вводи в едит число, а потом перед поиском добавь к нему "ЦТП ".
Код:
str := 'ЦТП ' + Edit1.Text;
Спасибо огромное! Все работает.
student90 вне форума Ответить с цитированием
Старый 01.10.2008, 12:04   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Вводи в едит число, а потом перед поиском добавь к нему "ЦТП ".
Код:
str := 'ЦТП ' + Edit1.Text;
универсальности 0, чем не устраивает pos ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 01.10.2008, 14:33   #8
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

полный вариант:
Код:
unit Unit1_;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, CheckLst;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    CheckListBox1: TCheckListBox;
    Button1: TButton;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
   function UpCaseAll(x :string):string;
    { Public declarations } 
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.UpCaseAll(x :string):string;
var
  b, w: integer;
  str: string;
begin
  for w := 1 to length(x) do
  begin
    b := ord(x[w]);
    case b of
      0..96, 123..183: x[w] := chr(b);
      97..122: x[w] := UpCase(chr(b));
      184: x[w] := chr(168);
      185..223: x[w] := chr(b);
      224..255:
        begin
          b := b - (Ord('а') - Ord('А'));
          x[w] := chr(b);
        end;
    end;
    str := str + x[w];
  end;
 UpCaseAll := str;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 If Not(Key in ['0'..'9', #8]) then Key := #0;
end;

procedure TForm1.Button1Click(Sender: TObject);
Var I,II :LongInt;
    S :String;
begin //поиск
 TControl(Sender).Enabled := False;
  Try
 S := Format('ЦТП %s', [Edit1.Text]);
 II := CheckListBox1.Items.Count;
 If II>0 then
 For I:=0 To II-1 Do
 If Pos(S, UpCaseAll(CheckListBox1.Items.Strings[I]))>0 then
 CheckListBox1.Selected[I] := True;
  Finally
 TControl(Sender).Enabled := True;
  End;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 CheckListBox1.MultiSelect := True;
end;

end.
Alter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с созданием сложной таблицы GrayBrother Microsoft Office Excel 4 25.08.2008 10:16
Помогите с созданием кнопки Артэс Win Api 23 04.06.2008 04:13
Помогите пожалуйста с созданием лабы Pater Помощь студентам 1 29.05.2007 23:40
Помогите с созданием программы: Wander Помощь студентам 2 19.04.2007 20:10