Wywalanie niepotrzebnych badziewi z obrazka

0

var
i,i2,o : integer;
begin
progressbar1.Max := image1.Width;
for i:=0 to image1.Width do
beginpoczątek 2
progressbar1.Position := i;
for i2:=0 to image1.Height do
begin
początek 1
*process alias list

for o:=0 to memo1.lines.count - 1 do *check alias list
begin

if image1.Canvas.Pixels[i,i2] = stringtocolor(memo1.lines[o]) then
begin

end else
begin
image1.Canvas.Pixels[i,i2] := speedbutton15.Font.Color;
end;

end;end of alias list
end;
koniec 1

end; //koniec 2
progressbar1.Max := 100;
progressbar1.Position := 0;
end;

teraz tak:

wlanijcie do memo takie linijki:

clblack
clred

teraz ustawice sobie font w speedbuttonie (kolor) na clmaroon; :)

następnie zrobicie sobie jakis mały obrazek (100x100) i tam narysujcie czerwoną kreskę i gdzieś indziej czarną, potem np. narysujcie zielone kółko. a jako background w tym obrazku dajcie różowy :]]]]]]]]]]]]

Teraz jebn***ie ten obrazekdo IMAGE1 i sprawdzcie tamtą procedurę :)

Powinno zostać tylko: czarna i czerwona kreska a tło powinno być bordowe czy jakoś tak (clmaroon).

TERAZ PYTANIE - DLACZEGO TO NIE DZIAŁA???????????????????????????????

0

A o co chodzi w tej linijce kodu
image1.Canvas.Pixels[i,i2] := speedbutton15.Font.Color;
na kiego ten speedbutton15 i kolor jego czcionki hmm?-------[ Delphi 6 Rulez 4 Ever!, przynajmniej do czasu gdy naucze sie C++ :) ]------

0

Hehehe rozgrylem czemu to niedziala :)
Wiec dzial jak masz tylko jeden wpis w Memo
A jak juz masz wiecej tych wpisow to:
Masz wtedy petle 2 razy. przy o=0 program sprawdza pierwszy wpis clblack i zamienia zostawia go bez zmiany, przy 0=1 porgram sprawza ten sam piksel, ale juz dla wpisu clred, a ze ten piksel nie jest red tylko black to program zamienia go na speedbuton15.font.color - no i to by bylo tyle. Wiec musisz to poprawic aby gdy juz prog znajdzie piksel pasujacy to niech go nie zaminia, a dalesz sprawdzanie listy przerwie i przejdzie do nastepnego piksela. Mam nadzieje ze skumales o co mi tu chodzi. :-) -------[ Delphi 6 Rulez 4 Ever!, przynajmniej do czasu gdy naucze sie C++ :) ]------

0

Sheitar pomóżżżżżżżżżżżżżżżżżżżż!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

0

Dobrze dzialajacy kod przy twoich zalozeniach bedzie wygladal tak:

procedure TForm1.Button1Click(Sender: TObject);
var
i,i2,o : Integer;
E: Boolean;
begin
Progressbar1.Max:=Image1.Width;
for i:=0 to Image1.Width-1 do
begin
Progressbar1.Position:=i;
for i2:=0 to Image1.Height-1 do
begin
E:=False;
for o:=0 to Memo1.Lines.Count - 1 do
begin
if Image1.Canvas.Pixels[i,i2]=StringToColor(Memo1.Lines.Strings[o]) then
begin
E:=True;
end;
end;
if not E then Image1.Canvas.Pixels[i,i2]:=SpeedButton15.Font.Color;
end;
end;
Progressbar1.Max:=100;
Progressbar1.Position:=0;
end;

-------[ Delphi 6 Rulez 4 Ever!, przynajmniej do czasu gdy naucze sie C++ :) ]------

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0