Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Font.Style ins Clientdataset Laden (https://www.delphipraxis.net/177948-font-style-ins-clientdataset-laden.html)

Natcree 7. Dez 2013 22:05

AW: Font.Style ins Clientdataset Laden
 
Weiss ich auch nicht hmmm ????

Habe mal das Versucht
Delphi-Quellcode:
FontStyleAsInt := integer(Schaltflaeche.Font.Style);
Zeigt mir aber invalid typcast an

Perlsau 7. Dez 2013 22:19

AW: Font.Style ins Clientdataset Laden
 
Ich geb's auf ... :(

Natcree 7. Dez 2013 22:28

AW: Font.Style ins Clientdataset Laden
 
nein Bitte nicht....


Über diesen schnipsel lade ich einen Button aus der DB

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
clientdataset1.LoadFromFile('C:\Delphi Progs\Menü 2\schaltflaeche.xml');
    clientdataset1.First;
    repeat
    Schaltflaeche                := TButton.Create(Form1);
    Schaltflaeche.Name:= clientdataset1.FieldValues['name'];
    Schaltflaeche.Caption:= clientdataset1.FieldValues['Caption'];
    Schaltflaeche.top:= clientdataset1.FieldValues['top'];
    Schaltflaeche.Left := clientdataset1.FieldValues['left'];
    Schaltflaeche.Width := clientdataset1.FieldValues['Width'];
    Schaltflaeche.Font.Style     := integer(Schaltflaeche.Font.Style);//Hier sagt er invalid Typcast
    Schaltflaeche.parent         := Self;
    Schaltflaeche.PopupMenu      := popupmenu1;
    Schaltflaeche.OnContextPopup := SchaltflaecheContextPopup;
    Schaltflaeche.OnMouseDown    := SchaltflaecheMouseDown;
    Schaltflaeche.OnMouseMove    := SchaltflaecheMouseMove;
    Schaltflaeche.OnMouseup      := SchaltflaecheMouseup;
    Clientdataset1.Next;
    until CLientdataset1.Eof;
    Umbenennen := nil;
end;

Und dann will ich wärend der Laufzeit Buttons erstellen und speicher sie in die DB
hiermit

Delphi-Quellcode:
procedure TForm1.SchaltflaecheHinzufuegen1Click(Sender: TObject);

begin
    Schaltflaeche               := TButton.Create(Form1);
    Schaltflaeche.Name          := 'Schaltflaeche'+inttostr(clientdataset1.RecordCount+1);
    Schaltflaeche.Caption       := Schaltflaeche.name;
    Schaltflaeche.Parent        := Self;
    Schaltflaeche.Top           := 50;
    Schaltflaeche.Width         := 100;
    Schaltflaeche.Left          := 50;
    Schaltflaeche.Font.Style    :=[fsbold];
    Schaltflaeche.PopupMenu     := PopupMenu1;
    Schaltflaeche.OnContextPopup := SchaltflaecheContextPopup;
    Schaltflaeche.OnMouseDown   := SchaltflaecheMouseDown;
    Schaltflaeche.onMouseMove   := SchaltflaecheMouseMove;
    Schaltflaeche.onMouseUp     := SchaltflaecheMouseUp;
    clientdataset1.Insert;
    Clientdataset1.FieldByName('name').AsString:= Schaltflaeche.name;
    clientdataset1.FieldByName('Caption').AsString:=Schaltflaeche.Caption;
    clientdataset1.FieldByName('top').AsInteger:= Schaltflaeche.top;
    clientdataset1.FieldByName('left').AsInteger:= Schaltflaeche.Left ;
    clientdataset1.FieldByName('width').AsInteger:= Schaltflaeche.width ;
    clientdataset1.FieldByName('Height').AsInteger:= Schaltflaeche.Height ;
    clientdataset1.FieldByName('Fontname').AsString:= Schaltflaeche.font.Name ;
    clientdataset1.FieldByName('Fontsize').AsInteger:= Schaltflaeche.Font.Size ;
    clientdataset1.FieldByName('Fontstyle').AsInteger:=//???
    Clientdataset1.post;
end;

himitsu 7. Dez 2013 22:50

AW: Font.Style ins Clientdataset Laden
 
Zitat:

Zitat von Natcree (Beitrag 1238909)
Habe mal das Versucht
Delphi-Quellcode:
FontStyleAsInt := integer(Schaltflaeche.Font.Style);
Zeigt mir aber invalid typcast an

Wie lautet denn die genaue Fehlermeldung?

Nja, entweder man nimmt Ord, daß vom Compiler in seiner größe angepasst wird, oder du mußt einen Integer.Typ nehmen, der genau so groß ist, in Bytes, wie der umzuwandelnde Typ.

Natcree 7. Dez 2013 22:58

AW: Font.Style ins Clientdataset Laden
 
Schaltflaeche Hinzufuegen.click wird dann während der Laufzeit ausgeführt. Es wird ein TButton erstellt und anschliessend diese daten in eine xml abgespeichert. Nunmehr kann mann später diese button über xml laden und auch wenn nötig bearbeiten.

Mousedown und move....... sind die Proceduren die der Button dann ausführen kann.

Wie gesagt er zeigt mir in der genannten reihe invalid typcast an.

Natcree 8. Dez 2013 00:01

AW: Font.Style ins Clientdataset Laden
 
So Ich denke ich Habe Jetzt eine Lösung Gefunden

Zum laden aus der XML

Geht der Code

Delphi-Quellcode:
var
  FontWertAusXml: Byte;
  FontStyle: TFontStyles;
begin
 FontWertAusXml := StrToInt(clientdataset1.FieldByName('Fontstyle').Asstring);
 Move(FontWertAusXml, FontStyle, SizeOf(FontStyle));
 Schaltflaeche.Font.Style := FontStyle;
end;

Zum Speichern in die XML

Geht der Code

Delphi-Quellcode:
var
 FontWertInXml: Byte;
 FontStyle: TFontStyles;
begin
 FontStyle := Schaltflaeche.Font.Style;
 Move(FontStyle, FontWertInXml, SizeOf(FontWertInXML));
 Clientdataset1.FieldByName('Fontstyle').Asstring:= IntToStr(FontWertInXml);
end;
Der Tip mit den Bytes war Supi wieder etwas dazugelernt.

Ihr Seid die Besten

:-D:-D:-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 Uhr.
Seite 2 von 2     12   

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