Lazarus 3.0 (2023.12.21.)
Letöltés

  • Oldal:
  • 1

TÉMA:

stringgrid kijelölés 2016 ápr. 01 08:30 #1951

  • JohnnyK
  • JohnnyK profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 78
  • Köszönetek: 16
Szívesen :)

stringgrid kijelölés 2016 ápr. 01 08:24 #1950

  • Trprogi
  • Trprogi profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 11
  • Köszönetek: 0
Köszönöm.

A hiba az volt, hogy én az összes többi után írtam a windowst. Most már működik.

Minden jót.
Zsolt

stringgrid kijelölés 2016 ápr. 01 06:47 #1949

  • JohnnyK
  • JohnnyK profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 78
  • Köszönetek: 16
Ne csak a windows unitot írd be, hanem hagyd meg azokat a unitokat, amiket már alapból ott találsz. A TBitMap működéséhez a Graphics unit kell, de azt alapból a project létrehozásakor már ott találod. Csak annyit kellene tenni, hogy a Windows szót az összes elé beírod a uses után, ezt szimbolizálja a:
uses windows, ...

stringgrid kijelölés 2016 ápr. 01 05:14 #1948

  • Trprogi
  • Trprogi profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 11
  • Köszönetek: 0
Üdv.

Ha beírom az uses után a windows-t akkor ez a hibaüzenet erre a sorra: aBitMap := TBitMap.Create;

unit1.pas(68,22) Error: identifier idents no member "Create"
unit1.pas(68,22) Fatal: Syntax error, ";" expected but "identifier CREATE" found
Zsolt

stringgrid kijelölés 2016 márc. 31 14:36 #1947

  • Gábor
  • Gábor profilkép
  • Adminisztrátor
  • Adminisztrátor
  • Hozzászólások: 499
  • Köszönetek: 86
Első tipp: kifelejtetted a uses szakaszból a windows unit nevét...
Hogyan kérdezzünk okosan? / Mit kell tennünk kérdezés előtt? -- Lazarus 3.0 -- FPC 3.2-- GNU/Linux 5.15.0 x86_64

stringgrid kijelölés 2016 márc. 31 13:36 #1946

  • Trprogi
  • Trprogi profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 11
  • Köszönetek: 0
Kedves JohnnyK!
Beírtam a kódot, és erre a sorra: BitBlt(aBitMap.Canvas.Handle, 0, 0, aBitMap.Width, aBitMap.Height, StringGrid1.Canvas.Handle, OffSetLeft, OffSetTop, SRCCOPY);

ezt a hibaüzenetet írta ki.

unit1.pas(50,3) Error: Identifier not found "BitBlt"
unit1.pas(50,120) Error: Identifier not found "SRCCOPY"
Mi az ami még hiányzik?

Előre is köszönöm. Trprogi.
Zsolt

stringgrid kijelölés 2016 márc. 31 12:46 #1945

  • Trprogi
  • Trprogi profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 11
  • Köszönetek: 0
Kedves JohnnyK!

Köszönöm a segítségedet.
Még nem tudtam kipróbálni, mert mostanában sok a dolgom, de mihelyt hozzáférek a problémához megírom, hogy hogyan sikerült.
Még egyszer Köszi, és minden jót.

Trprogi.
Zsolt

stringgrid kijelölés 2016 márc. 23 14:31 #1929

  • JohnnyK
  • JohnnyK profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 78
  • Köszönetek: 16
Szia!
Egy windows specifikus megoldás a BitBlt függvény használata. Példa:
uses windows, ...
 
procedure TForm1.StringGrid1Selection(Sender: TObject; aCol, aRow: Integer);
var  i, OffSetTop, OffSetLeft: integer;
     aBitMap: TBitmap;
begin
  aBitMap := TBitMap.Create;
  aBitMap.Width := 0;
  aBitMap.Height := 0;
  OffSetLeft := 0;
  OffSetTop := 0;
  for i := 0 to StringGrid1.Selection.Left - 1 do OffSetLeft += StringGrid1.ColWidths[i];
  for i := StringGrid1.Selection.Left to StringGrid1.Selection.Right do aBitMap.Width := aBitMap.Width + StringGrid1.ColWidths[i];
  for i := 0 to StringGrid1.Selection.Top - 1 do OffSetTop += StringGrid1.RowHeights[i];
  for i := StringGrid1.Selection.Top to StringGrid1.Selection.Bottom do aBitMap.Height := aBitMap.Height + StringGrid1.RowHeights[i];
  Image1.Width := aBitMap.Width;
  Image1.Height := aBitMap.Height;
  BitBlt(aBitMap.Canvas.Handle, 0, 0, aBitMap.Width, aBitMap.Height, StringGrid1.Canvas.Handle, OffSetLeft, OffSetTop, SRCCOPY);
  Image1.Picture.Bitmap.Assign(aBitMap);
  aBitMap.Free;
end;

stringgrid kijelölés 2016 márc. 23 11:06 #1928

  • Trprogi
  • Trprogi profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 11
  • Köszönetek: 0
Üdvözlet.

Tudna-e nekem segíteni valaki a következő témában.

String Gridben ha kijelölök egy területet, hogyan tudnám a kijelölt teljes területet kirajzolni egy grafikus felületen (Timage)?

Köszi a segítséget.
Zsolt

  • Oldal:
  • 1