Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   FreePascal (https://www.delphipraxis.net/74-freepascal/)
-   -   PageControl, TabSheet, Memo.... (https://www.delphipraxis.net/187880-pagecontrol-tabsheet-memo.html)

Bea2851 12. Jan 2016 01:26

PageControl, TabSheet, Memo....
 
Hallo Liebe Profis
Ich (w :wink:) habe im Verlauf meines Studiums freiwillig "Programmieren" gewählt... Ich bin wirklich interessiert daran und durchforste das ganze WorldWideWeb nach Tipps,Tricks und Hilfestellungen, da wir wirklich nur einen Crashkurs bekommen haben, aber nun an eigenen Projekten/Programmen arbeiten sollen. Soweit klappt es auch ganz gut - es ist wie ein großes Puzzel :-D
Allerdings hänge ich total an 1-3 Sachen und hoffe,dass mir hier jemand den richtigen Denkanstoß geben kann - wie gesagt ich bin echt alles andere als ein Programmier-Ass...

Folgendes Problem habe ich:

Auf der/die/das PageControl habe ich ein Memo gelegt....bei der Eingabe des Such-Begriffs in das Edit-Feld
Wir also ein Tab erzeugt (alles kein Problem funktioniert einwandfrei)...gleichzeitig wird in einem anderen Memo-Feld eine dazugehörige "Information" angezeigt (auch alles kein Problem) aber wenn ich verschiedene Begriffe suche...ergo mehrere Tabs habe erscheint in dem Info-Memo-Feld immer nur das aktuellste...also um es kurz zu Machen: wie hefte ich die jeweilige Info, das Memofeld samt Inhalt, an den/das jeweilige Tab wenn ich zwischen diesen springe? Das muss doch irgendwie machbar sein....ich habe schon wirklich so wahnsinnig viele Stunden im Netz gesucht und komme nicht weiter und ich würd gern mal von der Stelle runter kommen auf der ich seit Wochen trete :cry:

Ich hoffe ich habe mich deutlich/verständlich genug ausgedrückt und jmd von euch hat die zeit/Lust/Geduld mir das irgendwie zu erklären :thumb:

Vielen Dank schon mal und entschuldigt den Roman für dieses triviale Problem :D

Luckie 12. Jan 2016 02:30

AW: PageControl, TabSheet, Memo....
 
Ich (m ;) ) habe es so verstanden: Du hast ein Eingabefeld. Dann geht ein Tab auf oder wird fokussiert, wenn man was in das Eingabefeld eintippt. Auf dem Tab erscheint ein Memo mit Tipps(?) zu der Eingabe im Eingabefeld. Wenn du jetzt einen weiteren "Suchbegriff" eingibst soll ein weiter Tab erstellt werden mit einem weiteren Memo mit Infos zu der Eingabe im Edit.

Passt das so?

Dann erstelle doch ein weiteres Memo und palziere es auf dem neuen Tab.

Luckie 12. Jan 2016 02:44

AW: PageControl, TabSheet, Memo....
 
Hm. Noch mal gelesen. Neuer Versuch. Ich (immer noch m ;) ) sehe es so:
Tab mit Edit und Memo. Eingabe in Edit -> Info in Memo auf Tab. Neuer Tab mit neuem Edit und neuen Memo. Eingabe in neuen Edit -> Info im neuen Memo?

Die Routine, die die Info erstellt, muss also wissen in welchem Edit auf welchen Tab die Eingabe erfolgte und in welchen Memo sie die Info schreiben soll.

Überlegung: Wenn das Edit den Eingabefokus hat, muss der Tab der "aktuelle" sein. Also den "aktuellen" Tab ermitteln und darauf das Memo, welches auf dem Tab liegt. Und da dann rein schreiben. Da kommt mir als erstes FindComponent in dem Sinn.

Luckie 12. Jan 2016 03:16

AW: PageControl, TabSheet, Memo....
 
OK. Jetzt wird es ein Running Gag. :mrgreen: Ich (m, 41 ;) ) Kannst du eine kleine, abgespeckte Demo machen und den Quellcode hier hochladen?

bepe 12. Jan 2016 06:10

AW: PageControl, TabSheet, Memo....
 
Ich (m, single, zu alt für dich, zu jung für luckie :wink:) konnte nicht widerstehen auch meine bewer... 8-)

Beim Erzeugen eines Tabs schreibst du in die Eigenschaft "Tag" eine fortlaufende Nummer als ID. Außerdem erzeugst du ein Objekt, Record oder Ähnliches. In diesem wird die ID und der Inhalt für das Memo abgelegt. Dieses Objekt wird in einem Array oder eine Liste abgelegt.
Im OnTabChange liest du die Tag Eigenschaft des jetzt aktiven Tabs aus und suchst, im Array/in der Liste nach der ID, und kannst damit den Inhalt des Memos aktualisieren.

Bin (trotz regelmäßiger Spaziergänge mit meinem Hund) in Lazarus nicht fit aber das sollte dir als Anhaltspunkt/Idee erstmal helfen können.

baumina 12. Jan 2016 06:13

AW: PageControl, TabSheet, Memo....
 
Ich (w :cheers:) gehe mal davon aus, dass du das Memo zur Laufzeit erstellst. Um das erzeugte Memo einem Tabsheet zuzuordnen, musst du den Parent setzen.

Beispiel:
Delphi-Quellcode:
aMemo := TMemo.Create(aTabSheet);
aMemo.Parent := aTabSheet;

haentschman 12. Jan 2016 09:34

AW: PageControl, TabSheet, Memo....
 
Ich (vor lauter Falten nicht definierbar :mrgreen:) habe noch einen Vorschlag für Erweiterungen. Dynamisch erzeugte visuelle Controls lassen sich manchmal schlecht designen. Bei einem Control, wie bei deinem Memo, geht das noch. Wenn man aber mehrere braucht und die Eigenschaften gesetzt werden müssen, ist der Quelltext meistens schnell unübersichtlich.
Vorschlag:
Designe dir einen Frame (so wie die Form) mit den entsprechenden Controls darauf. Dann erzeugst du den Frame analog zu deinem Memo und gibst den Tab als Parent an. (siehe baumina)
Controls füllen...fertsch. :P

@Bea2851: Merkst du was? Auch Programmierer können Humor haben... :zwinker: Nur die wenigsten hocken in dunklen Kellern bei Kerzenschein. :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:21 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