Einzelnen Beitrag anzeigen

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