AGB  ·  Datenschutz  ·  Impressum  







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

Ini-Wert nicht als string einfügen

Ein Thema von Erutan · begonnen am 28. Feb 2014 · letzter Beitrag vom 2. Mär 2014
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Ini-Wert nicht als string einfügen

  Alt 1. Mär 2014, 00:42
@Popov

Generell ist es eh nicht ratsam den Code so direkt ineinander zu weben.
Ein bischen mehr Abstraktion und das Problem von morgen (Beschränkung der Ini-Datei wird relevant) ist spätestens übermorgen gelöst (statt INI jetzt ClientDataSet) und der Rest bekommt das gar nicht mit, weil egal
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Erutan

Registriert seit: 16. Mär 2013
71 Beiträge
 
Delphi 7 Professional
 
#2

AW: Ini-Wert nicht als string einfügen

  Alt 1. Mär 2014, 01:17
Boaahh...alles Nachtarbeiter

@Volker
Vielen Dank. Ja, ist verständlich bzw. habe ich kappiert. Falls es aber irgendeinen anderen Weg gibt, dann wäre das superklassetoll, denn es sind insgesamt 20 Felder mit jeweils 20 Werten. Ich müsste also 400 Werte ändern.

@Sir Rufo
Zitat:
Nun ja, es gibt da auch noch die Möglichkeit von "Variablen" wie diese auch in der Delphi IDE benutzt werden.
markieren
Code:
F1W=$(vorname) $(nachname)
Den Text parsen, den Variablennamen bestimmen und dann durch den jeweiligen Wert ersetzen.
Ich habe leider keine Idee wie ich das umsetzen soll. Kannst Du mir ein Beispiel geben?

Zitat:
Generell ist es eh nicht ratsam den Code so direkt ineinander zu weben.
Hihi, wenn Du wüßtest welche seltsamen Umwege ich manchmal mangels ausreichender Programmierkenntnisse gehen muss.

Die Werte zu den eizelnen Feldern gelangen z.B. in die Ini indem ich hinter einer ComboBox die Captions (unsichtbarer) Labels bei einem OnChange-Ereignis ändere. Also: Ich trage in ein Editfeld F1 ein, daß das entsprechende Formularfeld "name" heißt und wähle dahinter in einer ComboboxF1 aus, daß es sich um Vor- und Zunamen handelt. Dadurch wird die Caption eines dahinter liegenden Labels entsprechend geändert und dieser Wert wird dann in die Ini gespeichert.

...und ich bin total stolz, daß mir diese ösung eingefallen ist

Grüße
Hoger
Holger
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#3

AW: Ini-Wert nicht als string einfügen

  Alt 1. Mär 2014, 02:29
Hallo,

ich habe leider immer noch ein Problem, Dein Problem zu verstehen.

So wie ich es sehe: Du möchtest verschiedene URLs automatisiert aufrufen, die möglichen Eingabefelder aus einer INI-Datei füttern und letztlich das Form abschießen - soweit korrekt?. Dabei sind die Daten eigentlich immer die selben oder? (Dein Name, Deine eMail-Adresse ändert sich nicht) nur die unterschiedlichen Anbieter verlangen mal mehr mal weniger Info/Daten (soweit korrekt?). Wenn dem so ist, dann die entsprechenden Daten in der INI ablegen (z. B. in der Section z. B. http://openpr.de/news/einstellen.html) und bei Bedarf entsprechend auslesen und den zugehörigen Controls (TEdit what so ever) zuweisen.
Code:
[http://openpr.de/news/einstellen.html]
F1N=name
F1W=Michel aus Lönneberga
F2N=email
F2W=michel@loenneberga.sw
Code:
[http://iregendeineandereseite.html]
F1N=somename
F1W=Michel Swenson
F2N=mailto
F2W=michel@loenneberga.sw
Soweit noch verständlich?

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Erutan

Registriert seit: 16. Mär 2013
71 Beiträge
 
Delphi 7 Professional
 
#4

AW: Ini-Wert nicht als string einfügen

  Alt 1. Mär 2014, 02:49
Hi Volker,

ich verstehe was Du meinst.
Geht aber leider nicht.

Ich schreibe Pressemitteilungen nicht nur für mich, sondern auch noch für 2 Vereine. Die Kontaktdaten sind jeweils andere. Daher kann ich die nicht fest in einer Ini ablegen. Ganz zu schweigen von den Texten, die sich ja auch ändern.

Das Problem hast Du genau erwischt. Manche Presseverteiler wollen Vor- und Nachnamen separat, manche wollen beides in einem Feld, einige wollen PLZ und Ort separat, andere beides in einem Feld u.s.w.

Ich kann in der Ini also nur bestimmen was generell abgefrgt wird und die eigentlichen Informationen dann aus einem Formular ziehen.

Ich bin jetzt gerade dabei das Ganze auf Deine Methode umzustellen, die Du etwas weiter oben genannt hast. Finde ich gut. Das bißchen Arbeit tut ja nicht weh.

Allerdings habe ich da meine liebe Not.

Eine erste funktion sieht folgendermaßen aus:

Delphi-Quellcode:
function VorundZuname (EditVorname, EditNachname: TEdit) : string;
begin
  Result := EditVorname.Text + ' ' + EditNachname.Text;
end;
Das Problem entsteht beim Einfügen von VorundZuname.

Delphi-Quellcode:
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
  var
  ini: TInifile;
  filename: String;

begin
filename := ExtractFilePath(ParamStr(0)) + 'einstellungen.ini';
ini := TIniFile.Create(filename);

  
   case Ini.ReadInteger (ComboBoxPresseverteiler.Text, 'F1W', 0) of
  1: if FillForm(WebBrowser1, Ini.ReadString(ComboBoxPresseverteiler.Text, 'F1N', ''), VorundZuname) = False then ShowMessage('Fehler. Formular oder Formularfeld nicht gefunden');
    end ;

  Ini.Free;
  end;
Der Compiler sagt: Not enough actual parameters und setzt den Cursor hinter die Klammer nach VorundZuname.
Holger
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#5

AW: Ini-Wert nicht als string einfügen

  Alt 1. Mär 2014, 03:03
Hallo,

Zitat:
Der Compiler sagt: Not enough actual parameters und setzt den Cursor hinter die Klammer nach VorundZuname
Na, das ist schon klar! Wenn Du die Funktion VorundZuname (EditVorname, EditNachname: TEdit) : string; deklarierst, dann sollten schon auch zwei Parameter übergeben werden, also ein:
if FillForm(WebBrowser1, Ini.ReadString(ComboBoxPresseverteiler.Text, 'F1N', ''), VorundZuname ('Michel', 'Lönneberga')) then soltte es tun

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Erutan

Registriert seit: 16. Mär 2013
71 Beiträge
 
Delphi 7 Professional
 
#6

AW: Ini-Wert nicht als string einfügen

  Alt 1. Mär 2014, 03:18
Hmmm...mir fällt gerade auf, daß ich gar keine Funktionen brauche wenn ich die Werte in der Ini nur als Weiche verwende. Ich kann dann ja genauso gut auch die Editfelder selber eintragen.

Das habe ich jetzt mal versucht und es klappt.
Wenn F1W=1 nimm die Werte aus EditVorname plus EditNachname, wenn F1W=2 nimm nur den Wert aus EditVorname, wenn F1W=3 nimm nur den Wert aus EditNachname u.s.w.

Insofer wäre mein Problem gelöst. Ist nur viel Arbeit.

Vielen Dank und schöne Grüße
Holger
Holger
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#7

AW: Ini-Wert nicht als string einfügen

  Alt 1. Mär 2014, 03:29
Hallo,

Zitat:
Hmmm...mir fällt gerade auf, daß ich gar keine Funktionen brauche wenn ich die Werte in der Ini nur als Weiche verwende. Ich kann dann ja genauso gut auch die Editfelder selber eintragen. [...]
Hab ich jetzt zwar nicht verstanden, aber das lassen wir jetzt mal gut sein.

Zitat:
[...] Insofer wäre mein Problem gelöst [...]
Fein. Und gute Nacht.


Gruß
Volker Zeller

Geändert von Volker Z. ( 1. Mär 2014 um 03:38 Uhr)
  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 03:05 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