Avatar billede chadk Nybegynder
29. februar 2004 - 20:57 Der er 4 kommentarer og
2 løsninger

Baggrunds farve i memo

Hejsa. Hvordan laver jeg sårn at min memo læser fra en ini fil som så en værdi bestemmer via en # farve hva baggrunds farve på min nemo
Avatar billede athlon-pascal Juniormester
29. februar 2004 - 21:08 #1
Først: Vær _meget_ glad for, at jeg gider svare dig, du har en meget lav karma.
Prøv at læse kommentarerne på http://www.eksperten.dk/bruger.phtml?navn=chadk&option=karma og tænk over det - det er svært at få hjælp, hvis ingen gider hjælpe!
Prøv at bevise, at du fortjener en bedre karma :o)


Følgende er ikke testet:

function IsHtmlColorOK(st: String): Boolean;
var
  I: Integer;
begin
  Result := Length(st) = 7;
  if Result then
    Result := st[1] = '#';
  if Result then
    for I := 2 to Length(st) do
      if Result then
        Result := st[I] in ['0'..'9', 'A'..'F'];
end;

function HTMLColorToColor(st: String): TColor;
var
  Red, Green, Blue: Byte;
begin
  if not IsHtmlColorOK(st) then
  begin
    Result := clNone;
    Exit;
  end;
  Delete(st, 1, 1);
  Red := StrToInt('$' + Copy(st, 1, 2));
  Green := StrToInt('$' + Copy(st, 3, 2));
  Blue := StrToInt('$' + Copy(st, 5, 2));
  Result := RGB(Red, Green, Blue);
end;


procedure TForm1.FormCreate(Sender: TObject);´
var
  IniFile: TIniFile;
  IniFileName, HTMLColor: String;
begin
  IniFileName := 'c:\min_inifil.ini';
  IniFile := TIniFile.Create(IniFileName);
  try
    HTMLColor := AnsiUpperCase(IniFile.ReadString('Farver', 'Memo', ''));
    if IsHtmlColorOK(HTMLColor) then
      Memo1.Color := HTMLColorToColor(HTMLColor);
  finally
    IniFile.Free;
  end;
end;
Avatar billede hrc Mester
29. februar 2004 - 21:10 #2
Havde lidt svært ved at forstå dit spørgsmål men antager, at du gerne vil gemme din TMemos baggrundsfarve i en ini-fil og efterfølgende læse og sætte den igen.

Prøv det her:

// For at skrive farven til en inifil
  with TIniFile.Create('c:\test.ini') do
    try
      WriteString(Memo1.Name,'Color',ColorToString(Memo1.Color));
    finally
      Free;
    end; // try

// For at læse og sætte værdien igen
  with TIniFile.Create('c:\test.ini') do
    try
      Memo1.Color := StringToColor(ReadString(Memo1.Name,'Color',
                                  ColorToString(clWindow)));
    finally
      Free;
    end; // try
Avatar billede chadk Nybegynder
29. februar 2004 - 21:15 #3
Athlon i know. det med pointende holder endlig ik. havde - point og lukkede alle spørgsmålende og gav pointende til mig selv, trode at en admin havde trukket point fra mig fordig jeg er ret dårlig til og lukke spørgsmål.
Har også undskyldt i flere tråde
Avatar billede hrc Mester
29. februar 2004 - 21:18 #4
Dårlig karma eller ej, jeg smukkeserer lige mit svar en smule.

procedure TfrmMain.btnSaveToIniClick(Sender: TObject);
begin
  with TIniFile.Create('c:\test.ini') do
    try
      WriteString(Memo1.Name,'Color',ColorToString(Memo1.Color));
    finally
      Free;
    end; // try
end;

procedure TfrmMain.btnLoadIniAndSetClick(Sender: TObject);
begin
  with TIniFile.Create('c:\test.ini') do
    try
      Memo1.Color := StringToColor(ReadString(Memo1.Name,'Color',ColorToString(clWindow)));
    finally
      Free;
    end; // try
end;
Avatar billede chadk Nybegynder
29. februar 2004 - 21:26 #5
gode svar. 30 point til hver!
Avatar billede athlon-pascal Juniormester
29. februar 2004 - 21:31 #6
:o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester