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 2 von 2     12   
Headi

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

Re: formular daten an memo übergeben...

  Alt 17. Dez 2005, 12:16
Zitat von tigerman33:
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.
vielen dank wird ja immer besser, nur ist das bei mir so, dass nicht unbedingt alle edit felder in einer groupbox nacheinander kommen. Und abgesehen davon habe ich auch noch andere componenten in den groupboxen, z.b. combobox und memofeld

jetzt könnte man irgendwie vielleicht deine funktion so umbauen dass es alle diese drei compos überprüft, und dass ich dann aber doch noch von hand z.B. " AddBBCode('name', feld)" hinzufügen kann.
Gut wäre natürlich wenn ich irgendwie in kurzschreibweise alle felder die überprüft werden sollen hinzufügen kann.
Beispiel (edit1, edit2, edit3, edit4, combobox1, combobox2, memo1,)


Ich hoffe das kann man irgendwie einfach realisieren

mfg headi
Pascal
  Mit Zitat antworten Zitat
tigerman33

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

Re: formular daten an memo übergeben...

  Alt 17. Dez 2005, 13:59
Hmm, möglich ist es immer noch, aber es büßt einiges von seiner Eleganz ein
Delphi-Quellcode:
  function GetValue(AControl: TControl): string;
  begin
    // So und jetzt wird es hässlich:
    // Jeweils für das spezifische Control den richtigen Text raussuchen:
    Result := '';
    if (AControl is TEdit) then begin
      Result := (AControl as TEdit).Text;
      exit;
    end;
    if (AControl is TMemo) then begin
      Result := (AControl as TMemo).Text;
      exit;
    end;
    if (AControl is TCombobox) then
      if (AControl as TCombobox).ItemIndex <> -1 then begin
        Result := (AControl as TCombobox).Items[(AControl as TCombobox).ItemIndex];
        exit;
      end;
    end;
const Prefixes: array[0..???] of string = ('Name', 'Vorname', 'Straße', ...);
var i,j:integer;
begin
  j := 0;
  for i := 0 to (Groupbox1.ControlCount - 1) do // Controls in Groupbox1 durchlaufen
    with Groupbox1 do
      if (Controls[i] is TEdit) or
         (Controls[i] is TMemo) or
         (Controls[i] is TCombobox) then begin // Jetzt auf drei Sachen testen
        AddBBCode(Prefixes[j], GetValue(Controls[i])); // Die Funktion von oben aufrufen um den jeweils richtigen String zu erhalten
        inc(j); // Und nächstes mal den nächsten Prefix-String nehmen
      end;
end;
Zitat:
nicht unbedingt alle edit felder in einer groupbox nacheinander kommen
Ich verstehe leider nicht ganz, wie du das meinst. Aber falls es sich auf die Zuordnung mittels des j bezieht, könntest du in der Tag-property des jeweiligen Controls die passende Index-Position im Prefix-Array speichern, also z.B. Edit1 ist für den Namen und hat Edit1.Tag = 0, Edit2 ist für den Vornamen und hat Tag = 1, Combobox1 ist für die Straße und hat Tag = 2 etc.
Dann sähe die entsprechende Zeile so aus:
AddBBCode(Prefixes[Controls[i].Tag], GetValue(Controls[i])); // Wenn ja, mit der Prozedur von jim_raynor hinzufügen Um direkt abzuspeichern welche Komponenten überhaupt überprüft werden fällt mir jetzt nichts elegantes ein. Normalerweise packe ich solche Dinge immer in ein konstantes Array (wie oben das Prefix-Array), aber das funktioniert hier natürlich nicht.
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
Headi

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

Re: formular daten an memo übergeben...

  Alt 17. Dez 2005, 16:58
also meine form ist vielleicht so

edit1
edit2

groupbox1
|______edit3
|______edit4
|______edit5

und wenn ich das ausgeben möchte sieht das dann vielleicht so aus


edit1
edit2
edit3

Groupbox als titel
edit4
edit5


wenn ich das jetzt überprüfe, muss oben edit3 ja nicht überprüft werden,
da es dann bei der ausgabe sowieso nicht mehr unter groupbox ist.
könntest du mir deinen code vielleicht noch ein bisschen genauer erklären und wie ich den dann aufrufen kann?

Achja der sinn der ganzen sache ist ja zu überprüfen ob ein feld ausgefüllt ist und zu überprüfen ob
groupbox als titel überhaupt angezeigt werden muss.

gibts da nich irgendwas in dieser art:

Delphi-Quellcode:
if edit1, edit2, edit3, checkbox1, memo1 = standart then
varAusgabe:='';
else
varAusgabe:=groupBox1.caption+Alleausgefülltenfelder;
Ich denke man könnte da irgendwie alle ausgefüllten felder in einer stringlist speichern oder so...
hab da noch nicht so viel erfahrung in dieser weise

so vielen dank schon mal für deine mühe

mfg headi
Pascal
  Mit Zitat antworten Zitat
tigerman33

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

Re: formular daten an memo übergeben...

  Alt 17. Dez 2005, 17:13
Hallo headi,

jetzt wird es langsam kompliziert. Mein ursprünglicher Code ist darauf ausgerichtet, dass es sich nur um Edit-Felder handelt, die der Reihe nach hinzugefügt werden. Dann hast du mich darauf hingewiesen, dass auch andere Controls vorkommen können, das hat den Code schon mal unschöner gemacht. Und jetzt kommt noch hinzu, dass evtl die Reihenfolge "durcheinander" sein kann. Man kann den Code immer noch darauf anpassen, aber es wird noch einmal uneleganter werden. Sprich: vielleicht bin ich beim Posten damals einfach von falschen Voraussetzungen ausgegangen, und dieser Ansatz passt eigentlich gar nicht so gut zu deinem Problem. Aber ich mache dir einen Vorschlag: Poste doch einfach mal deinen Code (oder häng die entsprechende Unit an) und ich werd mal sehen, ob mir etwas einfällt, wie man das ganze evtl. ein bisschen kompakter machen kann.

PS: Wenn du postest, wäre auch ein Screenshot des entsprechenden Forms von Nutzen.
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
Headi

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

Re: formular daten an memo übergeben...

  Alt 17. Dez 2005, 17:55
Also ich habe mal schnell eine beispiel form erstellt (siehe anhang)
Die Ausgabe soll wie folgt geschehen:

[sieze=15]Name[/sieze]
vorschaubild
grösse

EXTRA INFORMATIONEN
Beschreibung:blabalbalbal du kannst mit diesem programm sehr viel machen...
Version:version2 beta5 build24

wie du siehst wenn ich beschreibung und version nicht ausfülle soll auch "EXTRA INFORMATIONEN" nicht dortstehen.
Naja halt so weiter...

Ich hoffe du verstehst nun was ich meine und kannst mir nochmals helfen

vielen dank nochmals für deine hilfe

mfg headi
Angehängte Dateien
Dateityp: zip beispielformular_542.zip (234,9 KB, 9x aufgerufen)
Pascal
  Mit Zitat antworten Zitat
tigerman33

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

Re: formular daten an memo übergeben...

  Alt 18. Dez 2005, 09:17
Für eine Oberfläche wie diese ist mein ursprünglicher Code kaum noch sinnvoll abzuwandeln. Da es sich ja auch nur um relativ wenige Komponenten handelt, ist es da vermutlich besser einfach alles "von Hand" einzutickern.
Solche Abkürzungen funktionieren ja immer nur, wenn jedesmal mehr oder weniger dasselbe getan werden muss. Aber hier ist ja alles unterschiedlich, ergo kann man das kaum automatisieren.

Naja, tut mir leid...
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 21:59 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