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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.07.2008, 17:21   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию Убрать нули!!!)

Возникла у меня такая идея. А ведь было бы не плохо, если бы можно было избавляться на форме от нулей. Я имею ввиду вот что. Моя программа состоит из Edit-ов и label-ов. Как бы мне реализовать такую процедуру, которая бы по нажатию на кнопку убирала бы нули в тех ячейках, в которых они есть. Например, пусть у меня имеются четыре Edit-а: Edit1, Edit2, Edit3, Edit4. Edit1 и Edit2 у меня имеют значения 2 и 4 соответственно. А Edit3 и Edit4 значения имеют нули. И, нажав на кнопку у меня бы в этой строчке нули бы, там где они стоят, стерлись бы, а остались бы только числа большие нуля. А в том окошке, где был ноль, то не было бы никакой цифры. Как это можно сделать?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.07.2008, 17:30   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Написать функцию которая считывает из Едита строку, обрабтывает её удаляя нли и кладёт на место.

Вообще вопрос странный ибо непонятно как может не быть хоть какихто соображений на эту тему....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 28.07.2008, 17:43   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Мне кажется, что вопрос не странный. Если я создам кнопку и напишу туда Form1.Edit1.Text:='0';, то это сработает. А я хочу, чтобы программа сама искала те Edit-ы и label-лы, в которых стоят нули и удаляла их.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.07.2008, 17:56   #4
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Попробуй так
Код:
Procedure KillZero;
var comp: TComponent;
    n: integer;       //количество компонентов Edit
begin
  for i:=1 to n do
    begin
      comp:=FindComponent('Edit'+IntToStr(i));
      if (comp as TEdit).text='0' then (comp as TEdit).text:=''; 
    end;
end;
dr.Chas вне форума Ответить с цитированием
Старый 28.07.2008, 17:59   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Спасибо, попробую))
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.07.2008, 18:07   #6
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Похожая тему уже была и вот код на её основе который убирает все нули из всех найденых лабелов и едитов.

Код:
Var I, N : Integer;
      Ish, Kon : String;

Begin
For I := 0 To Form1.ComponentCount - 1  Do

If (Form1.Components[i] Is TLabel) Or
   (Form1.Components[i] Is TEdit) Then
  Begin
    Ish := TLabel(Form1.Components[i]).Caption; // ???
    Kon := '';

    For N := 1 To Length(Ish) Do
    If Ish[N] <> '0' Then Kon := Kon + Ish[N];

    TLabel(Form1.Components[i]).Caption := Kon; // ???
  End;
Хотя у меня возникает вопрос почему в строчках где я поставил вопросики на результат работы программы не влияет начальное слово TLabel... Проще говоря заменив Tlabel на TButton неменяет ход работы....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 28.07.2008, 18:35   #7
Ring0Sn
Форумчанин
 
Аватар для Ring0Sn
 
Регистрация: 06.09.2007
Сообщений: 239
По умолчанию

Карась, потомучто такая конструкция указывает НЕ ЯВНО на класс обьекта, в отличие от оператора AS, ктр делает это ЯВНО
Попробуй записать это через AS и получишь исключение
Ring0Sn вне форума Ответить с цитированием
Старый 28.07.2008, 19:06   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Проще говоря заменив Tlabel на TButton неменяет ход работы...
Потому что это всего лишь преобразование типа. А т.к. метод Caption есть и у TButton, то запись оказывается вполне корректной.
Хотя тут могут быть подводные камни и лучше так не делать.
Arigato вне форума Ответить с цитированием
Старый 28.07.2008, 19:39   #9
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Именно эти соображения у меня и возникали
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 28.07.2008, 19:42   #10
Ring0Sn
Форумчанин
 
Аватар для Ring0Sn
 
Регистрация: 06.09.2007
Сообщений: 239
По умолчанию

Arigato, Ну во первых не МЕТОД, а свойство, а во вторых оно не y TButton, а класса TControl, TButton (и TLable тоже) всего лишь наследуют его а вообще запись вида
Код:
If (Form1.Components[i] Is TLabel) then 
  TControl(Form1.Components[i]).Caption
вполне корректная и никаких подводных камней не будет, кроме как ненаглядности кода

Последний раз редактировалось Ring0Sn; 28.07.2008 в 19:52.
Ring0Sn вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нули artemavd Общие вопросы Delphi 22 03.08.2008 10:49
Хвастаюсь игрушкой Кресту-нули Altera Софт 3 12.02.2008 15:06
Убрать значки masterprog Помощь студентам 2 28.12.2007 19:47
Как убрать компонент SeRhy Помощь студентам 2 29.10.2007 17:29
Убрать из uses Маркъ Общие вопросы Delphi 3 03.02.2007 11:44