![]() |
Font.Style ins Clientdataset Laden
Hallo Habe eine Datenbank mit nem Clientdataset und ner Datasource und möchte nun von einem TButton die Eigenschaft Font.style in die DB laden.
Delphi-Quellcode:
Das und alles andere habe ich versucht. Ich kriegs einfach nicht hin.
clientdataset1.FieldByName('Fontstyle').AsBoolean:= Schaltflaeche.Font.Style;
Hat jemand ne lösung??? |
AW: Font.Style ins Clientdataset Laden
ein FontStyle ist ja auch kein Boolean.
Was du machen kannst ist den String zu speichern den auch die IDE dir anzeigt (also das [fsBold ...]) Gugst du mal diesen ![]() |
AW: Font.Style ins Clientdataset Laden
Ich habe es auch mit .asstring versucht aber dort kann ich dann nach Schaltflaeche.font. <-- kein style einfügen.
|
AW: Font.Style ins Clientdataset Laden
Zitat:
Delphi-Quellcode:
Falls du nicht gleich verstehst, was ich hier mache: Ich hab ein PopUpMenü, das verschiedene Einträge für Schriftstyles enthält: Normal, Fett, Kursiv, ULine. Diese Einträge können nun einen Haken haben (checked) oder auch nicht. Analog dazu kannst du dir deine Boolean-Felder in der Tabelle vorstellen. Das Normal-Feld kannst du natürlich weglassen, das definiert sich ja schon dadurch, daß eines der anderen Felder True ist. Alles klar?
procedure TFormMain.Popup_RichEdPopup(Sender: TObject);
begin IF DBRichEd_Inhalt.SelAttributes.Style = [] THEN BEGIN PuP_Red_Normal.Checked := TRUE; PuP_Red_Fett.Checked := FALSE; PuP_Red_Kursiv.Checked := FALSE; PuP_Red_ULine.Checked := FALSE; END; IF DBRichEd_Inhalt.SelAttributes.Style = [fsBold] THEN BEGIN PuP_Red_Normal.Checked := FALSE; PuP_Red_Fett.Checked := TRUE; PuP_Red_Kursiv.Checked := FALSE; PuP_Red_ULine.Checked := FALSE; END; IF DBRichEd_Inhalt.SelAttributes.Style = [fsItalic] THEN BEGIN PuP_Red_Normal.Checked := FALSE; PuP_Red_Fett.Checked := FALSE; PuP_Red_Kursiv.Checked := TRUE; PuP_Red_ULine.Checked := FALSE; END; IF DBRichEd_Inhalt.SelAttributes.Style = [fsUnderline] THEN BEGIN PuP_Red_Normal.Checked := FALSE; PuP_Red_Fett.Checked := FALSE; PuP_Red_Kursiv.Checked := FALSE; PuP_Red_ULine.Checked := TRUE; END; IF DBRichEd_Inhalt.SelAttributes.Style = [fsBold,fsItalic] THEN BEGIN PuP_Red_Normal.Checked := FALSE; PuP_Red_Fett.Checked := TRUE; PuP_Red_Kursiv.Checked := TRUE; PuP_Red_ULine.Checked := FALSE; END; IF DBRichEd_Inhalt.SelAttributes.Style = [fsBold,fsUnderline] THEN BEGIN PuP_Red_Normal.Checked := FALSE; PuP_Red_Fett.Checked := FALSE; PuP_Red_Kursiv.Checked := FALSE; PuP_Red_ULine.Checked := TRUE; END; IF DBRichEd_Inhalt.SelAttributes.Style = [fsItalic,fsUnderline] THEN BEGIN PuP_Red_Normal.Checked := FALSE; PuP_Red_Fett.Checked := FALSE; PuP_Red_Kursiv.Checked := TRUE; PuP_Red_ULine.Checked := TRUE; END; IF DBRichEd_Inhalt.SelAttributes.Style = [fsBold,fsItalic,fsUnderline] THEN BEGIN PuP_Red_Normal.Checked := FALSE; PuP_Red_Fett.Checked := TRUE; PuP_Red_Kursiv.Checked := TRUE; PuP_Red_ULine.Checked := TRUE; END; end; |
AW: Font.Style ins Clientdataset Laden
Da
![]() Am einfachsten ist es aber - weil es ein Set ist - den Wert in einen Integer zu überführen.
Delphi-Quellcode:
Schon brauchen wir uns nicht mehr fragen, wie bekommen wir den TFontStyle in die Datenbank, sondern einen Integer-Wert.
var
FontStyleAsInt : integer; begin // in einen Integer FontStyleAsInt := Integer( MyFont.Style ); // und wieder zurück Integer( MyFontStyle ) := FontStyleAsInt; end; @Perlsau Wenn ich das machen sollte, dann würde mir spontan das hier einfallen
Delphi-Quellcode:
begin
PuP_Red_Normal.Checked := ( DBRichEd_Inhalt.SelAttributes.Style = [] ); PuP_Red_Fett.Checked := ( fsBold in DBRichEd_Inhalt.SelAttributes.Style ); PuP_Red_Kursiv.Checked := ( fsItalic in DBRichEd_Inhalt.SelAttributes.Style ); PuP_Red_ULine.Checked := ( fsUnderline in DBRichEd_Inhalt.SelAttributes.Style ); end; |
AW: Font.Style ins Clientdataset Laden
Man kann sich das Set auch via RTTI in einen String konvertieren lassen.
|
AW: Font.Style ins Clientdataset Laden
Zitat:
|
AW: Font.Style ins Clientdataset Laden
Nur das Normal würde ich besser weglassen, daß es eine "nutzlose" doppelte Information ist.
Nicht nur nutzlos, sondern glatt wiedersprüchlich, denn was ist, wenn Normal mal True ist und irgendeines der Anderen Felder auch? |
AW: Font.Style ins Clientdataset Laden
Also habe gerade das Popupmenu erstellt aber er ändert den Haken nich von normal auf Kursiv oder fett.
|
AW: Font.Style ins Clientdataset Laden
Zitat:
"Das Normal-Feld kannst du natürlich weglassen, das definiert sich ja schon dadurch, daß eines der anderen Felder True ist." Natürlich wird das Normal zum Abspeichern in der DB nicht benötigt. Da ich jedoch ein Popupmenü beschrieben habe, das den Style eines selektieren Textes wiedergeben soll, gehörte dort das Normal dazu. Oder mit anderen Worten: Am späten Abend neigt man häufig zum Drüberlesen, so daß einem wichtige Details entgehen können. Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz