Forum Delphi.cz

Delphi => Obecné => Téma založeno: Marek.V 14-02-2019, 22:18:27

Název: StringGrid - uložení hesla do buněk
Přispěvatel: Marek.V 14-02-2019, 22:18:27
Dobrý den.
Bych chtěl do jednoho sloupcu ukladat hesla.
Aby ale byli tak jak to jde v editu
edit1.PasswordChar := '*';

Našel jsem si řešení.
Ale ono to překresli až zadam cele heslo.
Pomužete?

 
Kód: Delphi [Vybrat]
  1. procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  2.   Rect: TRect; State: TGridDrawState);
  3. var
  4.   drawText: String;
  5. begin
  6.   drawText := StringGrid1.Cells[ACol, ARow];
  7.   if ACol = 2 then begin
  8.     drawText := StringOfChar('*', Length(WideString(drawText)));
  9.   end;
  10.   StringGrid1.canvas.TextRect(Rect, Rect.Left +1, Rect.Top + 1,drawText);
  11. end;
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Marek.V 15-02-2019, 07:24:59
Tak toto mi nějak nefunguje.

Pokud jsem to pochopil tak ,DrawCell to zadane heslo překresluje, ale pod ním by mělo být furt to zadane,ne?
GetEditMask jej změní, takže už to zadane heslo nezjistím.
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Marek.V 15-02-2019, 09:31:19
No prostě potřebují, aby se to chovalo jako komponenta edit s nastaveným PasswordChar := '*';
Když píše heslo, všichni čumilové vidí jen tečky, ale kdykoliv se da to heslo zjistit.
Label1.Caption := edit1.Text;

Úplně by mi stačilo, kdyby to uměla jen jedna buňka v celem gridu.
Někde jsem viděl sample, jak se do buňky gridu vkreslila jiná komponenta.
Tedy u mně ten edit.
Ale to je mimo mé znalostí.
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Marek.V 15-02-2019, 10:20:28
Citace
Co je zminovane to? Inplace editor (komponenta, jenz uvnitr gridu obstarava editaci)

Možna jsem to našel
https://stackoverflow.com/questions/5306037/put-a-tcheckbox-inside-a-tstringgrid-in-delphi
Prostě v nějake bunce je vykreslený button nebo CheckBox
Pokud jsem to pochopil, tak button se vloží na form a procedura DrawCell ho překresli do bunky gridu.
Kdybych to same udělal s tou kompnentou edit, bylo by to vyřešene.
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Marek.V 15-02-2019, 11:53:40
Citace
OnDrawCell, kde budes namisto textu bunky kreslit hvezdicky, tak jak to mas v prvnim prispevku.

Ano, o to mi jde.
Ale v tom prvním prispevku, když zadavam to heslo tak jde vidět.
Až když opustím tu bunku a kliknu někam jinam ji to překresli.
V tom text editu jdou vidět tečky už když heslo zadavam.
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Marek.V 15-02-2019, 12:41:20
Se to tu cele zaplantava.
Vykašlem se na celý edit.
Otazka zní, jak vložít do buněk nějakeho sloupce StringGridu hesla, tak aby jen nikdo neviděl i při vkladaní a mohly by se programově kdykoliv našist?
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Stanislav Hruška 15-02-2019, 13:07:40
Citace
Otazka zní, jak vložít do buněk nějakeho sloupce StringGridu hesla, tak aby jen nikdo neviděl i při vkladaní a mohly by se programově kdykoliv našist?
Prosím Ťa, prečítaj si celú diskusiu aspoň 5x.
V prvom rade sa snaž pochopiť čo si napísal. NIE čo si chcel napísať. To je rozdiel. Je to horšie než by som to písal ja. A to už je čo povedať ;D .
Potom sa snaž pochopiť odpovede. Máš tam odpoveď na to, čo sa pýtaš.
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Stanislav Hruška 15-02-2019, 13:11:19
Ešte dodatok. Tvoje vyjadrovanie je mizerné. Snaž sa druhýkrát písať po česky. Nemôžem napísať spisovne, lebo nemáte kodifikovanú češtinu. Tu nie sme na nejakej sociálnej stránke. Tu sa musíš vyjadrovať presne a jasne. Až matematicky. Pomôže aj priloženie obrázku.
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Stanislav Hruška 15-02-2019, 14:17:13
Dojem nie je pojem. Ja som to pomotal. Vy nemáte češtinu uzákonenú ako úradný jazyk. A to je iné než kodifikácia.
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Vratik 02-03-2019, 09:28:00
Dobrý den.
Jak vycentrovat písmo v buňce?
taCenter znám.
Ale když mám čísla
12,2
12,44
123,12

Tak aby byli uprostřed, ale tak jak je vidíte.




Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Stanislav Hruška 02-03-2019, 10:51:58
Nerozumiem o čo Ti ide. Takých nás asi bude viac. Veď si napísal, že taCenter poznáš. Číslo je v bunke len text. Keď takto vycentruješ iný text, tak sa musia vycentorvať aj čísla.
PS: StringGrid nepoznám, tak sa snáď nemýlim.
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Vratik 02-03-2019, 21:50:23
když použiju taCenter, bude každý řádek vycentrovaný zvlášť.
Když v prvním řádku bude 10 čísel, druhem 9, třetím 8, atd
Na desátém bude jen jedno.
Tak to bude vypadat jak trychtýř a ne tak jak jsem to uvedl.

A další problém.
Options - goEditing a mužů do gridu psát.
poklepám na buňku a vidím blikat kurzor.
Když však zvětším font na 16 (mam Times New Roman), už ten blikající kurzor nejde vidět.
Proč?
Půjde to nějak pořešit?
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Vratik 02-03-2019, 22:01:02
takže nepotřebují asi taCenter, ale na každém řádku tabulátor.
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Stanislav Hruška 02-03-2019, 22:36:18
Už Ti rozumiem.
Nemá StringGrid niečo ako Margin/okraj? Tak by si to mohol zarovnať vľavo a ten okraj by sa postaral o to, aby to nebolo nalepené na ľavý okraj.
Len si uvedom, že pri každej zmene šírky stĺpca ho budeš musieť prepočítať.
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Stanislav Hruška 02-03-2019, 22:40:44
Hm, v takýchto prípadoch sa používa skôr zarovnanie na desatinnú čiarku. Aby to bolo dobre čitateľné a užívateľ už pri prvom pohľade vedel s ako veľkým číslom má do činenia.
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Vratik 03-03-2019, 08:52:48
a co ten druhý dotaz?
Je řešitelný, nebo to je nějaka chyba gridu?
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Stanislav Hruška 03-03-2019, 09:00:19
K tomu sa vyjadriť neviem. Nemám o tom vedomosti.
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: našinec 03-03-2019, 16:23:25
Pro Vratika: a) To není taCenter;
                  b) Musíš zvětšit výšku buňky.
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Vratik 04-03-2019, 05:55:37
Děkují.
Mužu ještě jeden dotaz?
EditMask.
http://helpcentral.componentone.com/docs/vsflexgrid8/editmaskproperty.htm

Když chcí povolit jen čisla a ,

12,2
12,44
123,12
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Stanislav Hruška 04-03-2019, 08:40:03
procedure OnlyInt(var Key: Char);
begin
  // Allow only number and special keys (arrow, tab, BS, ...)
  if not CharInSet(Key, [#0, #8, '0'..'9']) then
    Key := #0;
end;
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Vratik 04-03-2019, 09:10:42
Tak je to sice pěkné, ale bych to potřeboval do procedury StringGrid1GetEditMask

Kód: Delphi [Vybrat]
  1. procedure TForm1.StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Integer;
  2.   var Value: string);
  3. begin
  4.   case ACol of
  5.     1: Value := '0000';
  6.     2: Value := '';
  7.     3: Value := '!000;1;_';
  8.     4: Value := '!99/99/00;1;_';
  9.     5: Value := '!90:00;1;_';
  10.   end;
  11. end;
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Stanislav Hruška 04-03-2019, 10:16:53
Existuje funkcia TryStrToInt();
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: Vratik 04-03-2019, 10:30:16
Znám ale bych spíš řek, že vůbec nechápeš co potřebují.

Toto mi povoli napsat do 6 sloupce jen 5 čisel ale ne s desetinou čarko
Jak na to, aby mi to vzalo i tu čardu?

Kód: Delphi [Vybrat]
  1. procedure TForm1.AdvStringGridGetEditMask(Sender: TObject; ACol, ARow: Integer;
  2.   var Value: string);
  3. begin
  4.   if (ACol=6)then  Value := '00000';
  5. end;
Název: Re:StringGrid - uložení hesla do buněk
Přispěvatel: JaroB 04-03-2019, 14:13:08
Což zkusit http://www.micrel.cz/delphi/download/jbstrgrd.zip (http://www.micrel.cz/delphi/download/jbstrgrd.zip) pro snazší manipulaci s hodnotami buněk?