[Gelöst] Funktion um "Felder" Fett darzustellen

1. August 2007 15:00

Hi,

ich benutze folgenden Code um Felder Fett darzustellen:

Code:
IF Code <> '' THEN BEGIN
  NewLength := (STRLEN(Code)-2);
  IF NewLength > 0 THEN BEGIN
    NewString := COPYSTR(Code, STRLEN(Code)-2,2);
    IF (NewString = '--') THEN  BEGIN
      CurrForm.Code.UPDATEFONTBOLD(TRUE);
    END;
  END;
END;


In diesem Fall ist Code das Feld Code...

Der Code steht im Trigger ONFormat...

Da ich diesen Code in mehrern OnFormat Trigger jeweils für das jeweilige Feld benutze, würde ich das gerne als Funktion zusammenfassen, weiß aber nicht wie die Parameter Übergabe aussehen soll.

Oder bin grad wieder zu doof dafür ?

:cry:

Danke...
Zuletzt geändert von elTorito am 1. August 2007 17:09, insgesamt 1-mal geändert.

1. August 2007 15:07

(Irgendwie können die Bilder deiner Signatur nicht dargestellt werden)

Schreibe eine Funktion in deiner Tabelle, z.B. namens FettDrucken mit dem Rückgabewert boolean.
Inhalt:
Code:
IF Code <> '' THEN BEGIN
  NewLength := (STRLEN(Code)-2);
  IF NewLength > 0 THEN BEGIN
    NewString := COPYSTR(Code, STRLEN(Code)-2,2);
    IF (NewString = '--') THEN 
       EXIT(TRUE); 
  END;
END;

EXIT(FALSE)


Nun schreibst du in die OnFormat-Trigger
Code:
IF FettDrucken THEN
  CurrForm.Code.UPDATEFONTBOLD(TRUE);


bzw. nur
Code:
CurrForm.Code.UPDATEFONTBOLD(FettDrucken);

1. August 2007 15:21

hmm.
Komme mit dein Code nicht so ganz klar...

Also hier mal der Code aus dem OnFormat Trigger meiner beiden FormularFelder:


Code:
IF Code <> '' THEN BEGIN
  NewLength := (STRLEN(Code)-2);
  IF NewLength > 0 THEN BEGIN
    NewString := COPYSTR(Code, STRLEN(Code)-2,2);
    IF (NewString = '--') THEN  BEGIN
      CurrForm.Description.UPDATEFONTBOLD(TRUE);
    END;
  END;
END;


Code:

IF Code <> '' THEN BEGIN
  NewLength := (STRLEN(Code)-2);
  IF NewLength > 0 THEN BEGIN
    NewString := COPYSTR(Code, STRLEN(Code)-2,2);
    IF (NewString = '--') THEN  BEGIN
      CurrForm.Code.UPDATEFONTBOLD(TRUE);
    END;
  END;
END;




Folgendes funktioniert NICHT! (wegen Überlauf bei Konvertierung von Text to Code) Deswegen habe ich den Code in die jeweiligen OnFormat Trigger quasi kopiert , die einzigste Zeile die sich ändert ist die mit UPDATEFONTBOLD

Code:

IF Code <> '' THEN BEGIN
  NewLength := (STRLEN(Code)-2);
  IF NewLength > 0 THEN BEGIN
    NewString := COPYSTR(Code, STRLEN(Code)-2,2);
    IF (NewString = '--') THEN  BEGIN
      CurrForm.Code.UPDATEFONTBOLD(TRUE);
      CurrForm.Description.UPDATEFONTBOLD(TRUE);
    END;
  END;
END;

1. August 2007 15:46

Hm warum der Textüberlauf kommt, ist mir an der Stelle nicht so wirklich klar (das müsste ich debuggen),

aber hier die Änderung deines OnFormat-Triggers:
Code:
CurrForm.Textboxname.UPDATEFONTBOLD(FettDrucken);


In jeder verwendeten Textbox musst du dann Textboxname durch eben den jeweiligen Textboxnamen ersetzen, laut deinem vorherigen Beitrag also
- Code oder
- Description

Evlt. kommt der Fehler dadurch, dass du der Box den Feldnamen gegeben hast. Benenne doch die Boxen um in BoxCode und BoxDescription und verwende diese Namen im Quelltext.
Weiß aber nicht, ob sich das auswirkt!

1. August 2007 17:09

Code:
CurrForm.Textboxname.UPDATEFONTBOLD(FettDrucken);


Ja. das war das wonach ich gesucht habe *g* den Aufruf ... *kopfgegenwand*

Viele Dank :oops: