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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2018, 22:25   #41
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Taras2018 Посмотреть сообщение
Тоже решил позаимствовать код. Но чего то тут не то:
А это патамушта нинада тупо копипастить код, не разобравшись, для чего он и откудова. Посмотри, от чего у меня пронаследован класс формы.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 19.05.2018, 22:32   #42
Taras2018
Пользователь
 
Аватар для Taras2018
 
Регистрация: 13.01.2018
Сообщений: 47
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
А это патамушта нинада тупо копипастить код, не разобравшись, для чего он и откудова. Посмотри, от чего у меня пронаследован класс формы.
Так тоже делал и почему то такая же ошибка. Для справки с делфи я не на ты, ну и не на вы.

Приведи пример в чистом коде ?. Сколько кодов перебрал это первый такой попался. Серьезно, будет интересно.
Taras2018 вне форума Ответить с цитированием
Старый 19.05.2018, 22:40   #43
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Taras2018 Посмотреть сообщение
Так тоже делал и почему то такая же ошибка. Для справки с делфи я не на ты, ну и не на вы.

Приведи пример в чистом коде ?. Сколько кодов перебрал это первый такой попался. Серьезно, будет интересно.
Весь нужный код идёт в комплекте.
Посмотри, от чего у меня пронаследован класс формы, и всё поймёшь.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 19.05.2018, 22:43   #44
Taras2018
Пользователь
 
Аватар для Taras2018
 
Регистрация: 13.01.2018
Сообщений: 47
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Весь нужный код идёт в комплекте.
Посмотри, от чего у меня пронаследован класс формы, и всё поймёшь.
Ну так вот посмотри "Чисто твой код" + Скриншет, ниже.

Код:
unit ufMain;

interface

uses
  uSystemMenu,math, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Samples.Spin, uHexSpin, Vcl.Buttons;

type
  TFormMain = class(TBaseForm)
    CheckBox1: TCheckBox;
    Edit1: TEdit;
    PanelCheck: TPanel;
    PanelEdit: TPanel;
    Splitter1: TSplitter;
    Panel3: TPanel;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    EditResult: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    SpinEditLen: TSpinEditEx;
    ButtonRefresh: TSpeedButton;
    Panel1: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    SpinEditCount: TSpinEditEx;
    ButtonSaveAs: TButton;
    SaveDialog: TSaveDialog;
    procedure FormCreate(Sender: TObject);
    procedure ControlChange(Sender: TObject);
    procedure ButtonSaveAsClick(Sender: TObject);
    procedure SpinEditCountChange(Sender: TObject);
  private
    fchecks: TList;
    fedits: TList;
    function Aggregate: string;
    function Generate(const dict: string; const len: int32): string;
  public
    procedure AppIdle(Sender: TObject; var Done: Boolean); override;
  end;

var
  FormMain: TFormMain;

implementation

{$R *.dfm}

function TFormMain.Aggregate: string;
var
  idx: int32;
begin
  result:= '';

  for idx:= 0 to min(fchecks.Count, fedits.Count) - 1 do
    if  TCheckBox(fchecks[idx]).Checked //TEdit(fedits[idx]).Enabled
      then result:= result + TEdit(fedits[idx]).text;
end;

procedure TFormMain.AppIdle(Sender: TObject; var Done: Boolean);
var
  idx: int32;
begin
  inherited;

  for idx:= 0 to min(fchecks.Count, fedits.Count) - 1 do
    TEdit(fedits[idx]).Enabled:= TCheckBox(fchecks[idx]).Checked;

  ButtonSaveAs.Enabled:= EditResult.Text <> '';
  SpinEditLen.Enabled:= ButtonSaveAs.Enabled;
  SpinEditCount.Enabled:= ButtonSaveAs.Enabled;
end;

procedure TFormMain.ButtonSaveAsClick(Sender: TObject);
var
  idx: int32;
  dict: string;
  list: TStrings;
begin
  dict:= Aggregate();
  if (dict = '') or not SaveDialog.Execute()
    then Exit;

  list:= TStringList.Create();
  try
    for idx:= 0 to SpinEditCount.Value - 1 do
      list.Add(Generate(dict, SpinEditLen.Value));

    try
      list.SaveToFile(SaveDialog.FileName);
    except on E: Exception do
      Application.MessageBox(PChar(E.Message), 'Ошибка сохранения', MB_OK + MB_ICONSTOP);
    end;
  finally
    list.Free();
  end;
end;

procedure TFormMain.ControlChange(Sender: TObject);
var
  dict: string;
begin
  dict:= Aggregate();

  if (dict <> '') and (SpinEditLen.Value > 0)
    then EditResult.Text:= Generate(dict, SpinEditLen.Value)
    else EditResult.Text:= '';
end;

procedure TFormMain.FormCreate(Sender: TObject);
var
  idx: integer;
begin
  Randomize();

  fchecks:= TList.Create();
  for idx:= 0 to PanelCheck.ControlCount - 1 do
    if PanelCheck.Controls[idx] is TCheckBox
      then fchecks.add(PanelCheck.Controls[idx]);

  fedits:= TList.Create();
  for idx:= 0 to PanelEdit.ControlCount - 1 do
    if PanelEdit.Controls[idx] is TEdit
      then fedits.add(PanelEdit.Controls[idx]);
end;

function TFormMain.Generate(const dict: string; const len: int32): string;
var
  idx, dl: int32;
begin
  SetLength(result, len);
  dl:= length(dict);
  for idx:= 1 to len do
    result[idx]:= dict[1 + random(dl)];
end;

procedure TFormMain.SpinEditCountChange(Sender: TObject);
begin

end;

end.
Изображения
Тип файла: jpg er2.jpg (55.5 Кб, 123 просмотров)
Taras2018 вне форума Ответить с цитированием
Старый 19.05.2018, 22:52   #45
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

У тебя не совпадают типы в dfm. Покажи форму.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 19.05.2018, 23:05   #46
Taras2018
Пользователь
 
Аватар для Taras2018
 
Регистрация: 13.01.2018
Сообщений: 47
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
У тебя не совпадают типы в dfm. Покажи форму.
Да ситуация нестандартная и как её решить непонятно.

И СпиныЕдит пропадают за этого.

В dfm у меня
Цитата:
object FormBsod: TFormBsod
Left = 459
Top = 255
BorderStyle = bsNone
Caption = 'BSOD'
ClientHeight = 188
ClientWidth = 324
Color = 11206912
DefaultMonitor = dmDesktop
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
KeyPreview = True
OldCreateOrder = False
OnKeyPress = FormKeyPress
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Image: TImage
Left = 0
Top = 0
Width = 324
Height = 188
Align = alClient
Stretch = True
OnClick = ImageClick
ExplicitLeft = 132
ExplicitTop = 68
ExplicitWidth = 105
ExplicitHeight = 105
end
end
Изображения
Тип файла: jpg 11111111.jpg (65.0 Кб, 104 просмотров)

Последний раз редактировалось Taras2018; 19.05.2018 в 23:07.
Taras2018 вне форума Ответить с цитированием
Старый 19.05.2018, 23:08   #47
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

это не та форма.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 19.05.2018, 23:10   #48
Taras2018
Пользователь
 
Аватар для Taras2018
 
Регистрация: 13.01.2018
Сообщений: 47
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
это не та форма.
Что имеется в виду?
Taras2018 вне форума Ответить с цитированием
Старый 19.05.2018, 23:15   #49
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Taras2018 Посмотреть сообщение
Что имеется в виду?
Вот та форма - из файла ufMain.dfm:

Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 19.05.2018, 23:22   #50
Taras2018
Пользователь
 
Аватар для Taras2018
 
Регистрация: 13.01.2018
Сообщений: 47
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Вот та форма - из файла ufMain.dfm:
[/CENTER]
Вот форма:
Изображения
Тип файла: jpg Ssssssssss.jpg (110.0 Кб, 125 просмотров)
Taras2018 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить условие if к случайному числу на Python Lektorfuja Помощь студентам 3 04.11.2016 19:38
Программа работает. Помогите добавить условие Smile189 Общие вопросы Delphi 1 29.10.2016 19:40
Добавить условие в цикл 9tech Паскаль, Turbo Pascal, PascalABC.NET 0 19.05.2011 06:50
Как к условию, добавить еще условие valerij Microsoft Office Excel 8 22.10.2010 21:59
Добавить условие в макрос Pilot Microsoft Office Excel 8 20.02.2010 17:35