AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

pagecontrol

Ein Thema von heytheredelilah · begonnen am 2. Sep 2008 · letzter Beitrag vom 3. Sep 2008
Antwort Antwort
heytheredelilah

Registriert seit: 26. Aug 2008
18 Beiträge
 
#1

pagecontrol

  Alt 2. Sep 2008, 21:19
hallo alle

ich habe momentan ein problem damit herauszufinden welches Memo gerade im vordergrund ist.

es ist so:
ich habe ein pagecontrol mit seiten die auf button-click erzeugt werden.
es wird bei jedem klick eine page mit einem memo drin erzeugt.

wenn ich im obenliegendem ComboBox etwas eingebe soll es nach "enter-eingabe" genau so im memo landen.
aber das problem: ich kann bisher dann nur sowas machen:

Delphi-Quellcode:
  
if key = char(vk_return)then
  begin
    key := #0;
    if ComboBox1.Text <> 'then
    begin
      Memo1.Lines.Text := Edit1.Text; // hier ist es
      if ComboBox1.Items.IndexOf(ComboBox1.Text) = -1 then
       ComboBox1.Items.Add(ComboBox1.Text);
    end;
end;
wie kann ich das etwas dynamischer gestalten?
dass dort nicht "memo1" sondern jenes memo steht welches gerade mit dem tabsheet im vordergrund ist?

die memos haben keine "namen" sondernich identifiziere sie an einer inkremierenden integer-zahl.
  Mit Zitat antworten Zitat
cybergen

Registriert seit: 20. Apr 2008
Ort: Kißlegg
6 Beiträge
 
#2

Re: pagecontrol

  Alt 2. Sep 2008, 22:00
Mhm warum machst du nicht sowas wie:

onPageChange ...
if ActivePage = Page1 then fActiveMemo := Memo1;
if ....

zu billig ? *G*

geht auch komplizierter ... (PseudoCode)

function SearchMemo(wc:TComponent) : TMemo;
var i : integer;
begin
result := nil;
for i:=0 to wc.componentcount - 1 do
begin
if wc.components[i] is TMemo then
begin
result := TMemo(wc.components[i]);
exit;
end else
if wc.components[i].componentcount > 0 then
begin
result := SearchMemo(wc.components[i]);
if result <> nil then exit;
end;
end;
end;


OnComboKeyPress ...
var mm : TMemo;
if key = #13 then
begin
mm := SearchMemo(PageControl1.ActivePage);
if assigned(mm) then
with mm do
begin
mm.lines.text := mm.lines.text + 'Lustisch zeugs';
end;
end;

es geht auch noch anders ...

var mm:array[1..3]of Tmemo;
OnFormCreate
mm[1] := Memo1;
mm[2] := memo2;
mm[3] := memo3;
PageControl1Page1.Tag := 1;
PageControl1Page1.Tag := 2;
PageControl1Page1.Tag := 3;
.... (könnte man auch über eine collection lösen ich weis)

und später dann einfach:

OnKey....
mm[PageControl1.ActivePage.Tag].Lines.add('Noch lustischers Zeugs');


gruss cyb.
  Mit Zitat antworten Zitat
heytheredelilah

Registriert seit: 26. Aug 2008
18 Beiträge
 
#3

Re: pagecontrol

  Alt 2. Sep 2008, 22:05
das mit dem "if" ist nicht gut, da ich ja im vorhinein nicht weis wieviele tabshets ich erzeugen werden.
wie wende ich denn
Delphi-Quellcode:
function SearchMemo(wc:TComponent) : TMemo;
var i : integer;
begin
result := nil;
for i:=0 to wc.componentcount - 1 do
begin
if wc.components[i] is TMemo then
begin
result := TMemo(wc.components[i]);
exit;
end else
if wc.components[i].componentcount > 0 then
begin
result := SearchMemo(wc.components[i]);
if result <> nil then exit;
end;
end;
end;
an?
  Mit Zitat antworten Zitat
heytheredelilah

Registriert seit: 26. Aug 2008
18 Beiträge
 
#4

Re: pagecontrol

  Alt 3. Sep 2008, 15:26
keine antworten mehr ?
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: pagecontrol

  Alt 3. Sep 2008, 15:33
steht doch da:
mm := SearchMemo(PageControl1.ActivePage); Dann steht in mm dein aktuelles Memo.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz