簡體   English   中英

Delphi - 動態創建的表單上不顯示豐富的編輯

[英]Delphi - Rich edit doesn't show on dynamically created form

我在我的程序中動態創建了一個表單,它可以完美地工作和顯示,但是我也動態創建的 RichEdit 根本不想在表單上顯示。 如何在表單上顯示 RichEdit?

我正在使用的代碼:

procedure TfrmPuntehou.lblAbbClick(Sender: TObject);
var
  frmAbb: TForm;
  redAbbreviations: TRichEdit;
begin
  //opens abbreviations
  frmAbb := TForm.Create(nil);
  redAbbreviations := TRichEdit.Create(nil);
  try
    with frmAbb do
    begin
      Width := 400;
      Height := 400;
      Caption := 'Abbreviations';
      Position := poOwnerFormCenter;
      ShowModal;
    end;
    with redAbbreviations do
    begin
      Parent := frmAbb;
      Width := 300;
      Height := 353;
      redAbbreviations.Paragraph.TabCount := 2;
      redAbbreviations.Paragraph.Tab[0] := 30;
      redAbbreviations.Paragraph.Tab[1] := 60;
      Lines.Add('DEV'+#9+'='+#9+'SWD Development');
      Lines.Add('1660'+#9+'='+#9+'1660s');
      Lines.Add('2.1'+#9+'='+#9+'2.1s');
      Lines.Add('MIN'+#9+'='+#9+'Minis');
      Lines.Add('SR'+#9+'='+#9+'Stockrods');
      Lines.Add('PR'+#9+'='+#9+'Pinkrods');
      Lines.Add('HR'+#9+'='+#9+'Hotrods');
      Lines.Add('HM'+#9+'='+#9+'Heavy Metals');
      Lines.Add('V8'+#9+'='+#9+'V8s');
      Lines.Add('MA'+#9+'='+#9+'Midgets A');
      Lines.Add('MB'+#9+'='+#9+'Midgets B');
      Lines.Add('SP'+#9+'='+#9+'Sprints');
      Lines.Add('CRO'+#9+'='+#9+'Crosskarts');
      Lines.Add('LM'+#9+'='+#9+'Late Models');
      Font.Size := 13;
    end;
  finally
    frmAbb.Free;
  end;
end;

ShowModalfrmAbb的初始化部分移到代碼末尾,就在finally語句之前。

procedure TForm1.Button1Click(Sender: TObject);
var
  frmAbb: TForm;
  redAbbreviations: TRichEdit;
begin
  //opens abbreviations
  frmAbb := TForm.Create(nil);
  try
    redAbbreviations := TRichEdit.Create(frmAbb);
    with frmAbb do
    begin
      Width := 400;
      Height := 400;
      Caption := 'Abbreviations';
      Position := poOwnerFormCenter;
    end;
    with redAbbreviations do
    begin
      Parent := frmAbb;
      Width := 300;
      Height := 353;
      redAbbreviations.Paragraph.TabCount := 2;
      redAbbreviations.Paragraph.Tab[0] := 30;
      redAbbreviations.Paragraph.Tab[1] := 60;
      Lines.Add('DEV'+#9+'='+#9+'SWD Development');
      Lines.Add('1660'+#9+'='+#9+'1660s');
      Lines.Add('2.1'+#9+'='+#9+'2.1s');
      Lines.Add('MIN'+#9+'='+#9+'Minis');
      Lines.Add('SR'+#9+'='+#9+'Stockrods');
      Lines.Add('PR'+#9+'='+#9+'Pinkrods');
      Lines.Add('HR'+#9+'='+#9+'Hotrods');
      Lines.Add('HM'+#9+'='+#9+'Heavy Metals');
      Lines.Add('V8'+#9+'='+#9+'V8s');
      Lines.Add('MA'+#9+'='+#9+'Midgets A');
      Lines.Add('MB'+#9+'='+#9+'Midgets B');
      Lines.Add('SP'+#9+'='+#9+'Sprints');
      Lines.Add('CRO'+#9+'='+#9+'Crosskarts');
      Lines.Add('LM'+#9+'='+#9+'Late Models');
      Font.Size := 13;
    end;
    frmAbb.ShowModal;
  finally
    frmAbb.Free;
  end;
end;

你忘了讓它可見:

redAbbreviations.Visible := TRUE;

並且在將屬性設置為 RichEdit 之前顯示表單模式。

這是正確的重新格式化代碼:

procedure TForm1.Button1Click(Sender: TObject);
var
    frmAbb           : TForm;
    redAbbreviations : TRichEdit;
begin
    // opens abbreviations
    frmAbb := TForm.Create(nil);
    try
        redAbbreviations := TRichEdit.Create(frmAbb);
        frmAbb.Width                        := 400;
        frmAbb.Height                       := 400;
        frmAbb.Caption                      := 'Abbreviations';
        frmAbb.Position                     := OwnerFormCenter;
        redAbbreviations.Parent             := frmAbb;
        redAbbreviations.Width              := 300;
        redAbbreviations.Height             := 353;
        redAbbreviations.Paragraph.TabCount := 2;
        redAbbreviations.Paragraph.Tab[0]   := 30;
        redAbbreviations.Paragraph.Tab[1]   := 60;
        redAbbreviations.Lines.Add('DEV'+#9+'='+#9+'SWD Development');
        redAbbreviations.Lines.Add('1660'+#9+'='+#9+'1660s');
        redAbbreviations.Lines.Add('2.1'+#9+'='+#9+'2.1s');
        redAbbreviations.Lines.Add('MIN'+#9+'='+#9+'Minis');
        redAbbreviations.Lines.Add('SR'+#9+'='+#9+'Stockrods');
        redAbbreviations.Lines.Add('PR'+#9+'='+#9+'Pinkrods');
        redAbbreviations.Lines.Add('HR'+#9+'='+#9+'Hotrods');
        redAbbreviations.Lines.Add('HM'+#9+'='+#9+'Heavy Metals');
        redAbbreviations.Lines.Add('V8'+#9+'='+#9+'V8s');
        redAbbreviations.Lines.Add('MA'+#9+'='+#9+'Midgets A');
        redAbbreviations.Lines.Add('MB'+#9+'='+#9+'Midgets B');
        redAbbreviations.Lines.Add('SP'+#9+'='+#9+'Sprints');
        redAbbreviations.Lines.Add('CRO'+#9+'='+#9+'Crosskarts');
        redAbbreviations.Lines.Add('LM'+#9+'='+#9+'Late Models');
        redAbbreviations.font.Size :=13;
        redAbbreviations.Visible   := TRUE;
        frmAbb.ShowModal;
    finally
        frmAbb.Free;
    end;
end;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM