ďťż

Ładny brzuch

Witam.
Uczę się tego języka i napisałem prosty edytor tekstu, ale mam błąd i nie wiem jak ustawić zmianę koloru tesktuprocedure TForm1.ComboBox1Change(Sender: TObject); begin memo1.Font.color:=strtoint(combobox2.Items[combobox2.itemindex]); end; end.

Link do zip'a projektu

To jest fragment odpowiadający za zmianę koloru, wiem że jest zły, ale nie wiem jak go napisać, dodałem itemsy, zielony, żółty i red. Nie działa

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Memo1: TMemo; ComboBox1: TComboBox; ComboBox2: TComboBox; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure ComboBox2Change(Sender: TObject); procedure ComboBox1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin memo1.copytoclipboard; end; procedure TForm1.Button2Click(Sender: TObject); begin memo1.CutToClipboard end; procedure TForm1.Button3Click(Sender: TObject); begin memo1.PasteFromClipboard end; procedure TForm1.Button4Click(Sender: TObject); begin memo1.lines.savetofile('C:\Documents and Settings\zsh\Moje dokumenty\text.txt'); end; procedure TForm1.ComboBox2Change(Sender: TObject); begin memo1.Font.size:=strtoint(combobox2.Items[combobox2.itemindex]); end; procedure TForm1.ComboBox1Change(Sender: TObject); begin memo1.Font.color:=strtoint(combobox2.Items[combobox2.itemindex]); end; end.
Użytkownik bercow edytował ten post 02 kwiecień 2007, 20:45


uzyj stringToColor

@migajek: a co to ma do rzeczy w tym programie???

@bercow: musisz sprawdzać, po kolei (bądź przez np. case'a) jaki kolor został wybrany na liście, i taką wartość (ale czytelną dla programu) ustawić w Memo.

(* oto przykład dla kolorów w twoim programie: czerwonego, zielonego, zółtego i znów czerwonego (red) *) procedure TForm1.ComboBox1Change(Sender: TObject); var c: TColor; begin case ComboBox2.ItemIndex of 0: c := clRed; 1: c := clGreen; 2: c := clYellow; 3: c := clRed else c := clBlack; end; Memo1.Font.Color := c; end;

A tak w ogóle, skoro chcesz robić coś takiego, polecam łatwiejszą metodę.
Wrzucasz na formę TFontDialog i Buttona. W procedurze przycisku dajif (FontDialog1.Execute) then Memo1.Font := FontDialog1.Font; :) Będzie prościej :P A jeśli chcesz same kolory zmieniać, pobaw się ColorDialog'iem ;)
Użytkownik DJ_ProG edytował ten post 03 kwiecień 2007, 15:58
Niby działa, ale nie do końca. Aby kolory zaskoczyły to trzeba zmienić czcionkę, i to też nie jest tak do końca, Zobaczcie rar.
http://szczep.pl/fotki/delphi_2.rar

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Memo1: TMemo; ComboBox1: TComboBox; ComboBox2: TComboBox; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure ComboBox2Change(Sender: TObject); procedure ComboBox1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin memo1.copytoclipboard; end; procedure TForm1.Button2Click(Sender: TObject); begin memo1.CutToClipboard end; procedure TForm1.Button3Click(Sender: TObject); begin memo1.PasteFromClipboard end; procedure TForm1.Button4Click(Sender: TObject); begin memo1.lines.savetofile('C:\Documents and Settings\zsh\Moje dokumenty\text.txt'); end; procedure TForm1.ComboBox2Change(Sender: TObject); begin memo1.Font.size:=strtoint(combobox2.Items[combobox2.itemindex]); end; procedure TForm1.ComboBox1Change(Sender: TObject); var c: TColor; begin case ComboBox2.ItemIndex of 0: c := clRed; 1: c := clGreen; 2: c := clYellow; else c := clBlack; end; Memo1.Font.Color := c; end; end.
Użytkownik bercow edytował ten post 03 kwiecień 2007, 19:02



@migajek: a co to ma do rzeczy w tym programie???
jesli w ComboBox'ie ma wpisaną nazwe koloru (clRed etc) to ma to calkiem sporo :>

jesli w ComboBox'ie ma wpisaną nazwe koloru (clRed etc) to ma to calkiem sporo :>

Jak dokładniej zastosować stringToColor.


if (FontDialog1.Execute) then Memo1.Font := FontDialog1.Font;
Nie robie tego, aby było łatwiej, tylko aby się nauczyć czegoś. Nie rozumiem dokładnie jak mam to zastosować, mógł byś jeszcze coś powiedzieć.
Użytkownik bercow edytował ten post 03 kwiecień 2007, 19:26

Jak dokładniej zastosować stringToColor.
a wpisac na google nie łaska? :>


Niby działa, ale nie do końca. Aby kolory zaskoczyły to trzeba zmienić czcionkę (...) OMG A czy myślisz czasami? Działałoby, gdybyś podpiął mój kod pod event poprawnego komponentu <_< - pewnie nie zrozumiesz, więc poprostu wklej kod w onchange ComboBox2.


jesli w ComboBox'ie ma wpisaną nazwe koloru (clRed etc) to ma to calkiem sporo :> Ale wiesz, w swoim przykładzie użył polskich nazw :P


Jak dokładniej zastosować stringToColor. Oprócz googla możesz jeszcze przeszukać to forum i poczytać FAQ Delphi.
A teraz do rzeczy: jeślibyś jako Itemy ComboBoxa dał angielskie nazwy, mógłbyś zrobić coś takiego:Memo1.Font.Color := StringToColor('cl'+ComboBox2.Items[ComboBox2.ItemIndex]);

Pozdrawiam.
PS bercow, przepraszam, jeśli Cię uraziłem, ale pisałem to w "lekkim" gniewie. Nie mam humoru.
Użytkownik DJ_ProG edytował ten post 03 kwiecień 2007, 21:08
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •