Görüntüsü hoş arayüz yazmak.

Başlatan bunalmis, 06 Ocak 2010, 11:26:58

z

Yazdığım programların görünütüsünü genellikle beğenmiyorum. Alacalı bulacalı Mach tarzı program ekranları itici geliyor oldukça sade kullanımı kolay programları seviyorum.

PC üzerinde koşacak güzel denebilecek bir arayüz için renk seçiminden tutun da kullanılacak komponentlere kadar önerileriniz nelerdir?

Visual dilleri hakkıyla bilmediğim için aslında pek çok yerde zorlanıyorum.

Mesela programı geliştirdiğim makinada ekran görüntüsü fena olmuyor, ancak programı farklı bir makinaya taşıdığımda ekran çözünürlükleri farklı ise ekranda boş olanlar yada tersine kayıplar oluşuyor.

Bunları nasıl yok ederim.

Gerçekten güzel iş çıkartırım diyenler varsa ücreti karşılığında arayüz (sadece ekran üzerinde kompent yerleştirme ve görsel ufak tefek ışık oyunları) yazacak olanlarla anlaşabiliriz. (Programın süslemesinden kurtulmak işime gelir)

Yakışıklı hale getirilecek programın kendisi için tıklayın.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

peko

Programlardaki görsellik unsurunu  programı yazan kişinin koduna dikkat ettiği derecede ,kullanan kişiye de yönelik düşünmesi gerektiğini hep savunurum. Bir program çok iyi iş çıkarıyor olabilir, kod alt yapısı mükemmel olabilir ama kullanıcı tarafında zorluk yaşanıyorsa hiçbir zaman amacına tam olarak ulaşamaz düşüncesindeyim. Ve işin kötü yanı, görsel bir program kendini yaptığı hatalara karşı kullanıcıya affettibilirken,
hem görseli kötü, hemde kodu hatalı bir programın kendini affettirme oranı çok çok düşüktür. Çünkü kullanıcılar kod'ları bilmez, görmez, bastığı düğmelerin arkada neler yaptığını belki hayal bile edemez ..

Bunu çok kez denedim ve yaşayarak gördüm. Farklı firmaların yazdığı güçlü uygulamaların görselinin gerçekten berbat denilecek derecede olduğu için kullanıcılar tarafından tepki aldığını ve hatta firmanın bile bunu kullanmaktan vazgeçip basit programcıklara yöneldiğine şahit oldum..

Çünkü bir pic'in için program yazmıyorsunuz. Bizim bilgilerimize sahip olmayan , çok farklı bir işle uğraşan birilerinin ekranı açıp, işini yapabilmesini sağlamak asıl başlangıç noktanız. Örn, ADSL hızını artıran,düşüren vs gibi işlemler yapan bir görevli için yazdığınız programda mutlaka görsellik olması gerekiyor. Biz geri planda bir sürü iş yapıyor olabiliriz ama onun yapacağı müşteri hizmet numarasını girip, ADSL hızını seçmekten ibaret.

Hatta öyle bir şey ki, yazdığım bazı programlarda dönen hataları okuyup kullanıcıya belli etmeden, hataya göre gidip o ana kadar yapılması gereken işlemleri yapıp geri gelip kaldığı yerden devam eden işler oldu.. Kullanıcı sadece birkaç saniye fazla bekledi.. :)
Eğer bu olmasaydı,kullanıcının karşına bi hata mesajı çıkarsaydım olacakları siz düşünün.!

Kısacası ;

Mevlana Celaleddin-i Rûmî
"Sen ne söylersen söyle, söylediğin, karşındakinin anladığı kadardır."
der.


@bunalmış hocam, dilerseniz yardımcı olmaya çalışırım size.

Kolay gelsin..
" Bazıları zeka'sını iş'i zorlaştırmak için, bazıları ise kolaylaştırmak için kullanır.. "

z

Aslinda isin bu kismi biraz sanata giriyor.

Komponentleri secip forum uzerine yerlestirmekle ortaya guzel bir sey cikmiyor. Guzeli tarif etmek zor olsa da konuyu  tartismaya calisalim.

@Peko size mesaj attim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Programi iki parca dusunursek

1. Ekran uzerine yerlestirilmis komponentler ve bunlara ait gorsel fonskiyonlar.

2. Programin cekirdegi. (Open source değil)

1. Kisim bir baskasi tarafindan yazildiginda, en az ugrasla bu iki kismi nasil kolayca entegre ederiz?

Nasil bir yapi kurulmali?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

controller

Alıntı yapılan: "bunalmis"

Mesela programı geliştirdiğim makinada ekran görüntüsü fena olmuyor, ancak programı farklı bir makinaya taşıdığımda ekran çözünürlükleri farklı ise ekranda boş olanlar yada tersine kayıplar oluşuyor.

Bunları nasıl yok ederim.


Bunu önlemek için kullandığınız komponentlerin "Anchor" özelliğini kullanabilirsiniz. Ekran çözünürlüğüne ve Form boyutuna göre form üzerindeki componentleri otomatik olarak boyutlandırır.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

gallavi

Bu gibi görsel komponentlerin kullanımı ile ilgili videolar çok faydalı oluyor. Hangi özellik nasıl kullanılır görerek anlamak çok daha kolay birazda pratik kazanılınca çok zor değil aslında
DemirHan=gallavi;

sekoli

Alıntı yapılan: "bunalmis"Programi iki parca dusunursek

1. Ekran uzerine yerlestirilmis komponentler ve bunlara ait gorsel fonskiyonlar.

2. Programin cekirdegi. (Open source değil)

1. Kisim bir baskasi tarafindan yazildiginda, en az ugrasla bu iki kismi nasil kolayca entegre ederiz?

Nasil bir yapi kurulmali?

Selamlar,
Önce görsel arabirimi yazarsınız, yada yazdırırsınız. O bitince üzerine asıl işi yapan kodları ekleyebilirsiniz. Asıl işi yapan kodları başka unitlere koyabilirsiniz, yada DLL yapabilirsiniz. Bunların hepsi olur.
Nacizane bir tavsiye olarak; Çok fazla 3rd party komponent kullanmak ileride yeni sürümler çıkarırken sorun oluyor. Şöyle ki; siz delphi7 ile yazılımı geliştirip, bazı 3rd party componentler kullanıyorsunuz. Aradan 3-5 yıl geçiyor, delphi7 yerine delphi2010 kullanayım diyorsunuz, fakat bir bakıyorsunuz ki daha önce kullandığınız bazı komponentlerin delphi2010 sürümü yok. Bunu da göz önüne alın.

peko

@sekoli

Katılıyorum..

Bu nedenle de dll yazarak hemen herşeyi kendi dll'iniz haline getirmeniz
ve fonksiyonlardan yararlanmanız çok mühim oluyor bence.
İleride komple bile değişime gidecek olsanız, yapacağınız tüm işler dll'ler içinde sizi bekliyor. Ayrıca kod tekrarı yapmamak içinde birebir çözüm.

Şunu da belirteyim, .net'te önceden desteklenmeyen bir özellik var , bilmeyenler için önemli olabilir düşüncesi ile yazmak istiyorum.
ClickOnce güncelleme olayı. Bu sayede yazdığınız programı kolayca güncelleyebiliyorsunuz. Program açılışta sizin belirlediğiniz bir yerden güncelleme varmı diye kontrol ediyor, tabi bu kontrolleri nasıl yapmak istediğiniz size kalmış. Derleyiciniz açıkken otomatik vers. yazıyor.
Kullanıcının kullanması gerekli olan zorunlu versiyonu belirttiğinize, program açılır açılmaz o versiyona zorunlu geçiş yapıyor..

Şirket içinde çeşitli bölümlere yazdığım bir çok projeyi bu sayede güncelleyebiliyorum. Telefonda isteklerini yada sorunları anlatıyorlar, onlar anlatırken gerekli işlemi yapıp derliyorum, zorunlu versiyonu giriyorum ve "kapatıp açar mısınız lütfen" diyerek güncelleme yaptırıyorum :)

Dışarıdaki birkaç müşterimde de aynı durum söz konusu.
Çoğunlukla gitmeme gerek kalmadan hallediyorum..

Eskiden exe dağıtma derdi, eski çalışan exe'lerin db'de değişikliğe yol açması derdi vardı.. şimdi bu sistem sayesinde yok.

Delphi için böyle bir durum var mı bilmiyorum, araştırmadım.

Allah razı olsun yapandan.
8)
" Bazıları zeka'sını iş'i zorlaştırmak için, bazıları ise kolaylaştırmak için kullanır.. "

mavi

Bir zamanalr bende program yazardım yada yazmaya çalışırdım.Profesyoneller in şansı aynı zamanda komutlarıda kullanmalarıdır.Mesela amatör birisi formu ekranda visual olarka tasarlar ve ayarları kendi ekran çözünürlüğüne göredir.Diğer bir bilgisayara kurulduğunda hep boşluklar olur yada formun yarısı yoktur.Bunlar hep sabit tasarımlar yapıldığı ve ayarlar evrensel olmadığı için gerçekleşir.Aslında yapılması gerken componentler konulduktan sonra onların yerlerinin ve event olaylarının çok iyi bilinerek organize edilmesinden geçiyor ve kullandığınız komponentler işletim sistemi içinde mutlaka olmalı ki her yerde çalışsın.Aksi durumda bir de onları taşıma derlemeye ekleme paketleme derdi var.
Mesela formun büyüklüğünü formload olayında ekran çözünürlüğünden alan ve çözünürlüğe göre formu boyutlandıran bir kod olsa bunlarda diğer textbox yada combobox ların boyutlarını etkilese hiç bir zaman ayarlar bozulmaz ve formun ekran çözünürlüğüne oranı sabit olur.Programda derli toplu görünür.Bunları öğrendikten ve evrensel kodun ne olduğunu anladıktan sonra hamuru fırıncıya verdim.
Telecommander Monster Of Network

z

Ilk mesajimdaki linkten bahse konu programin iyilestirilmis halini indirip calistirir ve elestirirseniz memnun olurum.

Anchor ozelligini kullanmaya calistim ve sorunlar buyuk olcude gitti.

Ancak taskbar sorununu bir turlu cozemedim. Task bar varken ve yokken ekranda bana ayrilan ekran olculerini nasil ogrenebilirim?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

hasangurlek

shell32.dll içindeki SHAppBarMessage fonksiyonu ile taskbar pozisyonunu, oto gizleme özelliği olup olmadığını ve boyutunu öğrenebilirsiniz.
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

hasangurlek

http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

muhittin_kaplan

@bunalmış
anchor özelliği önemli bir durum. bunu kullanmanızı şiddetle tavsiye ederim. ayrıca Delphi bilmiyorum ama koyduğunuz controlleri sınıflandıracak taşıyıcı componentler vardır (.net için panel vs gibi) bunları kullanarak textleri labelleri vs sınıflandırmanızdır. Kullancıya boyutlandırma özelliği vermemişsiniz bu farklı ekran çözünürlülüklerinde problem olur.
Tab sıralaması ayrıca önemli diye düşünürom.
Ayrıca enkler için Skin kullanabilirsiniz.
Ergonomiye gelince Ben Olsam İşlemleri Soldan Sağa Doğru Düzenlerdim.
Menü İçin ve Butonlar İçin Klevye Kısa Yolları Eklerdim (CTRL+ESC Acil Stop ,Ctrl+O Open File, Help F1 Gibi)
Güncelleme Vs için internet hizmetini kullanmanı zartık şart oldu.
şimdiden size kolay gelsin. Geliştirme Ortamınız Bunların NAsıl destekliyor Bilmiyorum Ama Arayüz Tasarımı BaşlıBAşına Bir İş..

Ugur2006

C#'da kullanabilecegimiz SKIN'ler varmi?
Yada Güzel arayüzleri C#'da olusturmanin baska yollari varmi?
C# 'da yeniyim o nedenle sordum.Simdiden tesekkürler !!