заповнення StringGrid
Увадаемие мачтера Delphi у мене виникло питання: Як можна заповнити StrinGgrid # XA0; записами через підрядник у випадковому порядку. Заздалегідь вдячний.
Що в твоєму розумінні "через підрядник у випадковому порядку", що за записи?
StringGrid1.Cells [1, 3]: = "текст в осередку";
1 - колонка, 3 - рядок заповниться текстом "текст в осередку" (без лапок)
for i: = 1 to stringgrid1.colcount do
# XA0; for j: = 1 to stringgrid1.rowcount do
# XA0; # XA0; stringgrid1.cells [i, j]: = inttostr (random (100))
тоді вже
randomize;
while do
StringGrid1.Cells [random (StringGrid1.ColCount - 1), random (StringGrid1.RowCount - 1)]: = inttostrt (random ());
> Протелепатіровалі по-повній?
немає
через підрядник у випадковому порядку
то рядки у випадковому порядку,
а есле так:
через підрядник, в випадковому порядку
Дик, і в [2] не «через підрядник", а "поячеечно" :) Випадково - так. Але до 100-а :)))
Яволь, натюрліх. Тим більше, що в [2] однозначно "індекс аут оф." Присутній :)
Ще не вказана закономірність, все порядки - випадкові.
А ні як підрядник у нього не вийде, навіть якщо заповнювати підготовлену рядок, то як мінімум її доведеться заповнювати по осередковою.
Предлаегаешь зняти капелюха і вшанувати хвилиною молченія?
var
# XA0; n: Integer;
# XA0; i, j: Integer;
# XA0; arrs: array of String;
begin
# XA0; Randomize;
# XA0; SetLength (arrs, sg.RowCount);
# XA0; for i: = 0 to sg.RowCount-1 do
# XA0; begin
# XA0; # XA0; for j: = 0 to 80 do arrs [i]: = arrs [i] + Chr (Random (128));
# XA0; end;
# XA0; n: = sg.RowCount-1;
# XA0; for i: = 0 to sg.RowCount-1 do sg.Rows [Random (n)]. CommaText: = arrs [i];
Ну цією фразою ти, мабуть, хочеш сказати, що тобі нічого не потрібно говорити, так як ти по-визначенню істина.
Можеш продовжувати триндеть.
Ти просив, я відповів, які претензії.
> Random (n)
де гарантія що кожен раз буде випадати різну кількість і всі рядки будуть заповнені?
Ну і добре.
А завдання-то вирішена.
Гарантії немає. Такий завдання не ставив перед собою.
Це ж приклад просто.
P.S. Я розумію що цей спосіб "перанальний", але захотілося побуквоедствовать. )
> Хм. А властивість TStringGrid.Rows і метод TStrings.Assign
> Вже заборонили?
Заради Бога. Це просто ще один метод-)
Але не такий наглядний-))
P.S. Я розумію що цей спосіб "перанальний", але захотілося побуквоедствовать. )
)) Тоді можна взяти будь-нитка файл побільше, і довільної (випадкової) довжиною все rows "залоадітьфромстрім". За рядком. Випадковість визначиться довжиною стріму і вмістом файла :) Ось вже, дійсно, "ржунимагу" :)))
Даю 80%, що якщо аффтар все-таки повернеться, то виявиться, що рядки треба брати з бази даних ;-)
Може і прийде, але тільки що б кинути чергову порцію і знову прірву, він же не знає / не вміє поставити запитання, а в таких випадках така практика іноді допомагає, кинути питання і з боку спостерігати за бійкою.
Учасники конференції рівноправні. Як ті, хто запитує, так і ті, хто відповідає.
Конференція для початківців, а також для тих, кому складно пояснити чого він хоче. Прохання до учасників бути взаємоввічливими, професіоналам окрема прохання - бути поблажливими.
Ти висмикнув фразу з контексту.
Далі по тексту:
Як давати хороші відповіді
Будьте великодушні. Пов'язаний з проблемою стрес може робити неввічливими або дурними людей, які такими не є.
На першу помилку вкажіть в приватному порядку. Немає необхідності публічно принижувати людину, яка, можливо, чесно помиляється. Початківець користувач може не знати, як шукати в архівах або де знаходиться або публікується список поширених запитань.
Якщо не можете допомогти, не заважайте. Не жартуйте з приводу процедур, які можуть зруйнувати середу користувача - цей бовдур може прийняти ваші жарти як керівництво до дії.
Задавайте додаткові питання, щоб отримати більше інформації. Якщо це робити правильно, запитувач дещо чому навчиться, - та й ви теж. Спробуйте перетворити поганий питання в хороший; пам'ятайте - все ми були початківцями.
Якщо вже ви відповідаєте на питання, давайте відповідь по суті. Чи не пропонуйте наспіх придумані обхідні шляхи, якщо використовується в принципі не той засіб або невірний підхід. Пропонуйте хороші засоби. Переформуліруйте питання.
Допоможіть громадськості отримати користь з питання. Коли зустрічаєтеся з хорошим питанням, запитайте себе: "Як треба змінити відповідні документи та список ЧаВО, щоб більше це питання ніхто не ставив?". Потім пошліть відповідне доповнення того, хто підтримує ці документи.
Якщо для відповіді на питання довелося провести дослідження, поділіться своїм досвідом, а не пишіть так, як ніби відповідь звалився на вас з неба. Відповісти на один хороший питання - це як нагодувати голодного один раз, а ось викласти методику дослідження на прикладі, - значить, навчити добувати їжу на все життя.
> "Як треба змінити відповідні документи та список
> ЧаВО, щоб більше це питання ніхто не ставив? ".
Тоді б люди не ходили питання задавати, якби відповіді в FAQ були;)