Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TMemo


Arhip ©   (2007-01-14 03:58:00) 

Товарисчи по сети!
Подскажите пожалуйста кто знает, как посчитать количество строк в TMemo?
Если есть код.. киньте тут!


Правильный Вася   (2007-01-26 17:42:00) [1]

стока вариантов и все неправильные
в меме вообще строк нет, это дырка-отображалка
строки в классе TStrings


novill   (2007-01-26 17:29:00) [2]

СПАСИБО! ПОРАДОВАЛИ! )))))


Doomer   (2007-01-26 17:26:00) [3]

Удалено модератором


Johnmen   (2007-01-20 22:08:00) [4]


> Тогда зачем эту конфиренцию читаете?


А вы почему интересуетесь? Вы не из милиции будете? (c)


Delphi-Chainik   (2007-01-20 21:58:00) [5]

Народ вы вообще про что сейчас? Давайте велосипеды изобретать начнём... Элементарные задачи стоят, а для них функции изобретают, которые уже реализованы. Сорказм и.т.п. это уже просто... Вообщем нет слов.

to > Архангел Фленов-Фаронов и Ко
Вы видимо один из них? Тогда зачем эту конфиренцию читаете? ))))


Архангел Фленов-Фаронов и Ко   (2007-01-20 19:07:00) [6]

Не обнуляется локальная переменная I перед циклом. И вообще, она лишняя.

А переменную А вообще лучше объявлять глобальной. Тогда ее можно будет использовать в разных местах программы, не особо заморачиваясь с объявлениями. Вообще, реальные пацаны и крутые хакеры, когда начинают новый проект, объявляют 26 переменных согласно английского алфавита. Так проще - каждый раз объявлять не надо. Движения в этом направлении еще в Фортране были. Типа, все, что на i (k, l, m, n) начинается - то целочисленное. А настоящие программисты, как всем известно, пишут на Фортране.


Джо   (2007-01-20 18:48:00) [7]

> [12] Delphi-Chainik   (20.01.07 17:01)
> Это, что... Мне тут попадалось решение.. Вот кусочек кода
> :

Не обнуляется локальная переменная I перед циклом. И вообще, она лишняя.


Архангел Фленов-Фаронов и Ко   (2007-01-20 18:42:00) [8]

Вопрос на самом деле сложный.
И сарказм тут совершенно не уместен.
При решении данной задачи без рекурсии не обойтись:

procedure MemoLC(Memo: TMemo; var Count: integer);
begin
 if Count < Memo.Lines.Count then
 begin
   Count := Count + 1;
   MemoLC(Memo, Count);
 end;
end;


Вызов:

 Count := 0;
 MemoLC(Memo1, Count);


Все остальные решения являются или частным случаем, или содержат нереально безопасный код, поэтому правильные пацаны и настоящие хакеры не должны ими пользоваться.


Delphi-Chainik   (2007-01-20 17:01:00) [9]

Это, что... Мне тут попадалось решение.. Вот кусочек кода :

function MemoLC: iteger;
var
  I: integer;
begin
for A := 0 to Memo1.Lines.Count do  I := I + 1;
Result := I;
end;


Я после этого пацталом лежал... )))


Arhip   (2007-01-20 15:33:00) [10]

Нет... я со всем справился...


SerJaNT   (2007-01-15 09:51:00) [11]


> Спасибо всем! Справился...


Это было "как подсчитать количество строк", теперь "как добавить новую строку"

?


Arhip   (2007-01-15 01:09:00) [12]

Спасибо всем! Справился...


Antoxa2005   (2007-01-14 15:25:00) [13]


> unknown

Мировове решение!


Джо   (2007-01-14 14:03:00) [14]

Тут половина вопросов таких, иной раз думаешь, что и вправду кто-то плоско шутит :)


Johnmen   (2007-01-14 13:32:00) [15]

Очередная разводка.


Anatoly Podgoretsky   (2007-01-14 13:06:00) [16]

> SerJaNT  (14.01.2007 09:54:04)  [4]

Одна строка лишняя, автору не нужна, наверно для пометок.


SerJaNT   (2007-01-14 09:54:00) [17]

Memo1.Lines.Count-1;


unknown   (2007-01-14 07:00:00) [18]

:-)


koha   (2007-01-14 06:46:00) [19]

while not EOF(F) do
  begin
    Readln(F);
    Inc(Count);
  end;
зачем это делаешь? мемо сам считает этот параметр автоматом при заполнении.
и вообще использую обратную процедуру этой Memo1.Lines.SaveToFile('c:\memo.txt'); >>> Memo1.Lines.LoadFromFile('c:\memo.txt'); >>>
Caption := Format('Memo1.Lines.Count=%d', [Memo1.Lines.Count]);


unknown   (2007-01-14 04:40:00) [20]

В TMemo? Черезвычайно сложная задача.
В справке не смотри, там нет решения.
Считать надо так:
procedure TForm1.Button1Click(Sender: TObject);
var
 F:     TextFile;
 Count: integer;
begin
 Count := 0;
 try
   Memo1.Lines.SaveToFile('c:\memo.txt');
   AssignFile(F, 'c:\memo.txt');
   Reset(F);
   while not EOF(F) do
   begin
     Readln(F);
     Inc(Count);
   end;
   CloseFile(F);
   DeleteFile('c:\memo.txt');
 finally
 end;
 Caption := Format('Memo1.Lines.Count=%d', [Count]);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо