Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Richedit in Tab ansprechen (https://www.delphipraxis.net/55306-richedit-tab-ansprechen.html)

Neuni 19. Okt 2005 13:40


Richedit in Tab ansprechen
 
Hi,
folgendes Problem:

Ich habe jetzt ein Tab. In dem ist ein RichEdit, dass ich nun ansprechen möchte. Also ich möchte die verschiedenen RichEdits in den Tabs ansprechen. (pro Tab ein Richedit).

Was nun bekannt (und immer anders) ist, ist der Titel des Tabs. (die caption)

kann ich nun irgendwie das Richedit in einem Tab ansprechen, der die Cation 'test' hat?

Keine Ahnung ob das überhaupt geht...habs noch nie gebraucht bis jetzt :D

marabu 19. Okt 2005 14:27

Re: Richedit in Tab ansprechen
 
Hallo Neuni, es geht - und zwar so:

Delphi-Quellcode:
function TabSheetByCaption(pc: TPageControl; s: string): TTabSheet;
var
  i: integer;
begin
  Result := nil;
  for i := 0 to Pred(pc.PageCount) do
    if AnsiCompareText(pc.Pages[i].caption, s) = 0 then
    begin
      Result := pc.Pages[i];
      Exit;
    end;
end;

function FirstControl(wc: TWinControl; cn: String): TControl;
var
  i: integer;
begin
  for i := 0 to Pred(wc.ControlCount) do
  begin
    Result := wc.Controls[i];
    if CompareText(Result.ClassName, cn) = 0 then
      Exit;
  end;
  Result := nil;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  ts: TTabSheet;
  re: TRichEdit;
begin
  ts := TabSheetByCaption(PageControl, 'TabSheet1');
  if Assigned(ts)
    then re := FirstControl(ts, 'TRichEdit') as TRichEdit
    else re := nil;
end;
Grüße vom marabu

Neuni 19. Okt 2005 14:56

Re: Richedit in Tab ansprechen
 
Danke...hätt ich vielleicht sagen sollen: Ich benutze das TAdvTabControl. Also nicht die normalen Komponenten.

Mal sehen obs da auch so geht :)

Edit:
habs mal ganz normal probiert:
Hab da ne access violation :(

re is doch dann das richedit, oder?

marabu 19. Okt 2005 17:19

Re: Richedit in Tab ansprechen
 
Hi,

Zitat:

Zitat von Neuni
hätt ich vielleicht sagen sollen: Ich benutze das TAdvTabControl.

Stimmt. Und um deine Chancen auf eine qualifizierte Antwort weiter zu erhöhen, hättest du auch sagen sollen, ob es sich um eine kommerzielle Komponente handelt, wer der Hersteller ist und wo man sie sich herunterladen kann...

Zitat:

Zitat von Neuni
habs mal ganz normal probiert: Hab da ne access violation

Wo willst du nicht sagen?

Zitat:

Zitat von Neuni
re is doch dann das richedit, oder?

Erraten - oder hast du etwa heimlich bei der Variablen-Deklaration nachgesehen?

Wie verbleiben wir denn jetzt?

Freundliche Grüße vom marabu

Neuni 20. Okt 2005 15:48

Re: Richedit in Tab ansprechen
 
Jaja...war in eile. Da schreibt man nicht viel :)

Also Kompo is egal...kann ja die normalen nehmen. Sehen auch schön aus :)

Die access violation kommt, sobald ich irgendwas mit re anstellen will, wie lines.add() oder color := clred;

marabu 20. Okt 2005 17:39

Re: Richedit in Tab ansprechen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Neuni,

ich habe dir eine Demo angehängt. Über die Schalter am unteren Rand wird unter Verwendung meiner oben gezeigten Routinen eine Textzeile in ein RichEdit geschrieben, wahlweise in das sichtbare oder das unsichtbare. Vielleicht erkennst du daran, was du falsch machst. Aber vielleicht habe ich dein Problem auch nur falsch verstanden?

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz