AGB  ·  Datenschutz  ·  Impressum  







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

formular daten an memo übergeben...

Ein Thema von Headi · begonnen am 16. Dez 2005 · letzter Beitrag vom 18. Dez 2005
Antwort Antwort
Seite 1 von 2  1 2      
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#1

formular daten an memo übergeben...

  Alt 16. Dez 2005, 17:47
hallo leute,

Folgendes:

Ich habe:

name: [edit1]
vorname: [edit2]
strasse: [edit3]
...
...
usw.

ich möchte jetzt, dass der user seine daten eingeben kann und dann auf button1 klicken.
Dann erscheint eine form2 mit memo1 wo dann die daten stylisch im bbcode angezeigt werden.

jetzt so wie ich das hier habe ist es ja kein problem.
Nur bei meinem echten projekt sind das viel mehr Daten.
Theoretisch wäre das ja auch kein probelem aber ich muss immer damit rechnen dass er ein Feld lehr lässt, welches
dann auch nicht im bbcode enthalten sein darf, was dann auch wieder ein problem mit den zeilenumbrüchen hervorrufen würde.

wie löse ich das jetzt am besten?
bei jedem feld ne if abfrage ist ja auch blöde!?

Und dann auch noch ich habe mehrere groupboxes, wenn jetzt keines der felder in einer groupbox ausgefüllt ist,
soll die ganze groupbox nicht im bbcode enthalten sein.
Was auch noch ein Problem ist, ich möchte dass der user eigene styles laden kann.


Ich kann das natürlich auch kompliziert machen:

Delphi-Quellcode:
var name:string;
vorname:string;
strasse:string;

begin
name:='[b]Name: [/b]'+edit1.text+#13#10;
vorname:='[b]Vorname: [/b]'+edit2.text+#13#10;
strasse:='[b]Strasse: [/b]'+edit3.text+#13#10;
if edit1.text='then
name:='';
if edit2.text='then
vorname:='';
if edit3.text='then
strasse:='';
form2.RichEdit1.Text:=name+vorname+strasse;
form2.ShowModal;
end


bitte helft mir ich habe einfach noch nicht die perfekte Idee gehabt..


sorry schon wieder so viel text...
ich hoffe ihr könnt mir trotzdem helfen

mfg headi
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: formular daten stylisch in memo einfügen...

  Alt 16. Dez 2005, 17:57
Warum nicht einfach:

Delphi-Quellcode:
if edit1.text<>'then
  Form2.RichEdit1.Lines.Add('[b]Name: [/b]'+edit1.text);

if edit2.text<>'then
  Form2.RichEdit1.Lines.Add('[b]Vorname: [/b]'+edit2.text);

if edit3.text<>'then
  Form2.RichEdit1.Lines.Add('[b]Strasse: [/b]'+edit3.text);


Oder schreib dir doch einfach eine Funktion:

Delphi-Quellcode:
procedure TFOrm1.AddBBCode(Name, Text: String);
begin
  if Text<>'then
    Form2.RichEdit1.Lines.Add('[b]'+Name+'[/b]:'+Text);
end;
Dann kannst du ganz einfach eine Zeile mit AddBBCode('Name',edit1.Text) hinzufügen bzw. halt nicht.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#3

Re: formular daten stylisch in memo einfügen...

  Alt 16. Dez 2005, 18:14
Zitat von jim_raynor:
Warum nicht einfach:

Delphi-Quellcode:
if edit1.text<>'then
  Form2.RichEdit1.Lines.Add('[b]Name: [/b]'+edit1.text);

if edit2.text<>'then
  Form2.RichEdit1.Lines.Add('[b]Vorname: [/b]'+edit2.text);

if edit3.text<>'then
  Form2.RichEdit1.Lines.Add('[b]Strasse: [/b]'+edit3.text);


Oder schreib dir doch einfach eine Funktion:

Delphi-Quellcode:
procedure TFOrm1.AddBBCode(Name, Text: String);
begin
  if Text<>'then
    Form2.RichEdit1.Lines.Add('[b]'+Name+'[/b]:'+Text);
end;
Dann kannst du ganz einfach eine Zeile mit AddBBCode('Name',edit1.Text) hinzufügen bzw. halt nicht.
danke sieht ja eigentlich schon mal nicht schlecht aus!
wie ist das mit if edit3.Text<>'then macht das das gleiche wie if (TrimLeft(Edit3.Text) = 'then) also wegen den leerzeichen?

Und wie ist das wenn ich jetzt 3 groupboxes habe?
wenn ich jetzt für einen zeilenumbruch nach einer groupbox jedes mal richedit1.lines.add(zeilenumbruch) schreiben würde,
dann aber z.B. die groupbox in der mitte ganz leer wäre dann würden sich ja die zeilenumbrüche stauen?!

Achja wie überprüfe ich ganze groupboxen sammt feldern also wie schon gesagt ist kein feld ausgefüllt fällt groupbox weg ist ein feld ausgefüllt wird groupbox hinzugefügt?



Dann zu der funktion:
Ich glaube das wäre ein bisschen kompliziert, da mein name ja in einem label steht und der text in einem edit, da müsste ich ja zuerst immer ein label zu einem edit hinzufügen.
Abgesehen davon würde dann die formation (zeilenumbrüche...) nicht mehr wirklich gut gehen oder?


EDIT:
achso hab noch was übersehen... mit funktionen hab ich mich halt noch nicht so beschäftigt
das sieht ja besser aus als ich dachte

vielen dank schon mal

mfg headi
Pascal
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: formular daten stylisch in memo einfügen...

  Alt 16. Dez 2005, 18:22
Moin,

ich habe da mal eine Frage.
Was heißt stylisch? Meinst du vielleicht stylistisch?
Oder würde man das noch anders betiteln? Aber stylisch ist irgendwie komisch.

Oder sehe ich das völlig falsch?
Dieser Titel zur Zeit auf der Hauptseite, da bekommt man ja Augen****.

Leicht verwunderte Grüsse
Thorsten
  Mit Zitat antworten Zitat
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#5

Re: formular daten stylisch in memo einfügen...

  Alt 16. Dez 2005, 19:08
Zitat von omata:
Moin,

ich habe da mal eine Frage.
Was heißt stylisch? Meinst du vielleicht stylistisch?
Oder würde man das noch anders betiteln? Aber stylisch ist irgendwie komisch.

Oder sehe ich das völlig falsch?
Dieser Titel zur Zeit auf der Hauptseite, da bekommt man ja Augen****.

Leicht verwunderte Grüsse
Thorsten
Mit stylisch meine ich einfach strukturiert, also zeilenumbrüche sowie verschiedene farben, fett kursiv....
Pascal
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: formular daten stylisch in memo einfügen...

  Alt 16. Dez 2005, 19:16
Ja, ist schon ok. Das habe ich mir dann, nach dem Lesen deines Eingangthreads auch gedacht. Nur ist stylisch richtig und gibt das überhaupt?

Man kann sich doch nicht einfach Wörter ausdenken und dann schreiben was man eigentlich meint. Wie wäre es mit einem Wort, das dann auch das beschreibt, was man meint.

Naja, ist auch egal. Ich wollt nur mal fragen.

Nichts für ungut
Thorsten
  Mit Zitat antworten Zitat
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#7

Re: formular daten stylisch in memo einfügen...

  Alt 16. Dez 2005, 21:59
also ich denke ich kann das gut mit der funktion von jim_raynor lösen.
Nur jetzt bleibt immer noch die frage:
  • wie soll ich die zeilenumbrüche einfügen, so dass wenn eine ganze groupbox nicht ausgefüllt ist dass dann auch kein zeilenumbruch da ist?
  • was bedeuted das <> bei if edit1.Text<>'' then
  • wie soll ich so ein style am besten speichern um dann auch wieder auszuführen?
bitte helft mir

mfg headi
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#8

Re: formular daten an memo übergeben...

  Alt 16. Dez 2005, 22:03
1. Wenn du doppelte Leerzeilen löschen willst, kannst du einfach die einzelnen Zeilen am Ende durchgehen und doppelte Löschen.

Delphi-Quellcode:
// Minus zwei, da ich immer auf die nächste Zeile schaue
for Dummy:=Form2.RichEdit1.Lines.Count-2 downto 0 do
begin
  if (Form2.RichEdit1.Lines[Dummy]='') and (Form2.RichEdit1.Lines[Dummy+1]='') then
    Form2.RichEdit1.Lines.Delete(Dummy)
end;
2. <> = unglich also das gleiche wie if not (Edit1.Text='') then ...
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#9

Re: formular daten an memo übergeben...

  Alt 16. Dez 2005, 22:22
Zitat von jim_raynor:
1. Wenn du doppelte Leerzeilen löschen willst, kannst du einfach die einzelnen Zeilen am Ende durchgehen und doppelte Löschen.

Delphi-Quellcode:
// Minus zwei, da ich immer auf die nächste Zeile schaue
for Dummy:=Form2.RichEdit1.Lines.Count-2 downto 0 do
begin
  if (Form2.RichEdit1.Lines[Dummy]='') and (Form2.RichEdit1.Lines[Dummy+1]='') then
    Form2.RichEdit1.Lines.Delete(Dummy)
end;
2. <> = unglich also das gleiche wie if not (Edit1.Text='') then ...
Ja also das mit den leerzeichen kann ich ja mit

if (TrimLeft(Edit.Text) = 'then machen.

Die frage ist ja wie mache ich das mit den zeilen umbrüche...
hmmm... ich versuche hier das nochmals zu erklären:


also ich habe drei groupbox und nach jeder kommt eine lehre zeile also ein zeilenumbruch

-------------
groupbox1
-------------
leere zeile1
-------------
groupbox2
-------------
leere zeile2
-------------
groupbox3
-------------
leere zeile3
-------------


so ich habe jetzt in jeder groupbox felder, wenn jetzt am schluss kein feld in einer groupbox ausgefüllt ist, wird dieses nich miteingezogen, im beispiel jetzt kein feld von groupbox2 hat einen inhalt das bedeuted groupbox2 fällt weg...

-------------
groupbox1
-------------
leere zeile1
-------------
-------------
leere zeile2
-------------
groupbox3
-------------
leere zeile3
-------------

da jetzt groupbox2 fehlt kommen leere zeile1 und 2 aufeinander.
ich möchte jetzt da aber nur eine leere zeile.


so ich hoffe ihr habt das so verstanden.


mfg headi
Pascal
  Mit Zitat antworten Zitat
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#10

Re: formular daten an memo übergeben...

  Alt 17. Dez 2005, 10:33
Sieh die mal die Property Delphi-Referenz durchsuchenControls bzw. Delphi-Referenz durchsuchenComponents an. Damit kannst du durch die Unterkomponenten von deiner Groupbox iterieren. Damit sparst du dir das "von Hand abfragen" aller deiner Edits.
Delphi-Quellcode:
const Prefixes: array[0..???] of string = ('Name', 'Vorname', ...);
var i,j:integer;
begin
  j := 0;
  for i := 0 to (Groupbox1.ControlCount - 1) do // Controls in Groupbox1 durchlaufen
    if Groupbox1.Controls[i] is TEdit then begin // Nachsehen ob es ein Editfeld ist
      AddBBCode(Prefixes[j], (Groupbox1.Controls[i] as TEdit).Text);
      // Wenn ja, mit der Prozedur von jim_raynor hinzufügen
      inc(j); // Und nächstes mal den nächsten Prefix-String nehmen
    end;
end;
In das array Prefixes schreibst du alle "Datenbezeichner" rein. Ist natürlich noch nicht ganz druckreif der Code, aber ich denke wenn du das überhaupt so machen möchtest, müsstest du es relativ leicht auf deine Bedürfnisse (insbesondere mehrere Groupboxes) anpassen können.
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:37 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