Monday, June 20, 2011

Práce s INI soubory

Jistě mi dáte za pravdu, že každá i jen malinko rozsáhlejší aplikace tu a tam potřebuje uložit nějaká data na disk. Typicky to mohou být různá uživatelská nastavení, stavové informace o programu (jako je poloha okna, naposledy otevřený adresář atd..) a řada dalších informací nutných pro běh aplikace. S příchodem Windows 95 se zpočátku s nadšením upustilo od INI souborů, ve kterých byly podobné informace uloženy, a všichni se vrhli na registry. Logickým argumentem bylo kromě jiného i to, že v dobách starých Windows se v jejich adresáři často hromadilo velké množství nepotřebných INI souborů od již dávno odinstalovaných aplikací. Bohužel se brzy zjistilo, že se tento problém se zapomenutými či špatně odinstalovanými daty přechodem na registry moc neodstranil, pouze se přesunul na jiné místo a přeplněné a nepřehledné registry máme v našich systémech zřejmě všichni.

Labels:

Wednesday, May 25, 2011

Práce s INI soubory

Jistě mi dáte za pravdu, že každá i jen malinko rozsáhlejší aplikace tu a tam potřebuje uložit nějaká data na disk. Typicky to mohou být různá uživatelská nastavení, stavové informace o programu (jako je poloha okna, naposledy otevřený adresář atd..) a řada dalších informací nutných pro běh aplikace. S příchodem Windows 95 se zpočátku s nadšením upustilo od INI souborů, ve kterých byly podobné informace uloženy, a všichni se vrhli na registry. Logickým argumentem bylo kromě jiného i to, že v dobách starých Windows se v jejich adresáři často hromadilo velké množství nepotřebných INI souborů od již dávno odinstalovaných aplikací. Bohužel se brzy zjistilo, že se tento problém se zapomenutými či špatně odinstalovanými daty přechodem na registry moc neodstranil, pouze se přesunul na jiné místo a přeplněné a nepřehledné registry máme v našich systémech zřejmě všichni.
Proto si myslím, že není třeba INI soubory ještě zcela zatracovat. Ukážeme si, co nám mohou pro pohodlnou práci s nimi nabídnout Delphi. Všechny důležité funkce se skrývají v knihovně IniFiles, takže ji přidejte do projektu. Nevím, jestli to není zbytečné, ale možná bychom se měli nejprve přece jen alespoň krátce zmínit, jak takový INI soubor vlastně vypadá. Jedná se o obyčejný textový soubor, a když si nějaký prohlédnete, zjistíte, že je rozdělen na určité sekce. Každá je označena svým názvem uvedeným v hranatých závorkách. Těsně za tímto názvem sekce následují jednotlivé řádky, kde je vždy uveden název parametru a za rovnítkem jeho hodnota. Formát je to tedy velmi jednoduchý, přehledný a snadno (i ručně) editovatelný.

Labels:

Tuesday, March 08, 2011

Tipy a triky v Delphi

Prvním tématem dnešního dílu bude práce s průhledností oken pod Delphi 6 a poté se poněkud obsáhleji zaměříme na použití INI souborů.
Průhlednost oken v Delphi 6
Moderní operační systémy se snaží nejen dobře fungovat, což se předpokládá jako samozřejmost (škoda, že tomu tak ne vždy je), ale snaží se též zaujmout svým vzhledem. Proto se i v nejnovější verzi Windows, tedy Windows XP, objevily vizuální styly. Kromě tohoto na první pohled viditelného rozdílu však Windows (a to dokonce už ve verzi 2000) obsahují ještě jeden zajímavý vizuální prvek, který se však v programech přesto příliš neobjevuje. Tímto prvkem je průhlednost oken. Od nové verze Delphi 6 se tato vlastnost oken již objevila v seznamu parametrů v Object Inspectoru, takže použití bude hračka.
O průhlednost okna, či přesněji řečeno průsvitnost, se starají 4 základní vlastnosti okna. Jsou to vlastnosti AlphaBlend, AlphaBlendValue, TransparentColor a TransparentColorValue. Hned si objasníme, co která vlastnost znamená, i když z názvů je to docela patrné.
AlphaBlend může nabývat hodnot True nebo False a určuje, zda chceme či nechceme průhlednost oken používat. Až tedy budete experimentovat, musíte nastavit hodnotu True, jinak se pochopitelně nedostanete dál. Když tímto způsobem průhlednost povolíme, druhý parametr AlphaBlendValue určuje číselnou hodnotu průhlednosti. Může nabývat hodnot od 0 do 255, přičemž 0 znamená zcela průhledné okno, zatímco 255 je přesný opak, tedy okno zcela neprůhledné (standardní).

Labels:

Tuesday, October 26, 2010

Zobrazení vlastností komponent

Tento příklad zřejmě nevyužijete v reálných aplikacích či přesněji řečeno, nejedná o funkci, kterou by uživatelé vašich aplikací na první pohled mohli ocenit. Ukážeme si, jak jednoduchým způsobem zjišťovat za běhu aplikace vlastnosti všech komponent, které obsahuje. Může to být neocenitelná pomoc při ladění aplikace při fázi vývoje, při logování chyb v případě pádu aplikace a podobně.
Umístěte si na formulář komponentu Memo, do které budeme v naší ukázce vlastnosti komponent vypisovat. Poté můžete na formulář umístit libovolné další komponenty, na kterých si ověříte funkčnost našeho příkladu.
procedure ListComponentProperties(Component: TComponent; Strings: TStrings);
var
Count, Size, I: Integer;
List: PPropList;
PropInfo: PPropInfo;
PropOrEvent, PropValue: string;
begin
Count := GetPropList(Component.ClassInfo, tkAny, nil);
Size := Count * SizeOf(Pointer);
GetMem(List, Size);
try
Count := GetPropList(Component.ClassInfo, tkAny, List);
for I := 0 to Count - 1 do
begin
PropInfo := List^[I];
if PropInfo^.PropType^.Kind in tkMethods then
PropOrEvent := 'Event'
else
PropOrEvent := 'Property';
PropValue := VarToStr(GetPropValue(Component, PropInfo^.Name));
Strings.Add(Format('[%s] %s: %s = %s', [PropOrEvent, PropInfo^.Name,
PropInfo^.PropType^.Name, PropValue]));
end;
finally
FreeMem(List);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.BeginUpdate;
Memo1.Lines.Clear;
ListComponentProperties(Button1, Memo1.Lines);
Memo1.Lines.EndUpdate;
end;
Nejdůležitějším parametrem je pochopitelně komponenta, jejíž vlastnosti chceme zjistit (v naší ukázce je to Button1).

Labels:

Monday, June 07, 2010

tipy a triky

Ako zmeniť názov okna IE a OE ??
Nájdite kľúč [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main],
vytvorte premennú WindowTitle typu STRING a ako hodnotu zadajte požadovaný názov okna.
Pokiaľ ide o Outlook Express, vyhľadajte kľúč
[HKEY_CURRENT_USER\Identities\{** Identity ID **}\Software\Microsoft\Outlook Express\5.0].
Obdobne vytvorte premennú s názvom Window Title typu STRING.

Labels:

Tuesday, May 25, 2010

tipy a triky

Ako zmeniť štartovaciu stránku Outlook Expressu?
Riešení sa ponúka niekoľko, najjednoduchším je urobenie malej zmeny v kľúči
[HKEY_CURRENT_USER\Identities\[Identity]\Software\Microsoft\Outlook Express\5.0].
Vytvorte premennú typu STRING s názvom FrontPagePath.
Hodnotou premennej bude požadovaná adresa (napr. www.zive.sk).

Labels:

Wednesday, May 19, 2010

tipy a triky

Zmena umiestnenia adresára, kde sa budú ukladať všetky prijaté súbory v OExpress
Vyhľadajte kľúč [HKEY_CURRENT_USER\Software\Microsoft\Outlook Express].
Zmeňte hodnotu premennej Store Root na požadovanú cestu.
Uistite sa, že zadaná cesta naozaj existuje.
Niektoré verzie programu Outlook Express totiž požadovaný adresár nevytvoria.

Labels:

Tuesday, May 11, 2010

rady v outlook express

Máte strach, že by nejaká nepovolaná osoba mohla zmeniť nastavenia vášho konta
v programe Outlook Express?
Jednoducho zakážte vykonávanie zmien zmenou v registroch.
Vyhľadajte kľúč [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Outlook Express].
Stačí už len vytvoriť premennú typu DWORD s názvom
No Modify Accts (vrátane medzier a dvoma c v slove Accts).
Nastavte hodnotu na 1 alebo 0 podľa toho, či chcete zakázať,
resp. povoliť užívateľom robiť zmeny v nastavení konta.

Labels:

Monday, May 10, 2010

Splash screen

Ak vám vadí, že pri každom štarte Outlook Expresu musíte trpieť
zobrazenie tzv. Splash Screen, nasledujúci trik vám ho pomôže ľahko odstrániť.
Ak používate Outlook 4 a staršie verzie, zmenu treba vykonať v kľúči
[HKEY_CURRENT_USER\Software\Microsoft\Outlook Express].
V novších verziách treba vyhľadať kľúč
[HKEY_CURRENT_USER\Identities\{** Identity ID **}\Software\Microsoft\Outlook Express\5.0].
V oboch prípadoch je ďalší postup rovnaký.
Vytvorte premennú s názvom NoSplash typu DWORD a nastavte jej hodnotu na 1.

Labels:

Friday, May 07, 2010

outlook express

Odstránenie MSN Messengera z Outlook Express
V kľúči [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Outlook Express] pridajte premennú typu DWORD s názvom Hide Messenger a nastavte jej hodnotu na 2

Labels:

Thursday, May 06, 2010

Počítačová encyklopedie

ako vypnúť odkaz na inštaláciu Macromedia Flash a jemu podobných programov??
Možností je opäť viacero, podľa mňa najrýchlejšou bude táto (pokiaľ používate Internet Explorer 6):

V IE choďte do Tools – Internet Options – kliknite na záložku Security,
nastavte Custom level a zakážte možnosť „Download signed ActiveX controls...“.
Dajte však pozor, aby aj ostatné položky boli zakázané.
Potom kliknite na záložku Advanced a zakážte položku „Install on demand“ a máte po probléme.

Labels:

Tuesday, May 04, 2010

ako upravovať (pridávať, odoberať) tlačidlá na Paneli nástrojov.

Ak napríklad chcete odstrániť tlačidlo GO, vyhľadajte kľúč
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
a vytvorte hodnotu typu STRING s názvom ShowGoButton.
Nastavte jeho hodnotu na No a tlačidlo zmizne.
Obdobne sa dá manipulovať aj s ostatnými tlačidlami.
Stačí vytvoriť hodnotu s názvom Show(anglický ekvivalent názvu tlačidla,
napr. Print, Home atď.)Button.
Existuje však aj ďalší spôsob, ako dôjdete k tomu istému cieľu.
Vyhľadajte kľúč
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer].
Vytvorte hodnotu typu DWORD s názvom SpecifyDefaultButtons a nastavte ju na 1.
Tým povolíte odstraňovanie a pridávanie jednotlivých tlačidiel na Paneli nástrojov.
Podľa nasledujúceho zoznamu vytvorte premenné typu DWORD.
Ich nastavenie na hodnotu 2 spôsobí ich odstránenie z panela.
Ak chcete tlačidlo na panel pridať, nastavte hodnotu na 1.
Rovnaký efekt dosiahnete aj vymazaním premennej z aktívneho kľúča.

Zoznam premenných:
* Btn_Back
* Btn_Forward
* Btn_Stop
* Btn_Refresh
* Btn_Home
* Btn_Search
* Btn_Folders
* Btn_Favorites
* Btn_Media
* Btn_History
* Btn_Fullscreen
* Btn_Tools
* Btn_MailNews
* Btn_Size
* Btn_Print
* Btn_Edit
* Btn_Discussions
* Btn_Cut
* Btn_Copy
* Btn_Paste
* Btn_Encoding
* Btn_PrintPreview

Labels:

Sunday, May 02, 2010

Tipy a triky v Delphi

Ale pojďme k naší ukázce. Jelikož budeme používat registry, přidejte si do projektu knihovnu Registry. Dále si přidejte na formulář ListView a nastavte jeho styl na vsReport. Právě do tohoto ListView si do dvou sloupců vypíšeme názvy příslušných nainstalovaných aplikací a jejich odinstalační řetězec. Tvorba hlavičky ListView je vyřešena přímo v programu, takže po přidání komponenty na formulář a nastavení jejího zobrazovacího stylu (ačkoliv i to bychom mohli přidat přímo do programu) se již o víc nemusíte starat. Na závěr po načtení celého seznamu bude ještě pro přehlednost setříděn podle abecedy.
procedure TForm1.Button1Click(Sender: TObject);
const
UNINST_PATH = 'Software\Microsoft\Windows\CurrentVersion\Uninstall';
var
Reg : TRegistry;
SubKey: TSTringList;
ListItem: TListItem;
I : Integer;
sDisplayName, sUninstallString : String;
begin
with ListView1 do begin
Columns.Add;
Columns.Add;
Columns[0].Caption := 'Jméno';
Columns[1].Caption := 'Odinstalační řetězec';
Columns[0].Width := 200;
Columns[1].Width := 300;
end;
Reg := TRegistry.Create;
try
With ListView1.Items do
try
BeginUpdate;
Clear;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKeyReadOnly(UNINST_PATH) then begin
SubKey := TStringList.Create;
try
Reg.GetKeyNames(SubKey);
Reg.CloseKey;
for i := 0 to subKey.Count - 1 do
if Reg.OpenKeyReadOnly(Format('%s\%s', [UNINST_PATH, SubKey[i]]))
then begin
try
sDisplayName := Reg.ReadString('DisplayName');
sUninstallString := Reg.ReadString('UninstallString');
if (sDisplayName) <> '' then begin
ListItem := Add;
ListItem.Caption := sDisplayName;
ListItem.SubItems.Add(sUninstallString);
end;
finally
Reg.CloseKey;
end;
end;
finally
SubKey.Free;
end;
end;
finally
ListView1.AlphaSort;
EndUpdate;
end;
finally
Reg.CloseKey;
reg.Free;
end;
end;


A máme tu další díl našeho seriálu. Dnes se bude opět jednat o sprchu drobných, ale doufám že užitečných tipů. Předvedeme si, jak umístit vlastní tlačítko do nástrojové lišty Internet Exploreru, jak zobrazit HTML kód v komponentě WebBrowser, mizet kurzor myši a další tipy. Vzhůru do čtení.
Přidání vlastního tlačítka do panelu nástrojů v IE
Možná znáte různé programy, které se snaží vylepšit a rozšířit funkce Internet Exploreru. Oblíbenou módou zejména různých vyhledávačů (a to i českých) je vnutit svým uživatelům drobné utility, které například rozšíří nástrojový panel IE o vyhledávací políčko daného vyhledávače nebo umožní například odeslat zprávu SMS. Ponechme teď stranou, jak užitečné či neužitečné podobné prográmky jsou a zkusme si něco obdobného. Ukážeme si, jak přidat do panelu nástrojů vlastní tlačítko, které spustí námi definovanou aplikaci. Zároveň se do menu Nástroje přidá další položka se stejnou funkcí.
Celé je to vlastně velmi jednoduché a je to opět záležitost systémového registru, kam do příslušné větve IE vložíme náš záznam. Zdrojový kód tedy může vypadat například takto:
procedure TlacitkoIE(Path: string);
const
Tagit = '\{10954C80-4F0F-11d3-B17C-00C0DFE39736}\';
var
Reg: TRegistry;
Vetev: string;
begin
Reg := TRegistry.Create;
try
with Reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
Vetev := 'Software\Microsoft\Internet Explorer\Extensions' + Tagit;
OpenKey(Vetev, True);
WriteString('ButtonText', 'Text tlačítka');
WriteString('MenuText', 'Název položky v menu');
WriteString('MenuStatusBar', 'Run Script');
WriteString('ClSid', '{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}');
WriteString('Default Visible', 'Yes');
WriteString('Exec', Path);
WriteString('HotIcon', ',4');
WriteString('Icon', ',4');
end
finally
Reg.CloseKey;
Reg.Free;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
TlacitkoIE('c:\windows\calc.exe');
end;
Náš příklad přidá do nástrojové lišty tlačítko s nadpisem Text tlačítka a přidá do menu položku Název položky v menu. Pokud se vám na lištu tlačítko nepřidá, budete ho muset přes menu Zobrazit -> Panely nástrojů -> Vlastní přidat ručně a najdete ho mezi dostupnými položkami.
Aktivací tlačítka nebo položky z menu dojde ke spuštění Kalkulačky. Jak vidíte podle parametrů, lze též nastavit ikonku, která bude na tlačítku zobrazena a to jak ve své neaktivní podobě, tak po najetí myší. Místo mnou zvolené systémové ikony s číslem 4 můžete jako parametr pochopitelně uvést cestu k libovolné ikoně v souboru ICO nebo k nějaké jiné knihovně.

Labels:

Friday, April 30, 2010

Prohození tlačítek myši

Tento tip je opět jedním z těch, které asi v praxi příliš nevyužijeme, ale možná se může hodit, když budeme chtít například někoho trošku pozlobit. Ukážeme si, jak se snadno dají prohodit tlačítka na myši. Tedy pravé tlačítko se bude poté chovat jako levé a naopak. Poslouží nám k tomu následující jednoduchá funkce, jejímž parametrem je logická proměnná, určující, zda mají či nemají být klávesy prohozeny.
procedure ProhoditTlacitka(prohodit: Boolean);
begin
if prohodit then SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, 1, nil, 0)
else SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, 0, nil, 0);
end;
Převod barvy formátu TColor na HTML
Následující jednoduchá funkce převede barvu ve formátu TColor, tedy formát běžně v Delphi používaný, na její hexa formu (či chcete-li "HTML barvu").
function ColorToHtml(Color: TColor): string;
var
col: LongInt;
begin
col := ColorToRGB(Color);
Result := '#' + IntToHex(col and $FF, 2) + IntToHex(col shr 8 and $FF, 2) + IntToHex(col shr 16 and $FF, 2);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(ColorToHtml(clLime));
end;
Seznam nainstalovaných aplikací
Chcete-li vědět či přesněji řečeno programově zjistit, které programy máte v systému nainstalovány, není to žádný problém. Jako většina podobných informací o systému jsou i tyto informace uloženy v registrech, takže je stačí jen najít a přečíst si je. Jejich součástí je také tzv. odinstalační řetězec, což není nic jiného než cesta k příslušnému odinstalačnímu programu včetně případných parametrů. Pokud budete chtít, můžete si tímto způsobem vytvořit vlastní program podobný systémovému ovládacímu panelu "Přidat nebo odebrat programy" a odebrat tak libovolnou aplikaci, i když to není asi primární cíl našeho příkladu. Využít však seznamu nainstalovaných aplikací můžete ve vašem programu k různým účelům, protože některé aplikace třeba vyžadují ke své práci současně nainstalované i další programy, takže pokud je váš program podobného ražení, může si sám otestovat přítomnost všech potřebných součástí. Ovšem vše jen za předpokladu, že jsou aplikace korektně nainstalovány v systému a mají svůj záznam v registrech.

Labels:

Thursday, April 29, 2010

Tipy a triky v Delphi

V naší ukázce si předvedeme změnu parametrů u Editu a u tlačítka. U komponenty Edit bude při aktivaci změněna barva, u tlačítka se změní font popisku na tučný. Provedeme to tak, že si vytvoříme vlastní obsluhy událostí OnEnter a OnExit, které nazveme prostě Enter a Exit. Poté na formulář umístěte libovolný počet editačních polí a nějaká tlačítka. U všech těchto prvků poté nastavte v Object Inspectoru obsluhu událostí OnEnter a OnExit právě na naše připravené procedury. U těch komponent, kde tyto události nenastavíte, se nestane pochopitelně nic, což ovšem rozhodně nemusí být na škodu a můžete si tak vybrat, které komponenty budou takto "postiženy".
.
.
.
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure Enter(Sender: TObject);
procedure Exit(Sender: TObject);
.
.
.

procedure TForm1.Enter(Sender: TObject);
begin
if (Sender is TCustomEdit) then TEdit(Sender).Color := clRed;
if (Sender is TButton) then TButton(Sender).Font.Style := [fsBold];
end;

procedure TForm1.Exit(Sender: TObject);
begin
if (Sender is TCustomEdit) then TEdit(Sender).Color := clWindow;
if (Sender is TButton) then TButton(Sender).Font.Style := [];
end;
Jak vidíte, každá obsluha obsahuje podmínku, podle které se určuje, jaké parametry budou změněny na základě typu daného vizuálního objektu (tedy u typu TButton font, u TEdit zase barva). Změnit se dají vlastně libovolné parametry, ale nás budou zřejmě zajímat pouze ty vizuální. V události OnEnter jednotlivých komponent tedy naše procedura Enter změní barevnost či další parametry a poté, když uživatel přejde na jinou komponentu (zaktivuje ji), původní hodnoty budou opět obnoveny procedurou Exit v události OnExit. Tím docílíme jednoduchého efektu, kdy právě aktivní prvek na formuláři bude vždy zvýrazněn.

Labels:

Tuesday, April 27, 2010

Tipy a triky v Delphi

Popis jednotlivých částí najdete v podobě komentářů ve zdrojovém kódu. Samotný princip je snad dostatečně jasný, jsou to vlastně jen jednoduché čáry s textovým popisem, umístěné na příslušných místech, které se vypočítají z rozměrů formuláře (grafu).
Ještě jedno malé upozornění. Jelikož je pro vykreslení grafu, tedy propojení vypočítaných bodů křivkou, použita procedura Polyline, která všechny jednotlivé po sobě jdoucí body spojí bez ohledu na matematiku, je tento konkrétní postup použitelný na spojité funkce. Ostatní funkce by bylo vhodné vykreslovat buď bod po bodu (tedy bez jejich vzájemného propojení, a proto je třeba kvůli dobré vizuální podobě grafu použít větší přesnost – vypočítat více bodů) a nebo jiným způsobem.

Po čase tu máme opět několik tipů z různých oblastí. Předvedeme si, jak vizuálně zvýraznit právě aktivní prvek na formuláři a zpřehlednit tak uživateli práci. Dále si ukážeme, jak prohodit tlačítka na myši, převod barev formátu TColor do hexa podoby a také si ukážeme, jak zjistit z registrů seznam nainstalovaných aplikací.
Vizuální zvýraznění aktivní komponenty Edit
Komponenta Edit, tedy editační pole pro vyplňování dat rozličného druhu, je jistě jedním z nejběžnějších prvků uživatelského prostředí. Ukážeme si jedno drobné vylepšení, kterým se může práce s těmito editačními poli zvláště v případě rozsáhlejších formulářů pro uživatele velmi zpřehlednit. Toho docílíme tak, že editační pole, které bude zrovna aktivní (tedy uživatel do něj bude právě něco vyplňovat nebo bude prostě označeno – bude mít tzv. Focus), určitým způsobem zvýrazníme. Zvýraznit jej můžeme třeba tím, že se změní jeho barva a font písma nebo některé jiné vizuální vlastnosti, které daná komponenta má. Postup lze totiž aplikovat i na komponenty typu Edit, které nejsou standardně dodávané s Delphi, máte-li některé takové nainstalovány a používáte-li je raději. Ale obecně se dá říci, že je postup použitelný na všechny vizuální komponenty, které mají události OnExit a OnEnter (viz. dále), tedy například tlačítka a různé další prvky. Ne každý takový prvek má však například vlastnost Color, takže je potřeba individuálně podle potřeb náš příklad upravit.

Labels:

Tuesday, February 02, 2010

Transparentní text v obrázku

Velmi užitečnou funkcí též může být umístění transparentního textu, tedy textu s průhledným pozadím, přímo do obrázku. Jaký může být způsob využití takové funkce? Namátkou mě napadá třeba situace, kdy potřebujete hromadně u desítek obrázků přidat do jejich rohu váš copyright nebo časový údaj pro budoucí prezentaci. V tom případě vám může tato funkce ušetřit řadu času.
Příklad opět předpokládá, že v komponentě Image máte již načtenu bitmapu, a samotné přidání textu bude opět voláno jako událost stisku tlačítka:
procedure TForm1.Button1Click(Sender: TObject);
begin
with Image1.Picture.Bitmap.Canvas do
begin
Font.Color := clRed;
Brush.Style := bsclear;
Font.Size := 13;
TextOut(10, 10, 'Dnes je 3.4. 2002');
end;
end;
Jak vidíte, lze bez problému měnit všechny základní parametry textu. Pokud by vám snad nevyhovovalo, že je text transparentní, stačí příslušným způsobem změnit Brush.Style například na bsSolid a v tom případě bude pod textem pozadí.
A to je pro dnešek všechno. Příště si ještě ukážeme několik drobných funkcí s obrázky a začneme se opět věnovat jiným tématům.

Labels:

Sunday, January 24, 2010

Transparentní text v obrázku

Transparentní text v obrázku
Velmi užitečnou funkcí též může být umístění transparentního textu, tedy textu s průhledným pozadím, přímo do obrázku. Jaký může být způsob využití takové funkce? Namátkou mě napadá třeba situace, kdy potřebujete hromadně u desítek obrázků přidat do jejich rohu váš copyright nebo časový údaj pro budoucí prezentaci. V tom případě vám může tato funkce ušetřit řadu času.
Příklad opět předpokládá, že v komponentě Image máte již načtenu bitmapu, a samotné přidání textu bude opět voláno jako událost stisku tlačítka:
procedure TForm1.Button1Click(Sender: TObject);
begin
with Image1.Picture.Bitmap.Canvas do
begin
Font.Color := clRed;
Brush.Style := bsclear;
Font.Size := 13;
TextOut(10, 10, 'Dnes je 3.4. 2002');
end;
end;
Jak vidíte, lze bez problému měnit všechny základní parametry textu. Pokud by vám snad nevyhovovalo, že je text transparentní, stačí příslušným způsobem změnit Brush.Style například na bsSolid a v tom případě bude pod textem pozadí.
A to je pro dnešek všechno. Příště si ještě ukážeme několik drobných funkcí s obrázky a začneme se opět věnovat jiným tématům.

Labels: