/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Med FontDialog og INI file væges Font.Styl~
Fra : Monie Jacobsen


Dato : 05-02-04 07:21

Med FontDialog komponenten forsøger jeg,
at valge mellem forskellige Font.Style.
Og hente og gemme opsætning i INI file.

Memo1.Font.Style := [];
Memo1.Font.Style := [fsBold];
Memo1.Font.Style := [fsItalic];
Memo1.Font.Style := [fsBold, fsItalic];

Men får følgende fejlmeddelse:

[Error] Unit1.pas(226): Incompatible types: 'TFontStyles' and 'TCaption'

Se linje med fejlen *************

procedure TForm1.btnFontStylesClick(Sender: TObject);
var
FontStyle : Integer;
MyINI: TINIFile;
begin
FontDialog1.Execute;
FontStyle := FontStylesToInteger(FontDialog1.Font.Style);
MyINI := TINIFile.Create(PathToINIFile);

{Font Style}
//procedure WriteString(const Section, Ident, Value: String);
MyINI.WriteInteger('MinSektion', 'FontStyle', 0);

//function ReadString(const Section, Ident, Default: String): String;
Edit3.Text := MyINI.ReadString('MinSektion', 'FontStyle', 'Ikke fundet');

Memo1.Font.Style := Edit3.Text; ********* Her er fejlmeddelsen
end;

Mine Functioner, som jeg har forsøgt med.

function FontStylesToInteger(const Value : TFontStyles) : Integer;
begin
Result := pInteger(pFontStyles(@Value))^;
end;

function IntegerToFontStyles(const Value : Integer) : TFontStyles;
begin
Result := pFontStyles(pInteger(@Value))^;
end;

Håber du vil hjælpe med, at få proceduret til at virke!
--
Med venlig hilsen
Monie Jacobsen

My mail adress is
monie at sunwind dot dk



 
 
David A. D. Konrad (05-02-2004)
Kommentar
Fra : David A. D. Konrad


Dato : 05-02-04 12:05

"Monie Jacobsen" <post@sunwind.dk> wrote in message
news:4021e0f1$0$146$edfadb0f@dread11.news.tele.dk...
> Med FontDialog komponenten forsøger jeg,
> at valge mellem forskellige Font.Style.
> Og hente og gemme opsætning i INI file.
>
> Memo1.Font.Style := [];
> Memo1.Font.Style := [fsBold];
> Memo1.Font.Style := [fsItalic];
> Memo1.Font.Style := [fsBold, fsItalic];
>
> Men får følgende fejlmeddelse:
>
> [Error] Unit1.pas(226): Incompatible types: 'TFontStyles' and 'TCaption'
>
> Se linje med fejlen *************

(...)
> Mine Functioner, som jeg har forsøgt med.
>
> function FontStylesToInteger(const Value : TFontStyles) : Integer;
> begin
> Result := pInteger(pFontStyles(@Value))^;
> end;
>
> function IntegerToFontStyles(const Value : Integer) : TFontStyles;
> begin
> Result := pFontStyles(pInteger(@Value))^;
> end;
>
> Håber du vil hjælpe med, at få proceduret til at virke!
(...)

TFontStyle er jo et set, så jeg vil foreslå at oversætte settet til en
string og vice versa med delphi's typeinfo metoder GetEnumName/GetEnumValue,
f.eks

str:=GetEnumName(TypeInfo(TFontStyle),int(fsBold));

og omvendt

memo1.font.style:=memo1.font.style+GetEnumValue(TypeInfo(TFontStyle),'fsBold
');

Det burde være en masse eksempler på nettet - jeg ville gerne lave et
rigtigt eksempel men har ikke delphi installeret på den computer jeg sidder
ved pt...



Monie Jacobsen (05-02-2004)
Kommentar
Fra : Monie Jacobsen


Dato : 05-02-04 14:18

Tak David A. D. Konrad

Dit forslag, vil jeg lige arbejde med.
Jeg er nemlig ude i noget, jeg aldrig har arbejde med.

Rigtig mange tak for dit Tips

Med venlig hilsen
Monie Jacobsen

"David A. D. Konrad" <david_konrad@hotmail.com> skrev i en meddelelse
news:bvt80i$h3i$1@sunsite.dk...
> "Monie Jacobsen" <post@sunwind.dk> wrote in message
> news:4021e0f1$0$146$edfadb0f@dread11.news.tele.dk...
> > Med FontDialog komponenten forsøger jeg,
> > at valge mellem forskellige Font.Style.
> > Og hente og gemme opsætning i INI file.
> >
> > Memo1.Font.Style := [];
> > Memo1.Font.Style := [fsBold];
> > Memo1.Font.Style := [fsItalic];
> > Memo1.Font.Style := [fsBold, fsItalic];
> >
> > Men får følgende fejlmeddelse:
> >
> > [Error] Unit1.pas(226): Incompatible types: 'TFontStyles' and 'TCaption'
> >
> > Se linje med fejlen *************
>
> (...)
> > Mine Functioner, som jeg har forsøgt med.
> >
> > function FontStylesToInteger(const Value : TFontStyles) : Integer;
> > begin
> > Result := pInteger(pFontStyles(@Value))^;
> > end;
> >
> > function IntegerToFontStyles(const Value : Integer) : TFontStyles;
> > begin
> > Result := pFontStyles(pInteger(@Value))^;
> > end;
> >
> > Håber du vil hjælpe med, at få proceduret til at virke!
> (...)
>
> TFontStyle er jo et set, så jeg vil foreslå at oversætte settet til en
> string og vice versa med delphi's typeinfo metoder
GetEnumName/GetEnumValue,
> f.eks
>
> str:=GetEnumName(TypeInfo(TFontStyle),int(fsBold));
>
> og omvendt
>
>
memo1.font.style:=memo1.font.style+GetEnumValue(TypeInfo(TFontStyle),'fsBold
> ');
>
> Det burde være en masse eksempler på nettet - jeg ville gerne lave et
> rigtigt eksempel men har ikke delphi installeret på den computer jeg
sidder
> ved pt...
>
>



Monie Jacobsen (05-02-2004)
Kommentar
Fra : Monie Jacobsen


Dato : 05-02-04 15:50

Til David A. D. Konrad

Har forsøgt meget, men det lykkes mig ikke, at få det til at fungerer.

Får fejlmeddelserne:
[Error] Unit1.pas(233): Incompatible types
[Error] Unit1.pas(235): Incompatible types

Har husket: uses TypInfo

Du skrev: "jeg ville gerne lave et rigtigt eksempel " Dette vil jeg blive
meget glad for.

Målsætning:
Med FontDialog komponenten, at valge mellem forskellige:
1: Font Name.
2: Font Size
3: Font Style
4. Font Color.

Gemme de valgte Font'e opsætning i INI file,
for så sener nå programmet starter op igen, henter dem ind.

Dette vandt jeg ved søgning på Google.

Function StyleToString( styles: TFontStyles ): String;
var
style: TFontStyle;
Begin
Result := '[';
For style := Low(style) To High(style) Do Begin
If style IN styles Then Begin
If Length(result) > 1 Then
result := result + ',';
result := result + GetEnumname( typeInfo(TFontStyle), Ord(style));
End; { If }
End; { For }
Result := Result + ']';
End; { StyleToString }

Function StringToStyle( S: String ): TFontStyles;
Var
sl : TStringlist;
style: TfontStyle;
i : Integer;
Begin
Result := [];
If Length(S) < 2 Then Exit;

If S[1] = '[' Then
Delete(S, 1, 1);
If S[Length(S)] = ']' Then
Delete(S, Length(S), 1);
If Length(S) = 0 Then Exit;

sl:= TStringlist.Create;
try
sl.commatext := S;
For i := 0 To sl.Count-1 Do Begin
try
style := TFontStyle( GetEnumValue( Typeinfo(TFontStyle), sl[i] ));
Include( Result, style );
except
end;
End; { For }
finally
sl.free
end;
End; { StringToStyle }

På forhånden mange tak.

Med venlig hilsen
Monie Jacobsen

My mail adress is
monie at sunwind dot dk

"David A. D. Konrad" <david_konrad@hotmail.com> skrev i en meddelelse
news:bvt80i$h3i$1@sunsite.dk...
> "Monie Jacobsen" <post@sunwind.dk> wrote in message
> news:4021e0f1$0$146$edfadb0f@dread11.news.tele.dk...
> > Med FontDialog komponenten forsøger jeg,
> > at valge mellem forskellige Font.Style.
> > Og hente og gemme opsætning i INI file.
> >
> > Memo1.Font.Style := [];
> > Memo1.Font.Style := [fsBold];
> > Memo1.Font.Style := [fsItalic];
> > Memo1.Font.Style := [fsBold, fsItalic];
> >
> > Men får følgende fejlmeddelse:
> >
> > [Error] Unit1.pas(226): Incompatible types: 'TFontStyles' and 'TCaption'
> >
> > Se linje med fejlen *************
>
> (...)
> > Mine Functioner, som jeg har forsøgt med.
> >
> > function FontStylesToInteger(const Value : TFontStyles) : Integer;
> > begin
> > Result := pInteger(pFontStyles(@Value))^;
> > end;
> >
> > function IntegerToFontStyles(const Value : Integer) : TFontStyles;
> > begin
> > Result := pFontStyles(pInteger(@Value))^;
> > end;
> >
> > Håber du vil hjælpe med, at få proceduret til at virke!
> (...)
>
> TFontStyle er jo et set, så jeg vil foreslå at oversætte settet til en
> string og vice versa med delphi's typeinfo metoder
GetEnumName/GetEnumValue,
> f.eks
>
> str:=GetEnumName(TypeInfo(TFontStyle),int(fsBold));
>
> og omvendt
>
>
memo1.font.style:=memo1.font.style+GetEnumValue(TypeInfo(TFontStyle),'fsBold
> ');
>
> Det burde være en masse eksempler på nettet - jeg ville gerne lave et
> rigtigt eksempel men har ikke delphi installeret på den computer jeg
sidder
> ved pt...
>
>



Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409080
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste